From: Alice Guo <alice....@nxp.com>

Supported boot device types in iMX8MM: MMC, QSPI, DHCP.

BOOTENV introduces other environment variables, so the size of ENV
should be increased. CONFIG_CMD_PART is added for command part and
CONFIG_CMD_FS_GENERIC is for command fstype.

CONFIG_BOOTCOMMAND which is defined in include/configs/imx8mm_evk.h is
moved to the place before BOOTENV because "run distro_bootcmd" is not
required to be the default boot mode. scriptaddr is the location in RAM
where boot.scr.uimg/boot.scr will be loaded to prior to execution.
script_offset_f is the location of boot.scr.uimg/boot.scr in QSPI and
script_size_f is the size of boot.scr.uimg/boot.scr. kernel_addr_r is
the location in RAM where the kernel will be loaded to.

Signed-off-by: Alice Guo <alice....@nxp.com>
---
 configs/imx8mm_evk_defconfig |  4 ++-
 include/configs/imx8mm_evk.h | 47 +++++++++++++++++++++++++++---------
 2 files changed, 38 insertions(+), 13 deletions(-)

diff --git a/configs/imx8mm_evk_defconfig b/configs/imx8mm_evk_defconfig
index 91d3bc3ac9..993b7b8835 100644
--- a/configs/imx8mm_evk_defconfig
+++ b/configs/imx8mm_evk_defconfig
@@ -5,7 +5,7 @@ CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x10000
-CONFIG_ENV_SIZE=0x1000
+CONFIG_ENV_SIZE=0x2000
 CONFIG_ENV_OFFSET=0x400000
 CONFIG_SYS_I2C_MXC_I2C1=y
 CONFIG_SYS_I2C_MXC_I2C2=y
@@ -49,6 +49,8 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_FS_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
diff --git a/include/configs/imx8mm_evk.h b/include/configs/imx8mm_evk.h
index 83521ad401..e6a1a0557a 100644
--- a/include/configs/imx8mm_evk.h
+++ b/include/configs/imx8mm_evk.h
@@ -32,8 +32,43 @@

 #endif

+#define CONFIG_BOOTCOMMAND \
+          "mmc dev ${mmcdev}; if mmc rescan; then " \
+                  "if run loadbootscript; then " \
+                          "run bootscript; " \
+                  "else " \
+                          "if run loadimage; then " \
+                                  "run mmcboot; " \
+                          "else run netboot; " \
+                          "fi; " \
+                  "fi; " \
+          "fi;"
+
+#define BOOTENV_DEV_QSPI(devtypeu, devtypel, instance) \
+       "bootcmd_" #devtypel #instance "=sf probe " #instance " 0 0 && " \
+                      "sf read $scriptaddr $script_offset_f $script_size_f && 
" \
+                      "source ${scriptaddr}; echo SCRIPT FAILED: 
continuing...;\0"
+
+#define BOOTENV_DEV_NAME_QSPI(devtypeu, devtypel, instance) \
+       #devtypel #instance " "
+
+#ifndef CONFIG_SPL_BUILD
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 1) \
+       func(MMC, mmc, 2) \
+       func(QSPI, qspi, 0) \
+       func(DHCP, dhcp, na)
+
+#include <config_distro_bootcmd.h>
+#endif
+
 /* Initial environment variables */
 #define CONFIG_EXTRA_ENV_SETTINGS              \
+       BOOTENV \
+       "scriptaddr=0x43500000\0" \
+       "script_offset_f=0x500000\0" \
+       "script_size_f=0x100000\0" \
+       "kernel_addr_r=0x40880000\0" \
        "script=boot.scr\0" \
        "image=Image\0" \
        "console=ttymxc1,115200\0" \
@@ -84,18 +119,6 @@
                        "fi; " \
                "fi;\0"

-#define CONFIG_BOOTCOMMAND \
-          "mmc dev ${mmcdev}; if mmc rescan; then " \
-                  "if run loadbootscript; then " \
-                          "run bootscript; " \
-                  "else " \
-                          "if run loadimage; then " \
-                                  "run mmcboot; " \
-                          "else run netboot; " \
-                          "fi; " \
-                  "fi; " \
-          "fi;"
-
 /* Link Definitions */
 #define CONFIG_LOADADDR                        0x40480000

--
2.17.1

Reply via email to