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開發板

推薦閱讀 換一批 換一批