Angelo Sison

Using MFGtool(UUU) on IMX6DL in Linux

Discussion created by Angelo Sison on Mar 25, 2020
Latest reply on Mar 26, 2020 by Aldo Gutierrez

I am pretty new to this area so please bear with me.

 

I have an IMX6DL board and I want to flash a Linux image through USB.

Originally, I flash my image using a windows version of mfgtool. This takes in a "ucl2.xml" file which contains all the flashing and partitioning commands. This works but I am trying to transition into using Linux to do everything.

I downloaded UUU (https://github.com/NXPmicro/mfgtools) on my ubuntu 16.04 machine. I found a table of direct conversion from ucl2.xml to UUU script (HERE).

 

Using the conversion table, I managed to convert the first few lines from:

<CMD state="BootStrap" type="boot" body="BootStrap" file ="mfg/u-boot.imx" ifdev="MX6D">Loading U-boot</CMD>
<CMD state="BootStrap" type="load" file="mfg/zImage" address="0x12000000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6D">Loading Kernel.</CMD>
<CMD state="BootStrap" type="load" file="mfg/paladin-mfgtool-initramfs" address="0x12C00000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6D">Loading Initramfs.</CMD>
<CMD state="BootStrap" type="load" file="mfg/imx6dl-custom.dtb" address="0x18000000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6D">Loading device tree.</CMD>
<CMD state="BootStrap" type="jump" >Program eFuses and jumping to OS image.</CMD>

 

To (uuu script):

uuu_version 1.2.39

 

# flash u-boot
SDP: boot -f mfg/u-boot.imx

 

# flash initramfs
FB: ucmd setenv fastboot_buffer 0x12C00000
FB: download -f mfg/my-mfgtool-initramfs

 

# flash device tree blob
FB: ucmd setenv fastboot_buffer 0x18000000
FB: download -f mfg/imx6dl-custom.dtb

 

# flash kernel
FB: ucmd setenv fastboot_buffer 0x12000000
FB: download -f mfg/zImage
FB: acmd booti 0x12000000 0x12C00000 0x18000000

 

 

When I run my script, u-boot does get flashed but is left waiting for the device to reload:

uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.3.154-0-g47ddef5
Success 0 Failure 0
1:34 1/ 1 [=================100%=================] SDP: boot -f mfg/u-boot.imx
Okay
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.3.154-0-g47ddef5
Success 0 Failure 0 Wait for Known USB Device Appear...

 

On the other hand, the device gets a "Bad Linux ARM zImage magic!" error and gets stuck

U-Boot 2016.11-rc3-svn1593 (Apr 19 2018 - 16:37:59 +0200)
CPU: Freescale i.MX6DL rev1.3 996 MHz (running at 792 MHz)
CPU: Extended Commercial temperature grade (-20C to 105C) at 40C
Reset cause: POR
Board: Paladin Alpha
I2C: ready
DRAM: 512 MiB
MMC: FSL_SDHC: 0
Using default environment
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
Programming bank 0 word 0x00000005 to 0x00005860...
Programming bank 0 word 0x00000006 to 0x00000010...
Bad Linux ARM zImage magic!
=>

 

I tried setting some required flags in my u-boot defconfig file to follow this wiki page (HERE) but still no luck.

 

I am really stuck so any inputs would really be helpful (perhaps a slightly different approach?).

Outcomes