NXP MFGTool软件烧录原理

原创 2020-03-20 17:20:00 MFGTool软件烧写

在使用恩智浦公司i.MX6系列芯片时,会使用到MFGTool软件通过连接PC和开发板的USB A型口转Micro USB线来给相应的芯片烧录程序,本文主要讲解MFGTool软件烧写的原理。


一、软件的构成

以官网下载的L4.1.15_2.0.0-ga_mfg-tools.tar.gz软件包为例子。在官网下载好软件包后在本地解压,解压后如下图所示,其中红色箭头所指向的文件及文件夹为配置下载工具时需要修改及注意的地方。

文件说明:

cfg.ini文件:用来配置镜像所在的文件夹位置、及ucl2.xml中执行哪个列表的指令、定义一些初始化参数。

UICfg.ini:定义MfgTool软件能同时烧录几块SoC,官方文档说明最大设定值4,对应4块。

Document/: 关于Mfgtool 的使用文档;

Drivers/: USB iMX_BulkIO_Driver;

Profiles/: 存放要烧录的image文件以及ucl.xml;

mfgtool.log:关于Mfgtool使用过程中的log记录。

mfgtool2-***.vbs:.vbs文件是用来执行MfgTool2.exe的脚本并传递参数到软件,如果cfg.ini文件中也定义了同样的参数默认.vbs中的参数会覆盖cfg.ini中的参数值。


二、Mfgtool工作原理

参考517-MFGTOOLCustomizationGuide.pptx官方ppt里面介绍Mfgtool的启动流程图。

 

1、 当i.MX6板子上电后,什么都没有初始化,只有Chip ROM(芯片的内部ROM)可以运行。Chip ROM的默认程序会去初始化USB,并将其配置为HID设备。这就是为什么板子设置为Download模式并上电后在PC端的设备管理器可以看到HID-compliant device连上。

2、 一旦PC机检测到HID设备连上,那么PC(USB Host)就会去枚举设备并建立连接。建立连接后的第一件事就是传送一个mini uboot(firmware)到目标板SoC的Chip RAM(芯片的内部RAM)中然后开始运行mini uboot(firmware)。mini uboot会对目标板进行初始化,主要是初始化 DDR/外部ROM等设备,所以之后DDR及外部ROM已经可以访问了。mini uboot从mini uboot中提取内存初始化代码或数据来执行任务。也可以使用内存初始化脚本来获取初始化数据。

3、 初始化外部基本接口之后,PC端会将mini kernel(firmware)、mini system(firmware)、dtb(firmware)传送给SoC并放到DDR(外部RAM)指定的地址。然后PC发送命令(ucl2.xml中<CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>)给Chip ROM让其跳转到DDR的kernel首地址去执行。

4、 跳转到kernel之后,初始化USB驱动,并枚举为一个MSC设备,此时SoC可以和主机进行高速数据传输。

5、 之后PC机MFGTool工具通过ucl2.xml中的脚本逐条执行剩下的指令直到最后遇到Done指令。

注:

* 上面提到的mini uboot、mini kernel、mini system、dtb文件均在软件目录下的\Profiles\Linux\OS Firmware\firmware文件夹下。

* mini kernel必须要配置USB、USB大容量存储驱动、SD卡、UTP等。详见:mfgtools\Document\V2\Manufacturing Tool V2 Linux or Android Firmware Development Guide V2.docx文档。

* mini kernel启动linuxrc作为第一个进程,linuxrc其实是一个脚本,最终通过执行 uuc 来启动UTP传输协议。UTP是作为USB Mass Storage(v4 Kernel)驱动的扩展,所以启动 UTP 必须对 USB 进行复位然后重新枚举。

到此MFGTool的工作原理基本就讲解完。了解到MFGTool的工作机制之后会帮助开发人员在今后的开发过程中更容易的去发现问题,也可以为日后根据各自需要对MFGTool定制提供一个参考。


相关产品 >

  • FETMX6Q-C核心板

    i.MX6Q核心板板层出不穷,要如何选择?飞凌解读i.mx6Q芯片强性能为您推荐四核A9架构的i.MX6Q产品精选,包含iMX6Q 核心板、i.MX6Q 核心板、iMX6Q工业级核心板,欢迎采购。  i.MX6Q核心板基于NXP(原Freescale)Cortex-A9架构的i.MX6Q四核处理器设计,核心板小尺寸核心板搭配独特的薄款连接器,让设计随心所欲!

    了解详情
    FETMX6Q-C核心板
  • OKMX6Q-C开发板

    双千兆飞凌嵌入式iMX6Q开发板,板对板连接器,纤薄之际,次底板支持iMX6Q和iMX6DL核心板。i.MX6Q开发板与i.MX6DL开发板资源丰富,原理图、PCB、软件资源、硬件资源下载,技术支持等。欢迎选购

    了解详情
    OKMX6Q-C开发板
  • FETMX6Q-S核心板

    NXP iMX6Quad系列具有四个内核,运行频率达1.2 GHz,带有1 MB L2缓存和64位DDR3或2通道、32位LPDDR2支持。飞凌提供商业级iMX6Q核心板,工业级iMX6Q核心板,兼容一同底板。具有抗震,抗氧化,抗干扰,更快速升级产品等优势。保定飞凌嵌入式专注imx6,imx6开发板,飞思卡尔imx6等ARM嵌入式核心控制系统研发、设计和生产,是imx6,imx6开发板,飞思卡尔imx6提供者,imx6系列产品现已畅销全国,欢迎咨询!
    了解详情
    FETMX6Q-S核心板
  • OKMX6Q-S3开发板

    飞凌嵌入式提供iMX6Q开发板,iMX6解决方案,iMX6Q核心板,i.MX6Q开发板解决方案。iMX6Q稳定、快速、性价比高,欢迎选购 NXP iMX6系列芯片全支持,升级简配无忧替换。 了解详情
    OKMX6Q-S3开发板

推荐阅读 换一批 换一批