NXP

以烧录yocto镜像为例--详细解析freescale MFGTools烧录原理

2019-07-12 12:14发布

简介

MFGToolsfreescale官方推荐的一个使用OTG来升级镜像的软件。此软件功能很轻大,而且可塑性非常高:可以用来升级linux,升级android;单独刷写某一系统分区,如androidboot.img分区等;独立地刷写spi noremmc等等;而且作为一个可量产性的工具,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.xmlname里面的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”里面,具体的作用也就是接收并处理来自OTGimagescriptcommand
转载:http://blog.csdn.net/hbk320/article/details/49975841