一、简介
当我们制作uboot,linux kernle,rootfs时,都是通过网络测试的,在实际产品中需要将这些文件烧写到板子上的EMMC、NAND等存储设备上。这里介绍以下NXP官方提供的MfgTool工具通过USB OTG口来烧写系统。
1.官方mfgtool烧写原理
第一阶段:mfgtool通过USB OTG将uboot,zImage,xx.dtb下载到开发板DDR中;第二阶段:等linux系统启动后再向EMMC中烧写完整的系统,包括上述文件和rootfs.tar.bz2。
2.官网文件解析(msgtools-with-rootfs/mfgtools/)
(1)/Profiles/Linux/OS Firmware/firmware
内部文件就是要加载到DDR中的那些文件。
(2)/Profiles/Linux/OS Firmware/files
内部文件就是第二阶段的文件。
(3) mfgtool2-yocto-mx-evk-emmc.vbs
烧录脚本,使用VBScript语言编写。
Set wshShell = CreateObject("WScript.shell") #创建shell类型对象
wshShell.run "mfgtool2.exe -c ""linux"" -l ""eMMC"" -s ""board=sabresd"" -s ""mmc=1"" -s ""6uluboot=14x14evk"" -s ""6uldtb=14x14-evk""" #shell命令指定相关参数
Set wshShell = Nothing
(4) /Profiles/Linux/OS Firmware/ucl2.xml
#判断I.MX系列哪个芯片烧写系统,通过读取芯片的VID和PID
<UCL>
<CFG>
<STATE name="BootStrap" dev="MX6SL" vid="15A2" pid="0063"/>
<STATE name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/>
<STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>
<STATE name="BootStrap" dev="MX6SX" vid="15A2" pid="0071"/>
<STATE name="BootStrap" dev="MX6UL" vid="15A2" pid="007D"/>
<STATE name="BootStrap" dev="MX7D" vid="15A2" pid="0076"/>
<STATE name="BootStrap" dev="MX6ULL" vid="15A2" pid="0080"/>
<STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/>
</CFG>
#EMMC烧写过程
</LIST>
<LIST name="eMMC" desc="Choose eMMC as media">
<CMD...>...</CMD>
</LIST>