NXP

【linux】NXP MFGTools工具配置文件详解

2019-07-12 11:21发布

mfgtoolscfg.ini

[profiles]
chip = Linux #对应mfgtoolsProfilesLinuxOS Firmware中“Linux”
#MfgTool2.exe中会使用路径:Profiles${chip}OS Firmware [platform]
board = MY-IMX6 #没有用,可以忽略 [LIST]
name = Linux-3.14.52
#对应mfgtoolsProfilesLinuxOS Firmwareucl2.xml中 LIST name=”Linux-3.14.52” [variable] #mfgtoolsProfilesLinuxOS Firmwareucl2.xml中会引用如下的变量,引用变量的方法:%variable_name%
ek_name = imx6
ek_spec = 6q
#在ucl2.xml中引用:file=”uboot-%ek_name%-%ek_spec%.imx”,即file=”uboot-imx6-6q.imx” rootfs_file = fsl-image-qt5.tar.bz2
#在ucl2.xml中引用:file=”%rootfs_file%”,即file=fsl-image-qt5.tar.bz2

mfgtoolsProfilesLinuxOS Firmwareucl2.xml

<UCL> #Update Command List <CFG>#全局配置信息:(MFGTools工具通过USB烧写,不同芯片中USB的vid、pid不同) <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/> #name="BootStrap":烧写的第一阶段(引导阶段),将固件引导到内存DDR中 <STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/> #name="Updater":烧写的第二阶段(更新阶段),将镜像烧写到Flash中 CFG> <LIST name="Linux-3.14.52" desc="Target OS: Linux-3.14.52"> #LIST name="Linux-3.14.52",与 mfgtoolscfg.ini 中[LIST] name = Linux-3.14.52对应 #CMD中type:命令分两类,在主机上执行的命令和在目标版上执行的命令 #在主机上执行的命令:boot、load、jump #在目标板上执行的命令:push,主机将body中的命令发送到目标板并执行 #body="$:在目标板中执行shell命令 #body="send":传输文件到开发板中,后续命令可以使用变量“$FILE”,来获取传输过来的文件 #body="pipe:执行shell命令并从stdio管道读取数据 #body="frf":等待所有数据传输完成和处理 #第一阶段:引导阶段,将固件引导到内存DDR中 <CMD state="BootStrap" type="boot" body="BootStrap" file ="uboot-%ek_name%-%ek_spec%.imx">boot: u-boot.imxCMD> #state="BootStrap":对应全局配置信息<CFG>中的<STATE name="BootStrap" #type="boot":主机上运行的命令,将file参数指定的文件下载到RAM中 #body="BootStrap"在type="boot"中固定为BootStrap #file=:指向将要下载到RAM中的文件 <CMD state="BootStrap" type="load" file="zImage" address="0x12000000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q MX6D">load: mfg-zImage-myimx6CMD> #type="load":主机上运行的命令,将file参数指定的文件下载到RAM中 #file="zImage":将要下载的文件 #address="0x12000000":下载到RAM中地址 #命令参数loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE"绝大多数情况下这三个参数值不用改 #ifdev="MX6Q MX6D":条件判断如果,设备是MX6Q或MX6D,则执行这条命令,否则不执行, #"MX6Q MX6D"必须是在<CFG>#全局配置信息中配置过的dev="MX6Q" <CMD state="BootStrap" type="load" file="initramfs-imx_mfgtools.cpio.gz.u-boot" address="0x12C00000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q MX6D">load: initramfsCMD> <CMD state="BootStrap" type="load" file="%ek_name%-%ek_spec%.dtb" address="0x18000000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q MX6D">load: device tree.CMD> <CMD state="BootStrap" type="jump">jump: OS imageCMD> #跳到第二阶段 #第二阶段(更新阶段),将镜像烧写到Flash中 <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd0 0 0" ifdev="MX6Q MX6D">exec: erase spi flashCMD> #在目标板上执行的命令:push,主机将body中的命令发送到目标板并执行 #body="$:在目标板中执行shell命令 <CMD state="Updater" type="push" body="send" file="uboot-%ek_name%-%ek_spec%.imx">send: u-boot.imxCMD> #body="send":传输文件到开发板中,后续命令可以使用变量“$FILE”,来获取传输过来的文件 。。。 <CMD state="Updater" type="push" body="pipe tar -jxv -C /mnt/mmcblkxp2" file="image-linux-31452/%rootfs_l31452_file%">pipe: rootfsCMD> #body="pipe:执行shell命令并从stdio管道读取数据 <CMD state="Updater" type="push" body="frf">frf: rootfsCMD> #body="frf":等待所有数据传输完成和处理 。。。 <CMD state="Updater" type="push" body="$ echo Update Complete!">DoneCMD> LIST> UCL>

mfgtoolsUICfg.ini

[UICfg]
PortMgrDlg=1
#设置要烧写的目标板个数,可以在批量生产中使用