AnsweredAssumed Answered

Getting mfgtoolcli to work on rasbian OS (linux)

Question asked by Dennis Hjort on Feb 19, 2018

Hi, 

 

I'm trying to use the mfgtoolcli command, with code downloaded from GitHub - codeauroraforum/mfgtools: Freescale/NXP I.MX Chip image deploy tools.  , but are running into following issue: 

 

DLL version: 2.3.4
Mon Feb 19 19:39:13 2018
Start new logging
ModuleID[2] LevelID[10]: address from XML 0x80800000

ModuleID[2] LevelID[10]: address from XML 0x83000000

ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running
ModuleID[2] LevelID[1]: new MxHidDeviceClass
ModuleID[2] LevelID[10]: Add USB device

ModuleID[2] LevelID[10]: Create Device 0x746018e0

ModuleID[2] LevelID[10]: new MxHidDevice[0x746018e0]
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is ./Profiles/MX6UL/OS Firmware/firmware/bootstrap/u-boot.imx
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is ./Profiles/MX6UL/OS Firmware/firmware/bootstrap/zImage, address is 0x80800000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is ./Profiles/MX6UL/OS Firmware/firmware/bootstrap/devicetree.dtb, address is 0x83000000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Jump[WndIndex:0]
ModuleID[2] LevelID[10]: *********MxHidDevice[0x746018e0] Jump to Ramkernel successfully!**********
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is ./Profiles/MX6UL/OS Firmware/firmware/bootstrap/u-boot.imx
ModuleID[2] LevelID[1]: RunPlugIn(): TransData(0x877FE7D0, 0x37C00,0x0) failed.
ModuleID[2] LevelID[1]: PortMgrDlg(0)--MxHidDevice--Command Boot excute failed
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is ./Profiles/MX6UL/OS Firmware/firmware/bootstrap/u-boot.imx
ModuleID[2] LevelID[1]: RunPlugIn(): TransData(0x877FE7D0, 0x37C00,0x0) failed.
ModuleID[2] LevelID[1]: PortMgrDlg(0)--MxHidDevice--Command Boot excute failed
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is ./Profiles/MX6UL/OS Firmware/firmware/bootstrap/u-boot.imx

 

The images I'm trying to upload has been used with the windows version of Mfgtool2.exe without issues, but as we want to automate the flash process, we are trying to look at alternative methods. I've compiled the source retrieved on a raspbian, and everything seems like it's good to go, followed the README.md file, but no matter what I do I cannot seem to get it working. 

 

My ucl.xml looks like this: 

 

</CFG>

<LIST name="kve3400-full" desc="Full Program Flash KVE3400">
<CMD state="BootStrap" type="find" body="BootStrap" timeout="180"/>
<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/bootstrap/u-boot.imx">Loading U-boot</CMD>
<CMD state="BootStrap" type="load" file="firmware/bootstrap/zImage" address="0x80800000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6UL">Loading Kernel.</CMD>
<CMD state="BootStrap" type="load" file="firmware/bootstrap/devicetree.dtb" address="0x83000000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6UL">Loading device tree.</CMD>
<CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>

<!-- Download bootloader -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd0 0 0">Erasing Boot partition</CMD>
<CMD state="Updater" type="push" body="send" file="firmware/kve-3400/u-boot.imx.qspi">Sending XXXX u-boot</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd0">Writing bootloader to NOR flash</CMD>

<!-- Preparing boot status partition -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd1 0 0">Erasing Status partition</CMD>

<!-- Preparing mtd6 partition -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase -j /dev/mtd6 0 0">Erasing mtd6 partition</CMD>

<!-- Preparing mtd7 partition -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase -j /dev/mtd7 0 0">Erasing mtd7 partition</CMD>

<!-- Preparing mtd8 partition -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase -j /dev/mtd8 0 0">Erasing mtd8 partition</CMD>

<!-- Preparing mtd9 partition -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase -j /dev/mtd9 0 0">Erasing mtd8 partition</CMD>

<!-- Install rescue image -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd2 0 0">Erasing rescue image partition</CMD>
<CMD state="Updater" type="push" body="send" file="firmware/kve-3400/uImage.KVE-3400-10_mainline_rescue">Sending rescue image</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd2">Writing rescue image to NOR flash</CMD>

<!-- Install rescue dtb image -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd3 0 0">Erasing rescue dtb partition</CMD>
<CMD state="Updater" type="push" body="send" file="firmware/kve-3400/dtb.KVE-3400-10_mainline_rescue">Sending rescue dtb image</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd3">Writing rescue dtb image to NOR flash</CMD>

<!-- Install test image -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd4 0 0">Erasing test image partition</CMD>
<CMD state="Updater" type="push" body="send" file="firmware/kve-3400/uImage.KVE-3400-10_mainline_test">Sending test image</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd4">Writing test image to NOR flash</CMD>

<!-- Install test dtb image -->
<CMD state="Updater" type="find" body="Updater" timeout="1800"/>
<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd5 0 0">Erasing test dtb image partition</CMD>
<CMD state="Updater" type="push" body="send" file="firmware/kve-3400/dtb.KVE-3400-10_mainline_test">Sending test dtb image</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd5">Writing test dtb image to NOR flash</CMD>

<!-- Burn fuses -->
<CMD state="Updater" type="push" body="$ /usr/sbin/burn_fuses.sh">Burning fuses if needed</CMD>

<!-- Sync data -->
<CMD state="Updater" type="push" body="$ sync">Sync data</CMD>

<CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>
</LIST>
</UCL>

Outcomes