imx8mp: Flashing U-Boot into eMMC hardware partition via UUU

Fabio Estevam festevam at gmail.com
Fri May 10 17:10:07 CEST 2024


Hi Michael,

On Fri, May 10, 2024 at 11:28 AM Michael Nazzareno Trimarchi
<michael at amarulasolutions.com> wrote:

> You can just change as you want. We have this file in buildroot, uuu
> can run command on the device
> using FB command. Example how call it

Thanks for sharing the example.

I adapted the UUU script like this:

SDPS: boot -f flash.bin
FB: ucmd setenv fastboot_buffer ${loadaddr}
FB: ucmd mmc dev 2 1
FB: download -f flash.bin
FB: ucmd setexpr blkcnt $filesize + 0x1ff
FB: ucmd setexpr blkcnt $blkcnt / 0x200
FB: ucmd mmc write $loadaddr 0 $blkcnt
FB: reboot
FB: done

Did the following changes based on imx8mn_bsh_smm_s2pro:

index 024b46ef8bc2..0b6026c34309 100644
--- a/board/freescale/imx8mp_evk/imx8mp_evk.c
+++ b/board/freescale/imx8mp_evk/imx8mp_evk.c
@@ -3,6 +3,8 @@
  * Copyright 2019 NXP
  */

+#include <common.h>
+#include <asm/arch/sys_proto.h>
 #include <env.h>

 int board_init(void)
@@ -17,5 +19,11 @@ int board_late_init(void)
        env_set("board_rev", "iMX8MP");
 #endif

+       if (is_usb_boot()) {
+               printf("***** Entering in USB download mode\n");
+               env_set("bootcmd", "fastboot usb 0");
+               env_set("bootdelay", "0");
+       }
+
        return 0;
 }
diff --git a/include/configs/imx8mp_evk.h b/include/configs/imx8mp_evk.h
index 1759318fdd35..148b36bd3169 100644
--- a/include/configs/imx8mp_evk.h
+++ b/include/configs/imx8mp_evk.h
@@ -25,8 +25,17 @@

 #include <config_distro_bootcmd.h>

+#define EMMCARGS \
+       "fastboot_partition_alias_all=" \
+               __stringify(CONFIG_FASTBOOT_FLASH_MMC_DEV) ".0:0\0" \
+       "fastboot_partition_alias_bootloader=" \
+               __stringify(CONFIG_FASTBOOT_FLASH_MMC_DEV) ".1:0\0" \
+       "emmc_dev=" __stringify(CONFIG_FASTBOOT_FLASH_MMC_DEV) "\0" \
+       "emmc_ack=1\0" \
+
 /* Initial environment variables */
 #define CFG_EXTRA_ENV_SETTINGS         \
+       EMMCARGS \
        BOOTENV \
        "scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
        "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \

and now UUU correctly flashes the eMMC hardware partition.

Thanks a lot,

Fabio Estevam


More information about the U-Boot mailing list