Hi,
I want to download and run U-Boot on a iMX95 based system.
I created this script cmd.lst:
# {
SDPS: boot -f flash.bin
SDPS: done
SDPV: delay 1000
SDPV: write -f flash.bin -skipspl
SDPV: jump
SDPV: done
# }
If I follow this commands step by step on command line it works fine.
But if I call
=> sudo /usr/bin/uuu -v -b ./cmd.lst
it hangs
Wait for Known USB Device Appear...
New USB Device Attached at 1:41-636B3EF4AB264648
1:41-636B3EF4AB264648>Start Cmd:SDPS: boot -f flash.bin
100%1:41-636B3EF4AB264648>Okay (3.007s)
1:41-636B3EF4AB264648>Start Cmd:SDPS: done
1:41-636B3EF4AB264648>Okay (0s)
Is it not allowed to do this steps within one command list?
Or what is wrong with this command list?
Yes, SDPS and SDPV steps can be in one UUU command list. For i.MX95 the intended sequence is: first SDPS: boot -f flash.bin starts SPL, then SDPV: write -f flash.bin -skipspl and SDPV: jump complete/start U-Boot . The script examples I found use the same combined SDPS→SDPV flow without an SDPS: done between them .
What is wrong in your case is most likely the done placement, and possibly the way you invoke the script:
uuu_version 1.5.233
SDPS: boot -f flash.bin
SDPV: delay 1000
SDPV: write -f flash.bin -skipspl
SDPV: jump
Run it as a custom script file directly:
sudo /usr/bin/uuu -v ./cmd.lst
not as:
sudo /usr/bin/uuu -v -b ./cmd.lst
The -b option is documented for UUU built-in scripts such as sd , emmc , sd_all , or emmc_all , while a custom script file is normally passed directly to uuu . Also, done is described as the last command for the whole flow, so putting SDPS: done immediately after the first boot stage can make UUU stop that stage and wait for the next known USB device instead of continuing cleanly into the SDPV stage .
So I would change your file from:
SDPS: boot -f flash.bin
SDPS: done
SDPV: delay 1000
SDPV: write -f flash.bin -skipspl
SDPV: jump
SDPV: done
to:
uuu_version 1.5.233
SDPS: boot -f flash.bin
SDPV: delay 1000
SDPV: write -f flash.bin -skipspl
SDPV: jump
If it still waits at the SDPS→SDPV transition, try a newer UUU release; one i.MX95 report specifically recommends moving from uuu_1.5.201 to uuu_1.5.233 for hangs at 100% . You can also increase the stage-switch wait timeout with -T , which is the timeout for waiting for the next known USB device at a stage switch .
Use one script, but remove the intermediate done lines and run the file directly with uuu -v ./cmd.lst ; then update UUU or increase -T only if the board still does not re-enumerate into the SDPV stage.
Hi and thank you@yipingwang
Please excuse the late feedback....
When I changed the cmd-lst to:
SDPS: boot -f flash.bin
SDPV: delay 1000
SDPV: write -f flash.bin -skipspl
SDPV: jump
SDPV: done
and then switched to uuu_1.5.233 it worked fine.
But the call must be:
=> ./uuu -v -b ./cmd.lst
With
=> ./uuu -v ./cmd.lst
it seems uuu try to load the cmd.lst as a botloader binary.
It returns:
New USB Device Attached at 3:5-636B3EF4AB264648
3:5-636B3EF4AB264648>Start Cmd:SDPS: boot -f "./cmd.lst"