mat kattanek

mfgtoolcli fails under linux

Discussion created by mat kattanek on Aug 13, 2018
Latest reply on Sep 19, 2018 by Andrey Kononov

I am having the same issue when using mfgtoolcli under Linux. (all works well when running it with Windows)

My hardware is  an NXP Imx6ull evk development board.

The package I am using is L4.9.11_1.0.0-ga_mfg-tools.

 

# ./linux-runvbs.sh mfgtool2-yocto-mx-evk-sdcard-sd1.vbs

mfgtool2-yocto-mx-evk-sdcard-sd1.vbs
Executing: ./mfgtoolcli -l SDCard -s board=sabresd -s mmc=0 -s 6uluboot=14x14evk -s 6uldtb=14x14-evk -s 6ulldtb=14x14-evk
Your Options:
board: sabresd
mmc: 0
6uluboot: 14x14evk
6uldtb: 14x14-evk
6ulldtb: 14x14-evk
Ready to flash.
init op Failed code# 24

 

Here the content of MfgToolLibLog.txt:

DLL version: 2.3.4
Mon Aug 13 10:54:42 2018
Start new logging
ModuleID[2] LevelID[1]: Error: Invalid device name: MX6SLL
ModuleID[2] LevelID[1]: Parse ucl script failed, error code: 24

Here the output of lsusb:

# lsusb

Bus 003 Device 029: ID 15a2:0080 Freescale Semiconductor, Inc.

 

Here is the tailing output of strace:

timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK) = 10
write(1, "Ready to flash.\n", 16Ready to flash.
) = 16
open("MfgToolLibLog.txt", O_RDWR|O_CREAT|O_APPEND, 0666) = 11
stat("MfgToolLibLog.txt", {st_mode=S_IFREG|0664, st_size=4700, ...}) = 0
fstat(11, {st_mode=S_IFREG|0664, st_size=4700, ...}) = 0
lseek(11, 4096, SEEK_SET) = 4096
read(11, "Parse ucl script failed, error c"..., 604) = 604
write(11, "DLL version: 2.3.4\n", 19) = 19
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 12
fstat(12, {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0
fstat(12, {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0
read(12, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"..., 4096) = 2845
lseek(12, -1811, SEEK_CUR) = 1034
read(12, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"..., 4096) = 1811
close(12) = 0
write(11, "Mon Aug 13 15:27:45 2018\n Star"..., 46) = 46
open("./Profiles/Linux/OS Firmware/ucl2.xml", O_RDONLY) = 12
stat("./Profiles/Linux/OS Firmware/ucl2.xml", {st_mode=S_IFREG|0644, st_size=84149, ...}) = 0
fstat(12, {st_mode=S_IFREG|0644, st_size=84149, ...}) = 0
read(12, "<!--\n* Copyright (C) 2012, Frees"..., 81920) = 81920
read(12, "ess=\"0x80800000\"\n\t\tloadSection=\""..., 4096) = 2229
brk(NULL) = 0x1e1e000
brk(0x1e3f000) = 0x1e3f000
brk(NULL) = 0x1e3f000
brk(0x1e60000) = 0x1e60000
brk(NULL) = 0x1e60000
brk(0x1e81000) = 0x1e81000
write(11, "ModuleID[2] LevelID[1]: Error: I"..., 59) = 59
write(11, "ModuleID[2] LevelID[1]: Parse uc"..., 64) = 64
close(11) = 0
write(1, "init op Failed code# 24 \n", 25init op Failed code# 24
) = 25
close(4) = 0
close(3) = 0
exit_group(-1) = ?
+++ exited with 255 +++

 

Here is the  ucl2.xml I modified, and I only included my target processor:

<UCL>
<CFG>
<!-- <STATE name="BootStrap" dev="MX6SL" vid="15A2" pid="0063"/> -->
<!-- <STATE name="BootStrap" dev="MX6SLL" vid="1FC9" pid="0128"/> -->
<!-- <STATE name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/> -->
<!-- <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/> -->
<!-- <STATE name="BootStrap" dev="MX6SX" vid="15A2" pid="0071"/> -->
<!-- <STATE name="BootStrap" dev="MX6UL" vid="15A2" pid="007D"/> -->
<!-- <STATE name="BootStrap" dev="MX7D" vid="15A2" pid="0076"/> -->
<STATE name="BootStrap" dev="MX6ULL" vid="15A2" pid="0080"/>
<!-- <STATE name="BootStrap" dev="MX7ULP" vid="1FC9" pid="0126"/> -->
<!-- <STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/> -->
</CFG>

 

Now the error message changes and complains about the MX6ULL being invalid:

# tail MfgToolLibLog.txt

Mon Aug 13 15:19:51 2018
Start new logging
ModuleID[2] LevelID[1]: Error: Invalid device name: MX6ULL
ModuleID[2] LevelID[1]: Parse ucl script failed, error code: 24

 

Is anybody successfully using mfgtoolcli with Linux?

I see some complains about it on this forum but no solution.

 

mfgtoolcli is clearly upset about something. Would be great to get it running.

 

Mat

Outcomes