简介
MFGTools是
freescale官方推荐的一个使用
OTG来升级镜像的软件。此软件功能很轻大,而且可塑性非常高:可以用来升级
linux,升级
android;单独刷写某一系统分区,如
android的
boot.img分区等;独立地刷写
spi nor,
emmc等等;而且作为一个可量产性的工具,MFGTools可以同时支持多通道的刷写。相对于市面上一些平板厂家的刷机软件,
MFGTools的一大亮点就是其可拓展新跟可塑性。究竟这亮点是怎样体现的,下面详细介绍。主要分为四部分:
1、
MFGTools的目录结构
2、
MFGTools的烧录过程
3、
MFGTools配置文件介绍
4、媒介镜像的制作
MFGTools的目录结构
如上图,
MFGTools目录的主要关键点在几个地方
1、
MfgTool2.exe为可执行程序,打开程序的画面如下
2、
ucl2.xml跟
cfg.ini是配置文件,下面会详细介绍
profile里面存放着的是镜像文件,这里面镜像文件分为两种:第一种是作为媒介用途的镜像,在
yocto下包括“
uboot”,“dtb”跟“
uImage”;第二种是真正烧录到
emmc或者
sdcard的镜像文件。之所以存着这两种镜像,是因为
MFGTools的烧写原理是先烧录媒介镜像到ddr里面,然后启动,再通过这个启动了的媒介镜像,最后把目标镜像固化到
emmc或者
sdcard里面。这方面,下文内容还会补充到。
MFGTools的烧录过程
如上图显示,这里把烧录过程分为两部分:第一部分是烧录前的准备工作;第二部分是
MFGTools开始烧录到结束烧录的过程。在这里,需要提示的是,第二阶段的烧录过程是严格根据
ucl2.xml文件来进行的,下面来介绍
MFGTools的配置文件。
MFGTools配置文件介绍
1、
UICfg.ini
内容为:
[UICfg]
PortMgrDlg=1 //表示同时支持升级的最大设备数,按需求调整
2、
cfg.ini
内容为:
[profiles]
chip = Linux //目标平台,对应
Profiles/Linux 目录 ,可根据自己需求定义
profile
[platform]
board = SabreSD //预留,暂时没什么实际作用
[LIST]
name = SDCard // ProfilesLinuxOS Firmwareucl2.xml 里面目标操作列表的名字,可按照自己的需求创建不同列表,
[variable] // ProfilesLinuxOS Firmwareucl2.xml,
name里面的
list会引用到的环境变量
board = sabresd //引用模式是
%board%。要跟平台的名字一样,不然会导致
load dtb的时候出错。
mmc = 0 //引用模式是
%mmc%。
3、
ucl2.xml
升级时候的操作文件,
MFGtools会根据文件里面
list的内容进行相应的升级。文件以
Jumping to OS image.
为界限,可以分为上阶段跟下阶段,上阶段是把“媒介镜像”烧录到
ddr里面并跑起来,下阶段是烧录“
file”文件夹里面的文件到
emmc里面。对于第二阶段,关注以下注释:
注释下的内容严格规定了
MFGTools的烧录过程,分区-->烧写
uboot-->烧写
uImage-->烧写
dtb-->烧写
rootfs。
认真看就很容易看懂。
媒介镜像的制作
媒介镜像注意关注在
uImage,因为“媒介
uboot”在编译
yocto的时候已经打包好了,具体是“
build/tmp/deploy/images/$MACHINE/u-boot-$MACHINE.imx”文件,直接拿来使用就好。“
dtb”文件也使用编译好的就可以了,没什么特殊要求。uImage有所要求,但freescale也帮我们铺好路了,看到“
arch/arm/configs/imx_v7_mfg_defconfig”配置文件,使用此配置文件编译出来的uImage就是“媒介
uImage”。然后把这些媒介的image放到
MFGTools的目录下“
ProfilesLinuxOSFirmwarefirmware”里面即可,可能不同版本的
MFGTools路径有所区别。
对比
imx_v7_mfg_defconfig与其他
config文件不一样的地方就是:
CONFIG_FSL_UTP。对于的内核代码在“
drivers/usb/gadget/f_mas_stotage.c”里面,具体的作用也就是接收并处理来自
OTG的
image,
script和
command。
转载:http://blog.csdn.net/hbk320/article/details/49975841