Manufacturing Tool V2 (MFGTool2) 烧写工作流
飞凌 i.MX6 平台配套文档,讲清 MFGTool2.exe、cfg.ini、UICfg.ini、ucl2.xml 与镜像文件之间的关系,以及烧写流程如何被这几个配置文件驱动。
核心概念
MFGTool2 的基本职能:用特定的 SoC 配置,把镜像烧到特定目标板(board)的特定存储(storage)上。整套工作流由五个要素协作完成:
| 要素 | 作用 |
|---|---|
| MFGTool2.exe | 烧写执行主体,基于 USB 工作 |
| cfg.ini | 告诉工具去哪里找 ucl2.xml、用哪个操作列表 |
| UICfg.ini | 定义并发设备数(只需配 PortMgrDlg) |
| ucl2.xml | 定义 SoC 的 PID/VID + 全部操作列表(operation list)+ 命令 |
| 二进制文件 | ram kernel/U-Boot 与 normal kernel/U-Boot |
配置五步(文档主线,Q&A 形式)
- 告知 SoC 类型:不同 SoC 的 USB PID/VID 不同,MFGTool2 靠 PID/VID 监控设备树锁定正确设备。SoC 名和 PID/VID 写在 ucl2.xml 开头的
<CFG>段里,一份 ucl2.xml 对应一种 SoC。 - 告知 ucl2.xml 位置:cfg.ini 的
[profiles]段chip = MX6Q Linux Update,工具按相对路径Profiles\${chip}\OS Firmware找 ucl2.xml。 - 定义最大并发设备数:UICfg.ini 中只配
PortMgrDlg,工具据此创建线程和 UI 资源。 - 指定目标存储和目标板:不同板的 uboot.bin/kernel 镜像不同,操作也不同——用 ucl2.xml 中的操作列表区分(一个操作列表 = 一种存储 × 一种板的组合)。cfg.ini 的
[LIST] name = Sabre-SD选择具体使用哪个列表。 - 准备二进制文件:两类——
- ram kernel + 配套 U-Boot:烧写过程中在目标板上临时运行(BootStrap 阶段命令使用的即是,如
u-boot-mx6q-sabresd.bin、uImage) - normal kernel + 配套 U-Boot:最终用户实际运行的版本(放
files/子目录,如files/u-boot-mx6q-sabresd.bin、files/uImage) - 文件路径相对于 ucl2.xml;ram kernel 生成方法见《Mfgtool Linux or Android Firmware Development Guide V2》,normal 镜像生成超出 MFGTool 范畴。
- ram kernel + 配套 U-Boot:烧写过程中在目标板上临时运行(BootStrap 阶段命令使用的即是,如
烧写执行流程(工具内部逻辑)
- 解析操作列表,取出全部待执行命令
- 监控设备树,按 ucl2.xml
<CFG>定义的 PID/VID 找到目标设备 - 按 PID/VID 判断当前处于哪个烧写阶段(phase/state)——不同阶段 PID/VID 对不同
- 按阶段取对应命令
- 执行命令
ucl2.xml 命令示例
<CMD state="BootStrap" type="boot" body="BootStrap" file="u-boot-mx6q-sabresd.bin">Loading U-boot</CMD>
<CMD state="BootStrap" type="load" file="uImage" address="0x10800000" ...>Loading Kernel.</CMD>
<CMD state="Updater" type="push" body="send" file="files/u-boot-mx6q-sabresd.bin">Sending u-boot.bin</CMD>
<CMD state="Updater" type="push" body="send" file="files/uImage">Sending kernel uImage</CMD>state 属性即阶段名(BootStrap / Updater),与第 3 步的 phase 判断对应。
可行动点
- 为新板卡做烧写配置时:复制一份 ucl2.xml,改
<CFG>的 PID/VID 和操作列表名,镜像放files/下,cfg.ini 的 chip 与 name 对齐即可。 - 排查”工具找不到设备”:先核对 SoC 实际 PID/VID 与
<CFG>是否一致,再看 cfg.ini 的 chip 路径是否指对了 Profiles 子目录。 - 排查”烧错镜像”:核对
[LIST] name选中的操作列表与实际板卡存储类型是否匹配。
关联
- 深入阅读:MFGTool-V2-UCL用户指南(
<CFG>与 phase/state 详解)、MFGTool-V2-快速入门指南(上手操作) - 同系列旧笔记:MFGTool-V2-烧录工作流说明(本文档 Linux 副本的早期笔记,内容等价)
- 同目录系列文档:Release Notes、Factory Operation manual、UTP Introduction、Linux/Android Firmware Development Guide
- 云盘
/工作相关/飞凌嵌入式imx6全部资料/下该文档有约 8 份完全相同的副本(190760 字节),本笔记为统一代表,其余副本已在日志中标记跳过。