目录
1、概述
mfgtools是NXP开发的用于单板固件烧录的工具,可以烧写uboot,image,dtb,rootfs等,功能十分强大。
2、mfgtools的工作流程
2.1 4个核心文件
mfgtools工作流程中4个核心文件为,MFGTool2.exe, cfg.ini, UICfg.ini, ucl2.xml。其中ucl2.xml主要定义了具体的操作步骤和操作内容。由于mfgtools支持多个SOC的固件烧录,因此为了使mfgtools能把文件烧录到正确的单板的正确位置,我们需要提供一系列的配置信息。
2.2 提供SOC信息
mfgtools是通过usb进行控制和数据传输的,而不同的SOC有不同的PID/VID,因此,首先需要配置的正确的PID/VID信息。
PID/VID信息是通过uci2.xml文件配置的。在ucl2.xml文件的<CFG>部分会提供SOC的PID/VID信息。
2.3 配置ucl2.xml的路径
通过cfg.ini文件配置ucl2.xml文件的路径。
[profiles]
chip=Linux
mfgtools在工作时,就会在Profiles\${chip}\OS Firmware目录下寻找ucl2.xml文件。那么,在本例中,ucl2.xml的寻找路径就是Profiles\linux\OS Firmware。
2.4 配置同时操作的设备数
设置UICfg.ini中PortMgrDlg的值,默认为1。
2.5 配置目标存储类型和目标单板
mfgtools通过目标存储类型和目标单板来确定具体的文件。不同的单板对应不同的operation list。mfgtools通过cfg.ini中的name变量的值从ucl2.xml文件中获取具体的operation list。比如:
[LIST]
name=Linux-4.1.15-eMMC
mfgtools就会在ucl2.xml文件中查到name="Linux-4.1.15-eMMC"的operation list。
2.6 提供operation list需要的文件
需要提供两类文件:
1)临时的ram kernel和对应的uboot。
2)正式待烧录的文件。
注意:
1)临时的ram kernel和uboot会先通过usb下载到目标单板上并运行,然后通过该临时的ram kernel和uboot烧写正式的文件。
2)临时的ram kernel和uboot是在BootStrap阶段烧写的,而正式的文件则是在Updater阶段烧写的。
3)临时ram kernel和uboot的生成可以参考“Mfgtool Linux or Android Firmware Development Guide V2.docx”文件。
2.7 总结
综上所述,mfgtools的工作流程如下:
1)根据cfg.ini中[profile]部分中chip的值查找ucl2.xml文件;
2)根据cfg.ini中[LIST]部分中name的值再ucl2.xml中查找operation list;
3)通过ucl2.xml中<CFG>部分中PID/VID的值查找正确的SOC;
4)找到正确的SOC后,再根据PID/VID的值来确定当前的烧写状态是BootStrap还是Updater,BootStrap和Updater对应的PVID/VID的值是不同的;
5)执行operation list中定义的command。