海思平台芯片架构概述
以海思HI5662/5682举例
- 海思IC内部固化代码,即BootROM是固化在CPU内部的代码,主要负责从SPI NAND加载初始化CLK 、DDR程序,完成相应的硬件初始化;esbc 是引导uboot 启动的关键,主要是负责配置flash工作方式以及读取FLASH 中的uboot数据,完成uboot启动工作。
功能描述
BootROM,这一阶段流程、功能已经写死在芯片中,支持的功能如下:
- 从Flash中读取esbc,并引导esbc。
- 支持在引导esbc前,通过“ctrl+c”进入命令模式(调试阶段)。
- 支持通过help命令查看相关命令用法。
- 支持内存读写命令。
- 支持ymodem协议,通过串口加载镜像。
- 支持引导或运行ddr上的程序。
- esbc,对应镜像hi_esbc.bin。
- 从Flash中读取U-Boot,并引导U-Boot。
- U-Boot,对应镜像hi_uboot.bin。基于开源U-Boot:
- 从Flash中读取Linux内核,并引导Linux内核。
- 支持在引导Linux内核前,通过按任意键进入命令行模式。
- Linux内核,对应镜像kernel.images。
注:BootROM 内部代码不可修改,修改需要海思重新流片;HI5662 没有esbc,则无需esbc进行引导。
海思系统启动配置
海思由于bootROM代码是固化不可修改的,因此当我们进行切换启动存储介质时,需要通过硬件配置完成,以Hi5662Y SPINAND举例(其他型号类似),详细描述如下:
配置描述
0110 --> 默认4线data,关闭ondie ECC,20pcs存在4pcs不良(存在部分颗粒无法启动)
0010 --> 4线data,开启ondie ECC,20pcs存在4pcs不良(存在部分颗粒无法启动),无法启动的数据存在偏移。
0011 -->1线data,开启ondie ECC,20pcs存在1pcs,最终排查时FLASH设计缺陷导致。
bootROM 烧录镜像
-
部分芯片支持bootrom命令行,在Flash内没有正确的boot镜像时,可以通过命令行引导boot,以Hi5682为例,系统上电,按“ctrl+c”进入bootrom命令模式,如下图所示:
加载镜像hi_ddr_init.bin loady run 0x11345a00 #加载镜像hi_uboot.bin loady 0x80040000 go 0x80040000
-
首先初始化化DDR,使用ymodem通过串口加载DDR初始化脚本,并运行DDR初始化脚本
-
其次使用ymodem通过串口加载U-Boot,并运行uboot
uboot tftp分区烧录
为了简化烧写流程,将步骤封装成了bootmenu菜单,bootmenu菜单可以通过“bootmenu”命令行进入,根据需要通过键盘↑↓按键选择对应的菜单即可完成对应分区镜像升级。 【示例】bootmenu菜单示例:
*** U-Boot Boot Menu ***
update rootfs
update kernel.images
update uboot
reboot uboot
U-Boot console
Press UP/DOWN to move, ENTER to selec
版权声明
内容来源及使用限制
欢迎访问 TomgZHE研习社(网址:https://blog.tomgzhe.com)。本网站部分文章内容源自网络,仅作学习交流与参考分享;若您发现有内容涉嫌侵权,请立即联系 tomgzhe@qq.com,我们将在接到通知后的 48 小时内核实并删除相关侵权内容。
软件资源相关规定
本网站为个人非盈利性质的站点,所有软件资源均来自网络。这些资源仅用于个人学习、研究和参考,严禁用于任何商业用途。您下载和使用本网站软件资源即表示您同意仅将其用于学习目的,若因违反此规定导致任何法律纠纷或损失,责任由您自行承担。
原创版权
本网站上的原创内容,包括但不限于文字作品、自行设计的图片、独家制作的音频视频等,其版权均归本网站所有。未经本网站书面授权,任何组织或个人不得擅自复制、转载、摘编、传播或以其他任何方式使用这些原创内容。如需使用,请提前与我们联系并获得书面许可,同时需在显著位置注明出处及作者信息。
转载与引用规范
若您需转载本网站文章,务必注明文章来源为 “[TomgZHE研习社],原文链接:[http://blog.tomgzhe.com/index.php/2024/07/18/hi5662_class1]”;对于有明确作者署名的文章,还需完整保留作者姓名。在引用本网站内容时,请确保内容准确无误,并遵循学术及行业的引用规范。