Hi,
We have a huge number of devices (i.MX8M Plus) and we need to register them automatically in an internal inventory. We’re trying to unequivocally identify each device before flashing it, as a preliminary step in the flashing procedure. Hence, the device is booted in Serial Downloader mode.
Then, in that boot mode we need to gather at least this information:
How could we get this information? We will need to include this gathering to a script to be run automatically.
In the case of MAC, we see it by:
- booting from eMMC (in an already flashed device)
- connecting serial port with Minicom
- running 'net list'
When booting in Serial Downloader mode, we've defined a custom '.lst' file derived from the original 'emmc_burn_all.lst' containing 'FB: ucmd net list ' and executed the 'uuu'. However:
- The output is not seen in stdout
- We see the output in the Minicom console, but, the MAC that appears there is clearly wrong as it reports that:
eth1 : ethernet@30bf0000 00:00:00:00:00:00 active
How can we see and gather the output of uuu through the USB port, and get the proper value?
Thanks in advance,
Jose
Hello,
I had a similar problem. I needed to get the serial number of my imx8m MINI board when flashing with uuu but it was not possible. But I found another solution: after using uuu (so that the bootloader is loaded and can receive fastboot commands) you can use the android tool 'fastboot' to detect the device connected to the USB OTG cable and it displays the serial number of the board. It is the serial number that you print with 'printenv serial#' when you are in the bootloader.
sudo fastboot devices -l
Perhaps it works also in your case.
Regarding the command 'printenv'. Adding it to the '.lst' file and running it with 'uuu' in Serial Downloader mode reports different variables than running it directly from u-boot when booting from eMMC.
Booting from eMMC:
eth1addr=6a:29:f9:3e:a9:3c
ethact=ethernet@30bf0000
ethprime=eth1
Booting in Serial Downloader mode, the unique variable referring to the ethernet is:
ethprime=eth1
Hello @jetxeberria ,
I hope you are doing well.
->One can use the uuu with the -v or -V flag to have detailed logs of the steps.
=> -v -V = verbose mode, -V enable libusb error\warning info
->One can also use the flag -m with the uuu to monitor the particular path.
=> -m USBPATH Only monitor these paths.
-m 1:2 -m 1:3
Thanks & Regards,
Sanket Parekh
Thanks @Sanket_Parekh ,
I've tested your suggestion but it doesn't report me the output of the ucmd.
I'm running:
jetxeberria@pcs-200: sudo uuu -V -m 1:42 -b /path/to/custom/emmc/burn.lst /path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk /path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/custom-imx8mpsolidrun-20230425082648.rootfs.wic.zst
The output is:
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.21-0-g1f42172
Build in config:
Pctl Chip Vid Pid BcdVersion
==================================================
SDPS: MX8QXP 0x1fc9 0x012f [0x0002..0xffff]
SDPS: MX8QM 0x1fc9 0x0129 [0x0002..0xffff]
SDPS: MX8DXL 0x1fc9 0x0147
SDPS: MX28 0x15a2 0x004f
SDPS: MX815 0x1fc9 0x013e
SDPS: MX865 0x1fc9 0x0146
SDPS: MX8ULP 0x1fc9 0x014a
SDPS: MX8ULP 0x1fc9 0x014b
SDPS: MX93 0x1fc9 0x014e
SDP: MX7D 0x15a2 0x0076
SDP: MX6Q 0x15a2 0x0054
SDP: MX6D 0x15a2 0x0061
SDP: MX6SL 0x15a2 0x0063
SDP: MX6SX 0x15a2 0x0071
SDP: MX6UL 0x15a2 0x007d
SDP: MX6ULL 0x15a2 0x0080
SDP: MX6SLL 0x1fc9 0x0128
SDP: MX7ULP 0x1fc9 0x0126
SDP: MXRT106X 0x1fc9 0x0135
SDP: MX8MM 0x1fc9 0x0134
SDP: MX8MQ 0x1fc9 0x012b
SDPU: SPL 0x0525 0xb4a4 [0x0000..0x04ff]
SDPV: SPL1 0x0525 0xb4a4 [0x0500..0x9998]
SDPV: SPL1 0x1fc9 0x0151 [0x0500..0x9998]
SDPU: SPL 0x0525 0xb4a4 [0x9999..0x9999]
SDPU: SPL 0x3016 0x1001 [0x0000..0x04ff]
SDPV: SPL1 0x3016 0x1001 [0x0500..0x9998]
FBK: 0x066f 0x9afe
FBK: 0x066f 0x9bff
FBK: 0x1fc9 0x0153
FB: 0x0525 0xa4a5
FB: 0x18d1 0x0d02
FB: 0x3016 0x0001
FB: 0x1fc9 0x0152
FB: 0x0483 0x0afbRun built-in script:
uuu_version 1.4.149# @_flash.bin | bootloader, which can extract from wic image
# @_image [_flash.bin] | wic image burn to emmc.
# This command will be run when i.MX6/7 i.MX8MM, i.MX8MQ
SDP: boot -f /home/jetxeberria/projects/dasgroup/dasgate/dos/build/dasgate_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -scanlimited 0x800000# This command will be run when ROM support stream mode
# i.MX8QXP, i.MX8QM
SDPS: boot -scanterm -f /home/jetxeberria/projects/dasgroup/dasgate/dos/build/dasgate_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -scanlimited 0x800000# These commands will be run when use SPL and will be skipped if no spl
# SDPU will be deprecated. please use SDPV instead of SDPU
# {
SDPU: delay 1000
SDPU: write -f /home/jetxeberria/projects/dasgroup/dasgate/dos/build/dasgate_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -offset 0x57c00
SDPU: jump -scanlimited 0x800000
# }# These commands will be run when use SPL and will be skipped if no spl
# if (SPL support SDPV)
# {
SDPV: delay 1000
SDPV: write -f /home/jetxeberria/projects/dasgroup/dasgate/dos/build/dasgate_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -skipspl -scanterm -scanlimited 0x800000
SDPV: jump -scanlimited 0x800000
# }
FB: ucmd net list
FB: done
Wait for Known USB Device Appear... at path 1:42
New USB Device Attached at 1:42
1:42>Start Cmd:SDPS: boot -scanterm -f /home/jetxeberria/projects/dasgroup/dasgate/dos/build/dasgate_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -scanlimited 0x800000
100%1:42>Okay (1.997s)
New USB Device Attached at 1:42
1:42>Start Cmd:FB: ucmd net list
libusb: error [udev_hotplug_event] ignoring udev action bind
1:42>Okay (0.015s)
1:42>Start Cmd:FB: done
1:42>Okay (0s)
As you can see, my '.lst' file has just 2 lines different from the original 'emmc_burn_all.lst':
FB: ucmd net list
FB: done
After running the command, nothing is shown:
1:42>Start Cmd:FB: ucmd net list
1:42>Okay (0.016s)
1:42>Start Cmd:FB: done
1:42>Okay (0s)
Meanwhile, in the serial port I can see with minicom the following:
U-Boot SPL 2022.04-lf_v2022.04+gaa217664ff (Nov 15 2022 - 06:28:05 +0000)
Training for 3GByte Micron
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
Trying to boot from BOOTROM
Boot Stage: USB boot
Find img info 0x&480203a0, size 1088
Need continue download 1024
Download 1647392, Total size 1648512
NOTICE: BL31: v2.6(release):lf-5.15.71-2.2.0-0-g3c1583ba0
NOTICE: BL31: Built : 11:00:38, Nov 21 2022
U-Boot 2022.04-lf_v2022.04+gaa217664ff (Nov 15 2022 - 06:28:05 +0000)CPU: i.MX8MP[8] rev1.1 1800 MHz (running at 1200 MHz)
CPU: Commercial temperature grade (0C to 95C) at 26C
Reset cause: POR
Model: NXP i.MX8MPlus LPDDR4 SolidRun board
DRAM: 3 GiB
Core: 79 devices, 25 uclasses, devicetree: separate
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from nowhere... OK
[*]-Video Link 0fail to get display timings
probe video device failed, ret -22[0] lcd-controller@32e80000, video
[1] mipi_dsi@32e60000, video_bridge
fail to get display timings
probe video device failed, ret -22
In: serial
Out: serial
Err: serial
SEC0: RNG instantiatedBuildInfo:
- ATF 3c1583bMMC: no card present
Detect USB boot. Will enter fastboot mode!
Net:
Warning: ethernet@30bf0000 (eth1) using random MAC address - ca:e7:70:11:7e:ac
eth1: ethernet@30bf0000 [PRIME]
Fastboot: Normal
Boot from USB for mfgtools
*** Warning - Use default environment for mfgtools
, using default environmentRun bootcmd_mfg: run mfgtool_args;if iminfo ${initrd_addr}; then if test ${tee} = yes; ;
Hit any key to stop autoboot: 0## Checking Image at 43800000 ...
Unknown image format!
Run fastboot ...
eth1 : ethernet@30bf0000 00:00:00:00:00:00 active
Detect USB boot. Will enter fastboot mode!
(NULL udevice *): request 00000000fcf12540 was not queued to ep1in-bulk
Here I highlight this warning when booting:
Warning: ethernet@30bf0000 (eth1) using random MAC address - 92:ea:66:6d:88:04
Anyway, when running the command net list, it doesn't report even the random MAC
eth1 : ethernet@30bf0000 00:00:00:00:00:00 active
As I told, I see here 2 problems:
1 - I can't retrieve the output of ucmd command from the Serial Downloader interface
2 - The output from the debug serial interface shows incorrect information
Hello @jetxeberria ,
I hope you are doing well.
->Please make sure to redirect the ucmd command properly to the .lst file
command > "file"
->One can take a reference from the above syntax and make a command and then try to add it to the .lst file
->There is unique information one board can have the MAC address only.
->The On-Chip OTP controller (OCOTP_CTRL) provides an interface for reading, programming, and/or overriding identification and control information stored in on-chip fuse elements.
->Please refer to the datasheet for more details on the same.
https://www.nxp.com/webapp/
I hope this information helps!
Thanks & Regards,
Sanket Parekh
Hello @Sanket_Parekh
->There is unique information one board can have the MAC address only.
Regarding this point, in the doc you linked I read that:
[...] The OCOTP_CTRL provides the primary
user-visible mechanism for interfacing with on-chip fuse elements.
Among the uses for the fuses are unique chip identifiers, mask
revision numbers [...]
Couldn't I uniquely identify each device with these 'unique chip identifiers'? How could I read them?
Thanks in advance,
Jose
Hello @Sanket_Parekh ,
Following the OCOTP_CTRL instructions of the i.MX 8M Plus Applications Processor
Reference Manual I've found that there is a UNIQUE_ID at address 0x420 of the fuses.
Looking at the '6.3.5.1.1 OCOTP memory map' I miss the bank-word reference for that address:
410h Value of OTP Bank0 Word1 (Lock controls) (HW_OCOTP_LOCK1) 32 RO FFFF_FFFFh
460h Value of OTP Bank1 Word2 (HW_OCOTP_GP4) 32 RW 0000_0000h
However I've tested reading the fuses (from u-boot accessed by Minicom) at Bank0 Word2-3 with:
fuse read 0 2 2
and I've found a code that matches with the result of running following Fastboot command in the '.lst':
FB: getvar serialno
'getvar' output is shown in stdout of the console that runs 'uuu', but 'ucmd' output doesn't. Even with 'getvar', I can't redirect the output to a file by adding it to the '.lst'
FB: getvar serialno > "/tmp/getvar"
Keeps showing the output just in stdout:
1:41>Start Cmd:FB: getvar serialno > "/tmp/getvar"
0e0b......e51:41>Okay (0.007s)
What is this value UNIQUE_ID/serialno? Isn't unique for each device? Can it change along device life?
How could I redirect '.lst' commands output to a file? And how can I see the output of ucmd at least in the launching console instead of in the debug one? (or even better, send it to a file?)
Thanks for your support,
Jose
Hello @jetxeberria ,
I hope you are doing well.
What is this value UNIQUE_ID/serialno?
->At the stage of loading in U-Boot, you can read the "unique ID" (addr. 0x021bc410, 0x021bc420 ) with the "md" command.
->This number is fixed and connected to the MAC Address of the module.
Isn't unique for each device? Can it change along device life?
->Yes, Unique_id or serial number is unique for every device which is why they are unique.
How could I redirect '.lst' commands output to a file?
-> That is the correct way you have given.
FB: ucmd "net list > file.txt"
And how can I see the output of ucmd at least in the launching console instead of in the debug one?
(or even better, send it to a file?
->Please make sure to not run fastboot because it doesn't support ucmd or acmd. please refer to the below link for reference.
https://community.nxp.com/t5/
I hope this information helps you!
Thanks & Regards,
Sanket Parekh
Hello @Sanket_Parekh
Thanks for your response,
->At the stage of loading in U-Boot, you can read the "unique ID" (addr. 0x021bc410, 0x021bc420 ) with the "md" command.
I'm exploring the 'md' command in u-boot but I can't read that addresses. CPU is restarted:
u-boot=> md 0x021bc410
"Synchronous Abort" handler, esr 0x96000210
elr: 00000000402a42cc lr : 00000000402a4218 (reloc)
elr: 00000000fef952cc lr : 00000000fef95218
x0 : 0000000000000009 x1 : 00000000fcee50e8
x2 : 00000000fffffffe x3 : 0000000000000020
x4 : 0000000000000000 x5 : 00000000fcee50e1
x6 : 0000000000000030 x7 : 00000000fcee5030
x8 : 0000000000000010 x9 : 000000009209aa57
x10: 00000000ffffffd8 x11: 0000000000000010
x12: 000000000001869f x13: 00000000fcee5358
x14: 00000000fcee5460 x15: 0000000000000021
x16: 00000000fef09ad0 x17: 0000000000004340
x18: 00000000fcef0da0 x19: 0000000000000004
x20: 0000000000000004 x21: 0000000000000004
x22: 00000000021bc410 x23: 00000000fcee50e9
x24: 0000000000000000 x25: 00000000fcee5098
x26: 00000000fefb63be x27: 0000000000000008
x28: 0000000000000004 x29: 00000000fcee5030
Code: 2a0403f3 17ffffca 7100129f 54000181 (b94002c3)
Resetting CPU ...
resetting ...
I'm searching for some other addresses pointed by the 'i.MX 8M Plus Applications Processor Reference Manual' and I can see the UNIQUE_ID:
u-boot=> md 0x30350420 8
30350420: 14f763e5 14f763e5 14f763e5 14f763e5 .c...c...c...c..
30350430: 0e0b6800 0e0b6800 0e0b6800 0e0b6800 .h...h...h...h..
Matches the search of fuses
u-boot=> fuse read 0 2 2
Reading bank 0:
Word 0x00000002: 14f763e5 0e0b6800
u-boot=> md 0x30350640 8
30350640: 00000000 00000000 00000000 00000000 ................
30350650: 00000000 00000000 00000000 00000000 ................
Matches the search of fuses. I assume that it's empty because MAC is not written in fuses
u-boot=> fuse read 9 0 2
Reading bank 9:
Word 0x00000000: 00000000 00000000
All right, then, let's go back to the Serial Downloader booting mode, as that's the mode we need to gather that information with.
Regarding the redirection of ucmd command:
-> That is the correct way you have given.
FB: ucmd "net list > file.txt"
I'm not achieving to redirect the command output this way, it fails.
1:41>Start Cmd:FB: ucmd "net list > file.txt"
1:41>Fail (0.011s)
Meanwhile in the debug interface it reports that:
Unknown command 'net list > file.txt' - try 'help'
It seems to be interpreting 'net list > file.txt' as a whole command
->Please make sure to not run fastboot because it doesn't support ucmd or acmd
Sorry but I don't understand well. The original '.lst' file that I'm taking as reference is the emmc_burn_all.lst from mfgtools repository. This '.lst' file is using 'ucmd' command in fastboot in 5 times and runs properly:
FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev ${emmc_dev}
FB: ucmd mmc dev ${emmc_dev}
...
FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;
FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0
please refer to the below link for reference.
If I've understood well, in that topic the user had the issue because was using the mainline u-boot. However, I'm using the fork of NXP (nxp-imx/uboot-imx). I've verified it in the /path/to/yocto/build/imx8mpsolidrun-poky-linux/u-boot-imx/2022.04-r0/git/.git/config
What may I be missing?
Thanks in advance,
Jose
Hello @jetxeberria ,
I hope you are doing well.
Please accept my apology for the inconvenience.
Please check with the below command to get the serial number.
cat /proc/device-tree/serial-
Hello @Sanket_Parekh ,
Please check with the below command to get the serial number.
cat /proc/device-tree/serial-number
Please correct me if I'm wrong, but I fear this is not possible.
I must gather the information even before flashing the device. Hence, there is not any filesystem yet with such path.
Moreover, in order to gather that information just before the flashing stage, I must boot the device in Serial Downloader mode, through the OTG USB A interface. In that mode, I must use Universal Update Utility software and I can just access to the FastBoot commands that have been customized in the implementation of uuu, as explained in the help pages [uuu -H]:
uuu [-d -m -v -V] <bootloader|cmdlists|cmd>
...
Command Format PROTOCOL COMMAND ARG
FB[-t timeout]:\Fastboot: android fastboot protocol. unit of timeout is ms
getvar
ucmd <any uboot command>
acmd <any never returned uboot command, like booti, reboot>
flash [-raw2sparse] <partition> <filename>
download -f <filename>
crc -f <filename> [-format "mmc read $loadaddr"] [-blksz 512][ -crcblock 0x4000000]
[-seek 0] [-skip 0] [-nostop]
seek skip block number from storage
skip skips byte from -f
nostop continue check even if found mismatch
cat is not an u-boot command, as can be checked by login in debug mode an running help
Anyway I've tested it:
Error: Unknown Command:FB: cat /proc/device-tree/serial-number
Please, currently I can read both the serial number and the MAC in three different ways:
My problem now is that the information appears just in the debug interface (microUSB-B). I need a way to get this output through the OTG USB-A interface using the uuu software, and show it in console or even better, redirect it to a file. (I have both interfaces connected, but I'm booting in Serial Downloader mode, hence the debug interface is just readable, I can't write there nor want)
As I showed in previous comment, this syntax doesn't work:
Regarding the redirection of ucmd command:
-> That is the correct way you have given.
FB: ucmd "net list > file.txt"I'm not achieving to redirect the command output this way, it fails.
1:41>Start Cmd:FB: ucmd "net list > file.txt"
1:41>Fail (0.011s)Meanwhile in the debug interface it reports that:
Unknown command 'net list > file.txt' - try 'help'
Hi @jetxeberria,
Hello @Sanket_Parekh
Please, currently I can read both the serial number and the MAC in three different ways.
My problem now is that the information appears just in the debug interface (microUSB-B). I need a way to get this output through the OTG USB-A interface using the uuu software, and show it in console or even better, redirect it to a file. (I have both interfaces connected, but I'm booting in Serial Downloader mode)
As I showed in previous comment, this syntax doesn't work:
Regarding the redirection of ucmd command:
-> That is the correct way you have given.
FB: ucmd "net list > file.txt"I'm not achieving to redirect the command output this way, it fails.
1:41>Start Cmd:FB: ucmd "net list > file.txt"
1:41>Fail (0.011s)Meanwhile in the debug interface it reports that:
Unknown command 'net list > file.txt' - try 'help'
Thanks in advance
Hello @jetxeberria ,
I hope you are doing well.
Please accept my apology for the inconvenience.
->Information only appears on debug interface that is expected behavior.
->There is no filesystem in u-boot. so there is no command to copy files to USB from U-boot or any kind of transfer like from USB to emmc or etc.
->One can check that there is no u-boot command to transfer data through USB,
https://www.nxp.com/docs/en/
->To print the module's MAC address and serial number
# intnvram print module ethaddr1 serialnr
ethaddr1=00:40:9D:2E:92:D4
serialnr=0700-94000329A
->One may modify the u-boot source code to add the command.
I hope this information helps!
Thanks & Regards,
Sanket Parekh
Hello @Sanket_Parekh ,
->Information only appears on debug interface that is expected behavior.
Okey, then just to verify: It is not possible to gather the information queried by `ucmd` when running `uuu`, right?
->To print the module's MAC address and serial number
#intnvram print module ethaddr1 serialnr
This is not u-boot command nor FastBoot command. Where should I run this command?
->One may modify the u-boot source code to add the command.
u-boot has already diverse options to print that information, I think there must be added no extra commands to u-boot. Wouldn't I need to modify `uuu` implementation in order to redirect its output to the Serial Downloader interface instead of to the debug console?
Thanks
Hello @jetxeberria
I hope you are doing well.
Please accept my apology for the inconvenience.
Can you please follow the below steps and share the observation whether it works for you or not?
->Please connect the i.MX8M Plus to the computer using a USB cable.
->Please run the below-given command on your terminal window.
uuu -v -m USBPATH
(The -v flag will enable verbose logging, and the -m flag will specify the USB path to monitor.)
->It will show the output of the uuu utility on the terminal window.
where one can get the mac address (for ex:- 00:ab:cd:df:67:89 eth0)
->Now one can make a script to identify the device as per purpose.
Please share the observation.
Thanks & Regards,
Sanket Parekh
Hi @Sanket_Parekh ,
Can you please follow the below steps and share the observation whether it works for you or not?
Yes, I followed that steps 3 weeks ago when you suggested it the first time in your first response and I reported all the output, showing that uuu output is not being shown in the terminal window for any ucmd commands, just in the debug one, and using ucmd is the unique way I've found yet to get the MAC information.
We've made a fork of your repository nxp-imx/mfgtools and added a new argument to uuu.cpp in order to redirect the output of uuu command to a file. Would you like to pull request it?
We can't get the output of ucmd yet in the terminal launching window.
Could you answer the questions of my previous message?
Thanks in advance
Hello @jetxeberria
I hope you are doing well.
#intnvram print module ethaddr1 serialnr
This is not u-boot command nor FastBoot command. Where should I run this command?
->One can check this command on CLI actually.
Okey, then just to verify: It is not possible to gather the information queried by `ucmd` when running `uuu`, right?
->ucmd is a command-line tool actually, so I'm afraid that is correct it won't gather the information, It does not have the ability to gather the information that is queried by ucmd.
Wouldn't I need to modify `uuu` implementation in order to redirect its output to the Serial Downloader interface instead of to the debug console?
->To print the module's MAC address and serial number on USB, you can use the following commands in U-Boot:
printenv ethaddr
printenv serialno
These commands will print the MAC address and serial number of the module, respectively.
->To redirect uuu's output to the serial downloader interface, you can use the following command:
uuu -d (Daemon mode)
uuu [-d -m -v -V] <bootloader|cmdlists|cmd>
Please refer to the section "How to Run a Script with uuu" in the below link.
https://community.nxp.com/
I hope this helps!
Thanks & Regards,
Sanket Parekh
Thanks for your instructions
I'm trying that syntax but it's failing. I've modified the '.lst' file so the last two lines are now:
FB: ucmd net list > "mac_address"
FB: done
It reports no clue about failure.
In the USB interface (Serial Downloader mode)
1:41>Start Cmd:FB: ucmd net list > "mac_address"
1:41>Fail (0.013s)
In the serial interface (debug console):
(NULL udevice *): request 00000000fcf12540 was not queued to ep1in-bulk
Thanks @Sanket_Parekh ,
I've tested your suggestion but it doesn't report me the output of the ucmd:
I'm running:
jetxeberria@pcs-200: sudo uuu -V -m 1:42 -b /path/to/custom/emmc/burn.lst /path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk /path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/custom-imx8mpsolidrun-20230425082648.rootfs.wic.zst
The output is:
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.21-0-g1f42172
Build in config:
Pctl Chip Vid Pid BcdVersion
==================================================
SDPS: MX8QXP 0x1fc9 0x012f [0x0002..0xffff]
SDPS: MX8QM 0x1fc9 0x0129 [0x0002..0xffff]
SDPS: MX8DXL 0x1fc9 0x0147
SDPS: MX28 0x15a2 0x004f
SDPS: MX815 0x1fc9 0x013e
SDPS: MX865 0x1fc9 0x0146
SDPS: MX8ULP 0x1fc9 0x014a
SDPS: MX8ULP 0x1fc9 0x014b
SDPS: MX93 0x1fc9 0x014e
SDP: MX7D 0x15a2 0x0076
SDP: MX6Q 0x15a2 0x0054
SDP: MX6D 0x15a2 0x0061
SDP: MX6SL 0x15a2 0x0063
SDP: MX6SX 0x15a2 0x0071
SDP: MX6UL 0x15a2 0x007d
SDP: MX6ULL 0x15a2 0x0080
SDP: MX6SLL 0x1fc9 0x0128
SDP: MX7ULP 0x1fc9 0x0126
SDP: MXRT106X 0x1fc9 0x0135
SDP: MX8MM 0x1fc9 0x0134
SDP: MX8MQ 0x1fc9 0x012b
SDPU: SPL 0x0525 0xb4a4 [0x0000..0x04ff]
SDPV: SPL1 0x0525 0xb4a4 [0x0500..0x9998]
SDPV: SPL1 0x1fc9 0x0151 [0x0500..0x9998]
SDPU: SPL 0x0525 0xb4a4 [0x9999..0x9999]
SDPU: SPL 0x3016 0x1001 [0x0000..0x04ff]
SDPV: SPL1 0x3016 0x1001 [0x0500..0x9998]
FBK: 0x066f 0x9afe
FBK: 0x066f 0x9bff
FBK: 0x1fc9 0x0153
FB: 0x0525 0xa4a5
FB: 0x18d1 0x0d02
FB: 0x3016 0x0001
FB: 0x1fc9 0x0152
FB: 0x0483 0x0afbRun built-in script:
uuu_version 1.4.149# @_flash.bin | bootloader, which can extract from wic image
# @_image [_flash.bin] | wic image burn to emmc.
# This command will be run when i.MX6/7 i.MX8MM, i.MX8MQ
SDP: boot -f/path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -scanlimited 0x800000# This command will be run when ROM support stream mode
# i.MX8QXP, i.MX8QM
SDPS: boot -scanterm -f /path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -scanlimited 0x800000# These commands will be run when use SPL and will be skipped if no spl
# SDPU will be deprecated. please use SDPV instead of SDPU
# {
SDPU: delay 1000
SDPU: write -f /path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -offset 0x57c00
SDPU: jump -scanlimited 0x800000
# }# These commands will be run when use SPL and will be skipped if no spl
# if (SPL support SDPV)
# {
SDPV: delay 1000
SDPV: write -f /path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -skipspl -scanterm -scanlimited 0x800000
SDPV: jump -scanlimited 0x800000
# }
FB: ucmd net list
FB: done
Wait for Known USB Device Appear... at path 1:42
New USB Device Attached at 1:42
1:42>Start Cmd:SDPS: boot -scanterm -f /path/to/yocto/build/custom_solidrun_kirkstone/build/tmp/deploy/images/imx8mpsolidrun/imx-boot-imx8mpsolidrun-sd.bin-flash_evk -scanlimited 0x800000
100%1:42>Okay (2.002s)
libusb: error [udev_hotplug_event] ignoring udev action bind
New USB Device Attached at 1:42
1:42>Start Cmd:FB: ucmd net list
1:42>Okay (0.016s)
1:42>Start Cmd:FB: done
1:42>Okay (0s)
As you can see, my '.lst' file has just 2 lines different from the original 'emmc_burn_all.lst':
FB: ucmd net list
FB: done
After running the command, nothing is shown:
1:42>Start Cmd:FB: ucmd net list
1:42>Okay (0.016s)
1:42>Start Cmd:FB: done
1:42>Okay (0s)
Meanwhile, in the serial port I can see with minicom the following:
U-Boot SPL 2022.04-lf_v2022.04+gaa217664ff (Nov 15 2022 - 06:28:05 +0000)
Training for 3GByte Micron
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
Trying to boot from BOOTROM
Boot Stage: USB boot
Find img info 0x&480203a0, size 1088
Need continue download 1024
Download 1647392, Total size 1648512
NOTICE: BL31: v2.6(release):lf-5.15.71-2.2.0-0-g3c1583ba0
NOTICE: BL31: Built : 11:00:38, Nov 21 2022
U-Boot 2022.04-lf_v2022.04+gaa217664ff (Nov 15 2022 - 06:28:05 +0000)CPU: i.MX8MP[8] rev1.1 1800 MHz (running at 1200 MHz)
CPU: Commercial temperature grade (0C to 95C) at 40C
Reset cause: POR
Model: NXP i.MX8MPlus LPDDR4 SolidRun board
DRAM: 3 GiB
Core: 79 devices, 25 uclasses, devicetree: separate
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from nowhere... OK
[*]-Video Link 0fail to get display timings
probe video device failed, ret -22[0] lcd-controller@32e80000, video
[1] mipi_dsi@32e60000, video_bridge
fail to get display timings
probe video device failed, ret -22
In: serial
Out: serial
Err: serial
SEC0: RNG instantiatedBuildInfo:
- ATF 3c1583bMMC: no card present
Detect USB boot. Will enter fastboot mode!
Net:
Warning: ethernet@30bf0000 (eth1) using random MAC address - 92:ea:66:6d:88:04
eth1: ethernet@30bf0000 [PRIME]
Fastboot: Normal
Boot from USB for mfgtools
*** Warning - Use default environment for mfgtools
, using default environmentRun bootcmd_mfg: run mfgtool_args;if iminfo ${initrd_addr}; then if test ${tee} = yes; then bootm ${t;
Hit any key to stop autoboot: 0## Checking Image at 43800000 ...
Unknown image format!
Run fastboot ...
eth1 : ethernet@30bf0000 00:00:00:00:00:00 active
Detect USB boot. Will enter fastboot mode!
(NULL udevice *): request 00000000fcf12540 was not queued to ep1in-bulk
Here I highlight this warning when booting:
Warning: ethernet@30bf0000 (eth1) using random MAC address - 92:ea:66:6d:88:04
Anyway, when running the command net list, it doesn't report even the random MAC
eth1 : ethernet@30bf0000 00:00:00:00:00:00 active
As I told, I see here 2 problems:
1 - I can't retrieve the output of ucmd command from the Serial Downloader interface
2 - The output from the debug serial interface shows incorrect information