1.前言
对于Hi3556v200的烧写部分,只能根据官方自带的HiBurn工具来进行理解
2.uboot烧录原理
文档<<HiBurn工具使用指南>>中有如下的描述:
uboot 烧写原理:HiBurn 工具在开始烧写后,首选与 bootrom 进行交互,工具 DDR 参数传送到传到 bootrom,即为uboot 下载阶段 5%处,然后初始化 DDR,再把 uboot 传输到 DDR 中,uboot 下载阶段 100%处表示传输完毕,再从 DDR 启动 uboot,uboot 启动完成后,工具开始与 uboot 进行交互,发送烧写命令,将 DDR 中的 uboot 烧写到 Flash 对应地址中。 其他镜像分区烧写原理:其他镜像分区,如 kernel,rootfs 等分区,工具默认采用网口传输的方式,客户可选择裸烧和非裸烧两种方式进行烧写,裸烧即为在按分区烧写或 按 Emmc 烧写中勾选 uboot 进行烧写,此时 uboot会被烧写到 Flash 中,非裸烧即为不 勾选 uboot,仅勾选其他分区进行烧写,此时需要保证当前单板上已经存在 uboot,烧写时工具会启动 uboot,与其交互,通过向 uboot 发送 TFTP 命令与 Write 命令,完成 烧写。
据此我们推导一下uboot的烧录过程:
- 启动上电后执行brom的代码;
- brom与PC的HiBurn工具进行交互,要求HiBurn传递DDR参数,此时下载进度为5%;
- brom收到DDR参数后,可能会暂存到SRAM, 并以此参数初始化DDR;
- brom向HiBurn请求uboot代码,HiBurn将uboot代码传送给brom,brom将uboot代码写入DDR,此时uboot下载进度显示100%;
- 从DDR启动uboot;
- HiBurn工具与DDR中的uboot进行交互,发送烧写命令,将DDR中的uboot烧写到flash对应地址;
- 到此,uboot烧写完毕
3.其它镜像的烧录
其它镜像的烧写与uboot的烧写过程类似,也是HiBurn与uboot进行交互,将其它镜像写入flash的对应地址
参考文档
HiBurn工具使用指南