MFGTool V2 快速入门指南

本文档是飞凌嵌入式 i.MX6 平台(OKMX6DL/Q-C)提供的 Manufacturing Tool V2(MFGTool2)快速使用指南。

核心概念

MFGTool2 是 NXP/Freescale 官方的 i.MX 系列芯片量产烧录工具,支持通过 USB OTG 接口将固件写入目标板。整个烧录过程分为两个阶段:

  • BootStrap 阶段:主机侧通过 USB 将 U-Boot 和 Kernel 镜像下载到目标板 RAM 中运行
  • Updater 阶段:目标板固件运行后,与主机建立连接,完成最终固件写入存储介质

使用前准备

配置文件

必须在应用程序同目录下存在两个配置文件:

文件作用关键配置项
cfg.ini目标芯片配置[profiles] → chip(芯片Profile名);[LIST] → name(操作列表名)
UICfg.ini并发烧录端口数[UICfg] → PortMgrDlg=1~4

cfg.ini 示例:

[profiles]
chip = MX6DL Linux Update
[platform]
board = ARM2
[LIST]
name = Android-SD

启动模式设置

  • 将开发板拨码开关设置为正确的 USB 启动模式(参考 Linux BSP 用户手册)
  • 用 USB OTG 线连接开发板与 PC
  • 设备管理器应显示 HID 兼容设备

烧录步骤

  1. 双击运行 MFGTool2.exe(首次使用时必须先连接设备再启动)
  2. 界面仅有两个可点击按钮:Start/Stop 和 Exit
  3. 点击 Start 开始烧录
  4. 烧录完成后点击 Stop,再点击 Exit 退出
  5. 建议同时打开串口终端观察调试信息

注意:停止后重新启动烧录,工具会尝试从断点继续,但不保证成功,不推荐这样做。

SD 卡烧录失败排查

若提示 SD 卡烧录失败,通常是 SD 卡分区太小导致空间不足:

  1. 解压 Profiles\CHIP_PROFILE\OS Firmware\mksdcard.sh.tar
  2. 修改脚本增大分区尺寸或创建额外分区
  3. 重新打包为 tar 格式

命令行支持

MFGTool2 支持命令行参数,可用于自动化批量烧录:

MfgTool2.exe [-noui] [-c "chip profile"] [-l "list name"] [-p N] [-s "var=val"]
参数说明示例
-noui使用控制台界面(无 GUI)MfgTool2.exe -noui -c "MX6Q Linux Update" -l "Sabre-SD" -p 4
-c指定芯片 Profile 名称-c "MX6Q Linux Update"
-l指定操作列表名(在 ucl2.xml 中定义)-l "Android-SabreSD-eMMC"
-p同时烧录的板卡数量(1-4)-p 2
-s设置 UCL 变量,可多次使用-s "board=sabresd" -s "mmc=0"

命令行参数优先级高于 cfg.ini / UICfg.ini 中的同名配置。

自定义烧录流程

要烧录自己的镜像,需要:

  1. 生成专门的 MFG Tool 固件(U-Boot + Kernel),参考《Manufacturing Tool V2 Linux or Android Firmware Development Guide》
  2. 生成正常用户可使用的 U-Boot 和 Kernel 镜像
  3. 基于现有 ucl2.xml 创建自定义操作列表,通常只需替换镜像文件名

UCL 操作列表与存储介质

每个操作列表对应一种存储介质配置,列表名即隐含了目标介质:

  • Sabre-SD → SD 卡
  • ubuntu-SabreSD-eMMC → eMMC
  • ARM2-SD → SD 卡(ARM2 板)

熔丝(Fuse)编程

支持通过以下命令写入 OTP 熔丝:

ls /sys/fsl_otp           # 查看 fuse bank 列表
echo 0x11223344 > /sys/fsl_otp/HW_OCOTP_MAC0  # 写入 MAC 地址等
cat /sys/fsl_otp/HW_OCOTP_MAC0                # 读取验证