arm: Add extra boot device (UART) to run Ymodem u-boot.img boot on XEA (imx28)
authorLukasz Majewski <lukma@denx.de>
Fri, 10 Jul 2020 07:49:32 +0000 (09:49 +0200)
committerStefano Babic <sbabic@denx.de>
Thu, 16 Jul 2020 09:20:33 +0000 (11:20 +0200)
This commit enables imx28 based XEA board's u-boot.sb (SPL) to download
u-boot proper (u-boot.img) via Ymodem protocol.

This is extremely useful in the recovery scenario where u-boot.sb is
downloaded via uuu utility to SDRAM [*], and then one can upload u-boot
proper via serial console to fully debrick the device.

Note - debricking procedure of imx28 devices:
- NXP's original USB based tools (like mxsldr or uuu) expect single
  u-boot.sb which is a relic of the old U-Boot (~2013) without SPL and
  U-Boot proper distinction.

[*] On Host:
------------
cat << EOF > imx28_xea.lst
uuu_version 1.3.0
SDPS: boot -f /srv/tftp/xea/u-boot.sb
SDPU: done
EOF

Please start picocom:
sudo picocom -b 115200 -s "sz -vv" /dev/ttyUSB1
sudo ./uuu/uuu -V imx28_xea.lst

On the U-boot console one shall see:
Trying to boot from UART
CCC

Then please press CTRL+A, S
and type u-boot.img

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Peng Fan <peng.fan@nxp.com>
board/liebherr/xea/xea.c
configs/imx28_xea_defconfig

index 8159f3a..4062c6f 100644 (file)
@@ -116,6 +116,7 @@ void board_boot_order(u32 *spl_boot_list)
 {
        spl_boot_list[0] = BOOT_DEVICE_MMC1;
        spl_boot_list[1] = BOOT_DEVICE_SPI;
+       spl_boot_list[2] = BOOT_DEVICE_UART;
 }
 
 int spl_start_uboot(void)
index b879de5..38f3fa6 100644 (file)
@@ -36,6 +36,7 @@ CONFIG_SPL_MMC_TINY=y
 CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SPL_OS_BOOT=y
 CONFIG_SPL_SPI_LOAD=y
+CONFIG_SPL_YMODEM_SUPPORT=y
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_SPL=y
 CONFIG_CMD_ASKENV=y