How to create a bootable SPL for USB booting for the i.MX8M Mini
patrick.boettcher at posteo.de
Wed Jul 20 22:36:02 CEST 2022
We are having some difficulties getting USB-boot (for a starter with
SPL) to work on a imx8mm.
Doing this is part of a debug-session for another problem, which is
worth mentioning, as it has been discussed on this list in
The original problem: we have a "complete" yocto-environment (kirkstone)
using meta-imx (and thus u-boot-imx 2022.04) where we are building a
booloader image without FIT.
We patched the atf to assign the UART4 to the Cortex A53 because it is
this UART which is used as serial console.
The binary produced by imx-boot in this environment starts booting SPL
and when jumping to the ATF it hangs.
Similar to what is seen here (some people from that thread are on CC,
sorry for the noise).
We tried several things to understand what's happening, without
A next step is now to build a SPL with upstream u-boot 2022.07 using an
existing board (our board/dts-files are really not in good shape yet).
We started using the imx8mm-beacon and then tried imx8mm-cl-iot-gate,
when loading their SPL with uuu nothing is printed on the
Here are the steps we did to build and flash it:
- patch imx-atf-2.6 to liberate UART4 into the Cortex A53-domain
- build it and place the bl31.bin in uboot's source-tree
- download ddr-firmwares and put them to uboot's source-tree
- modify board/beacon/../spl.c to UART4 (pads and init_uart_clk(3))
- add FASTBOOT and USB_FUNCTION_FASTBOOT to its defconfig.
- make deconfig && make
- run "uuu SDP: boot -f flash.bin"
uuu finds the devices and then says "Okay" but nothing happens on the
console and we think the board is not running anything.
The same uuu-command using the imx-boot-file from our yocto-env boots
the SPL and the console is showing something sane.
What did we miss? What are the steps in upstream u-boot to create a
board which can boot over SPL?
Thanks in advance for any help.
More information about the U-Boot