diff mbox series

arm: Add extra boot device (UART) to run Ymodem u-boot.img boot on XEA (imx28)

Message ID 20200710074932.19553-1-lukma@denx.de
State Accepted
Commit 949feef062f21d19ecc76b48fdeb8f3099e16df6
Headers show
Series arm: Add extra boot device (UART) to run Ymodem u-boot.img boot on XEA (imx28) | expand

Commit Message

Lukasz Majewski July 10, 2020, 7:49 a.m. UTC
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 at denx.de>
---

 board/liebherr/xea/xea.c    | 1 +
 configs/imx28_xea_defconfig | 1 +
 2 files changed, 2 insertions(+)

Comments

Peng Fan July 10, 2020, 3:24 p.m. UTC | #1
> Subject: [PATCH] arm: Add extra boot device (UART) to run Ymodem
> u-boot.img boot on XEA (imx28)
> 
> 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 at denx.de>

Acked-by: Peng Fan <peng.fan at nxp.com>

> ---
> 
>  board/liebherr/xea/xea.c    | 1 +
>  configs/imx28_xea_defconfig | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/board/liebherr/xea/xea.c b/board/liebherr/xea/xea.c index
> 8159f3a2d9..4062c6fb82 100644
> --- a/board/liebherr/xea/xea.c
> +++ b/board/liebherr/xea/xea.c
> @@ -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)
> diff --git a/configs/imx28_xea_defconfig b/configs/imx28_xea_defconfig index
> b879de5042..38f3fa6871 100644
> --- a/configs/imx28_xea_defconfig
> +++ b/configs/imx28_xea_defconfig
> @@ -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
> --
> 2.20.1
diff mbox series

Patch

diff --git a/board/liebherr/xea/xea.c b/board/liebherr/xea/xea.c
index 8159f3a2d9..4062c6fb82 100644
--- a/board/liebherr/xea/xea.c
+++ b/board/liebherr/xea/xea.c
@@ -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)
diff --git a/configs/imx28_xea_defconfig b/configs/imx28_xea_defconfig
index b879de5042..38f3fa6871 100644
--- a/configs/imx28_xea_defconfig
+++ b/configs/imx28_xea_defconfig
@@ -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