From: Peng Fan Date: Thu, 9 Jan 2025 03:29:12 +0000 (+0800) Subject: imx: imx8mm_evk: Switch to BOOTSTD X-Git-Tag: v2025.04-rc1~54^2~14 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=364ba68ed1a1c1820379d6dd55f0ccc429b4bcc2;p=pandora-u-boot.git imx: imx8mm_evk: Switch to BOOTSTD Move env to imx8mm_evk.env Switch to support BOOTSTD with a bsp bootcmd as fallback. Signed-off-by: Peng Fan --- diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig index 0cf3c1baffe..28be6a22bf0 100644 --- a/arch/arm/mach-imx/imx8m/Kconfig +++ b/arch/arm/mach-imx/imx8m/Kconfig @@ -154,6 +154,8 @@ config TARGET_IMX8MN_EVK select FSL_CAAM select SPL_CRYPTO if SPL imply OF_UPSTREAM + imply BOOTSTD_FULL + imply BOOTSTD_BOOTCOMMAND config TARGET_IMX8MN_DDR4_EVK bool "imx8mn DDR4 EVK board" @@ -163,6 +165,8 @@ config TARGET_IMX8MN_DDR4_EVK select FSL_CAAM select SPL_CRYPTO if SPL imply OF_UPSTREAM + imply BOOTSTD_FULL + imply BOOTSTD_BOOTCOMMAND config TARGET_IMX8MN_VENICE bool "Support Gateworks Venice iMX8M Nano module" diff --git a/board/freescale/imx8mm_evk/imx8mm_evk.env b/board/freescale/imx8mm_evk/imx8mm_evk.env new file mode 100644 index 00000000000..29690e75b15 --- /dev/null +++ b/board/freescale/imx8mm_evk/imx8mm_evk.env @@ -0,0 +1,67 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ + +boot_fdt=try +boot_fit=no +boot_targets=mmc1 mmc2 dhcp +bootm_size=0x10000000 +console=ttymxc1,115200 +fdt_addr_r=0x48000000 +fdtfile=CONFIG_DEFAULT_FDT_FILE +fdtoverlay_addr_r=0x49000000 +initrd_addr=0x48080000 +image=Image +ip_dyn=yes +kernel_addr_r=0x42000000 +loadaddr=CONFIG_SYS_LOAD_ADDR +mmcautodetect=yes +mmcdev=CONFIG_SYS_MMC_ENV_DEV +mmcpart=1 +mmcroot=/dev/mmcblk1p2 rootwait rw +prepare_mcore=setenv mcore_clk clk-imx8mm.mcore_booted; +pxefile_addr_r=0x40100000 +ramdisk_addr_r=0x48080000 +scriptaddr=0x40000000 + +mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot} +prepare_mcore=setenv mcore_clk clk-imx8mn.mcore_booted +loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image} +loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile} +mmcboot=echo Booting from mmc ...; + run mmcargs; + if test ${boot_fit} = yes || test ${boot_fit} = try; then + bootm ${loadaddr}; + else + if run loadfdt; then + booti ${loadaddr} - ${fdt_addr_r}; + else + echo WARN: Cannot load the DT; + fi; + fi +netargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=/dev/nfs + ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp +netboot=echo Booting from net ...; + run netargs; + if test ${ip_dyn} = yes; then + setenv get_cmd dhcp; + else + setenv get_cmd tftp; + fi; + ${get_cmd} ${loadaddr} ${image}; + if test ${boot_fit} = yes || test ${boot_fit} = try; then + bootm ${loadaddr}; + else + if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then + booti ${loadaddr} - ${fdt_addr_r}; + else + echo WARN: Cannot load the DT; + fi; + fi; +bsp_bootcmd=echo Running BSP bootcmd ...; + mmc dev ${mmcdev}; + if mmc rescan; then + if run loadimage; then + run mmcboot; + else + run netboot; + fi; + fi; diff --git a/configs/imx8mm_evk_defconfig b/configs/imx8mm_evk_defconfig index 90757100c72..2c583c41571 100644 --- a/configs/imx8mm_evk_defconfig +++ b/configs/imx8mm_evk_defconfig @@ -24,8 +24,9 @@ CONFIG_SPL=y CONFIG_FIT=y CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_SPL_LOAD_FIT=y -CONFIG_DISTRO_DEFAULTS=y CONFIG_OF_SYSTEM_SETUP=y +CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd" +CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb" CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_PBSIZE=2074 CONFIG_BOARD_LATE_INIT=y diff --git a/configs/imx8mm_evk_fspi_defconfig b/configs/imx8mm_evk_fspi_defconfig index fb4a4421cf0..af49b82c74c 100644 --- a/configs/imx8mm_evk_fspi_defconfig +++ b/configs/imx8mm_evk_fspi_defconfig @@ -5,6 +5,7 @@ CONFIG_SYS_MALLOC_LEN=0x2000000 CONFIG_SPL_GPIO=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_ENV_SOURCE_FILE="imx8mn_evk" CONFIG_SF_DEFAULT_SPEED=40000000 CONFIG_SF_DEFAULT_MODE=0 CONFIG_ENV_SIZE=0x1000 @@ -27,8 +28,9 @@ CONFIG_SPL=y CONFIG_FIT=y CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_SPL_LOAD_FIT=y -CONFIG_DISTRO_DEFAULTS=y CONFIG_OF_SYSTEM_SETUP=y +CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd" +CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb" CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_PBSIZE=2074 CONFIG_BOARD_LATE_INIT=y diff --git a/include/configs/imx8mm_evk.h b/include/configs/imx8mm_evk.h index 3bbbd900dd4..957d9c05083 100644 --- a/include/configs/imx8mm_evk.h +++ b/include/configs/imx8mm_evk.h @@ -29,28 +29,6 @@ #endif -#define BOOT_TARGET_DEVICES(func) \ - func(MMC, mmc, 1) \ - func(MMC, mmc, 2) \ - func(DHCP, dhcp, na) - -#include - -/* Initial environment variables */ -#define CFG_EXTRA_ENV_SETTINGS \ - BOOTENV \ - "scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ - "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ - "image=Image\0" \ - "console=ttymxc1,115200\0" \ - "fdt_addr_r=0x43000000\0" \ - "boot_fit=no\0" \ - "fdtfile=imx8mm-evk.dtb\0" \ - "initrd_addr=0x43800000\0" \ - "bootm_size=0x10000000\0" \ - "mmcpart=1\0" \ - "mmcroot=/dev/mmcblk1p2 rootwait rw\0" \ - /* Link Definitions */ #define CFG_SYS_INIT_RAM_ADDR 0x40000000