[PATCH] board: phytec: migrate imx8mm boards to standard boot

Yannic Moog y.moog at phytec.de
Tue Jul 22 14:44:22 CEST 2025


remove boot logic from shared env file for phyboard-polis and
phygate-tauri.
Adjust configs for both boards as well.
Space at the beginning of addressable RAM is reserved for space used via
standard boot env variables. CONFIG_SYS_LOAD_ADDR is set to the lowest
address behind the standard boot variables reserved space.

Signed-off-by: Yannic Moog <y.moog at phytec.de>
---
phyGATE-Tauri and phyBOARD-Polis both have boot logic in the U-Boot
environment. Remove that logic and let the respective distro handle the
boot logic with standard boot.

both boards can boot from mmc devices, ethernet and USB.

With the migration to standard boot, addresses for kernel, dtb etc. changes.
Reserve space for blobs before loadaddr and put OP-TEE at the end of RAM
(for lowest RAM size variant; 1GiB for imx8mm-polis and 2GiB for
imx8mm-tauri).
---
 board/phytec/phycore_imx8mm/phycore_imx8mm.env | 72 ++++----------------------
 configs/imx8mm-phygate-tauri-l_defconfig       | 15 ++----
 configs/phycore-imx8mm_defconfig               | 14 ++---
 3 files changed, 18 insertions(+), 83 deletions(-)

diff --git a/board/phytec/phycore_imx8mm/phycore_imx8mm.env b/board/phytec/phycore_imx8mm/phycore_imx8mm.env
index 402d967ab7d58ad206c1b6c03d6f039a77ddef8b..b3f0915432829219e0d6e0d89b1003d789988db4 100644
--- a/board/phytec/phycore_imx8mm/phycore_imx8mm.env
+++ b/board/phytec/phycore_imx8mm/phycore_imx8mm.env
@@ -1,65 +1,15 @@
-#include <env/phytec/rauc.env>
-
-bootcmd=
-	mmc dev ${mmcdev};
-	if mmc rescan; then
-		if test ${doraucboot} = 1; then
-			run raucinit;
-		fi;
-		if run loadimage; then
-			run mmcboot;
-		else
-			run netboot;
-		fi;
-	fi;
-console=ttymxc2,115200
+console=ttymxc2,CONFIG_BAUDRATE
 emmc_dev=2
-fdt_addr_r=0x48000000
 fdtfile=CONFIG_DEFAULT_FDT_FILE
-image=Image
+fdt_addr_r=0x40480000
+fdt_overlay_addr_r=0x404a0000
+kernel_addr_r=0x40a00000
+kernel_comp_addr_r=0x43a00000
+kernel_comp_size=0x1e00000
+pxefile_addr_r=0x45800000
+ramdisk_addr_r=0x45802000
+scriptaddr=0x47600000
+script_offset_f=0x0
+script_size_f=0x2000
 ip_dyn=yes
-loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
-loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
-mmcargs=
-	setenv bootargs console=${console}
-	root=/dev/mmcblk${mmcdev}p${mmcroot} ${raucargs} rootwait rw
-mmcautodetect=yes
-mmcboot=
-	echo Booting from mmc ...;
-	run mmcargs;
-	if run loadfdt; then
-		if test ${dofitboot} = 1; then
-			booti ${loadaddr} - ${fdt_addr_r}
-		else
-			echo WARN: Cannot load the DT;
-		fi;
-	fi;
-mmcdev=CONFIG_ENV_MMC_DEVICE_INDEX
-mmcpart=1
-mmcroot=2
-netargs=
-	setenv bootargs console=${console} root=/dev/nfs ip=dhcp
-	nfsroot=${serverip}:${nfsroot},v3,tcp
-netboot=
-	echo Booting from net ...;
-	if test ${ip_dyn} = yes; then
-		setenv get_cmd dhcp;
-	else
-		setenv get_cmd tftp;
-	fi;
-	${get_cmd} ${loadaddr} ${image};
-	run netargs;
-	if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then
-		booti ${loadaddr} - ${fdt_addr_r};
-	else
-		echo WARN: Cannot load the DT;
-	fi;
 nfsroot=/srv/nfs
-update_bootimg=
-	mmc dev ${mmcdev};
-	if dhcp ${loadaddr} ${update_filepath}/${update_filename}; then
-		setexpr fw_sz ${filesize} / 0x200;
-		mmc write ${loadaddr} ${update_offset} ${fw_sz};
-	fi;
-update_filename=flash.bin
-update_offset=0x42
diff --git a/configs/imx8mm-phygate-tauri-l_defconfig b/configs/imx8mm-phygate-tauri-l_defconfig
index 7c8a2060b1a8a658eb94e57223775e709d0d848e..7369c0a05ac98315682127f0e96af7d36c4763d2 100644
--- a/configs/imx8mm-phygate-tauri-l_defconfig
+++ b/configs/imx8mm-phygate-tauri-l_defconfig
@@ -9,7 +9,6 @@ CONFIG_ENV_SIZE=0x10000
 CONFIG_ENV_OFFSET=0x3C0000
 CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mm-phygate-tauri-l"
-CONFIG_IMX8M_OPTEE_LOAD_ADDR=0x56000000
 CONFIG_TARGET_PHYCORE_IMX8MM=y
 CONFIG_SYS_MONITOR_LEN=524288
 CONFIG_SPL_MMC=y
@@ -20,16 +19,15 @@ CONFIG_SPL_TEXT_BASE=0x7E1000
 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
 CONFIG_SPL_BSS_START_ADDR=0x910000
 CONFIG_SPL_BSS_MAX_SIZE=0x2000
-CONFIG_SYS_LOAD_ADDR=0x40480000
+CONFIG_SYS_LOAD_ADDR=0x47602000
 CONFIG_SPL=y
 CONFIG_ENV_OFFSET_REDUND=0x3E0000
 CONFIG_FIT=y
 CONFIG_FIT_EXTERNAL_OFFSET=0x3000
 CONFIG_SPL_LOAD_FIT=y
+CONFIG_BOOTSTD_FULL=y
 CONFIG_OF_SYSTEM_SETUP=y
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="mmc dev ${mmcdev}; if mmc rescan; then if run loadimage; then run mmcboot; else run netboot; fi; fi;"
-CONFIG_DEFAULT_FDT_FILE="oftree"
+CONFIG_DEFAULT_FDT_FILE="imx8mm-phygate-tauri-l"
 CONFIG_SYS_CBSIZE=2048
 CONFIG_SYS_PBSIZE=2074
 CONFIG_BOARD_LATE_INIT=y
@@ -44,7 +42,6 @@ CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300
 CONFIG_SPL_I2C=y
 CONFIG_SPL_POWER=y
 CONFIG_SPL_WATCHDOG=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="u-boot=> "
 # CONFIG_CMD_EXPORTENV is not set
 # CONFIG_CMD_IMPORTENV is not set
@@ -60,15 +57,9 @@ CONFIG_CMD_FUSE=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_REGULATOR=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
 CONFIG_OF_CONTROL=y
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
diff --git a/configs/phycore-imx8mm_defconfig b/configs/phycore-imx8mm_defconfig
index 96eacec1d2309a20184236f9c84beb1e4cd01f27..4d6bce26f07f7b90e7c3674f4b9ddcac8d775e1d 100644
--- a/configs/phycore-imx8mm_defconfig
+++ b/configs/phycore-imx8mm_defconfig
@@ -11,7 +11,7 @@ CONFIG_ENV_SIZE=0x10000
 CONFIG_ENV_OFFSET=0x3C0000
 CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mm-phyboard-polis-rdk"
-CONFIG_IMX8M_OPTEE_LOAD_ADDR=0x56000000
+CONFIG_IMX8M_OPTEE_LOAD_ADDR=0x7e000000
 CONFIG_TARGET_PHYCORE_IMX8MM=y
 CONFIG_DM_RESET=y
 CONFIG_SYS_MONITOR_LEN=524288
@@ -23,7 +23,7 @@ CONFIG_SPL_TEXT_BASE=0x7E1000
 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
 CONFIG_SPL_BSS_START_ADDR=0x910000
 CONFIG_SPL_BSS_MAX_SIZE=0x2000
-CONFIG_SYS_LOAD_ADDR=0x40480000
+CONFIG_SYS_LOAD_ADDR=0x47602000
 CONFIG_SF_DEFAULT_BUS=3
 CONFIG_SPL=y
 CONFIG_ENV_OFFSET_REDUND=0x3E0000
@@ -31,8 +31,9 @@ CONFIG_PCI=y
 CONFIG_FIT=y
 CONFIG_FIT_EXTERNAL_OFFSET=0x3000
 CONFIG_SPL_LOAD_FIT=y
+CONFIG_BOOTSTD_FULL=y
 CONFIG_OF_SYSTEM_SETUP=y
-CONFIG_DEFAULT_FDT_FILE="oftree"
+CONFIG_DEFAULT_FDT_FILE="imx8mm-phyboard-polis-rdk"
 CONFIG_SYS_CBSIZE=2048
 CONFIG_SYS_PBSIZE=2074
 CONFIG_BOARD_LATE_INIT=y
@@ -48,7 +49,6 @@ CONFIG_SPL_I2C=y
 CONFIG_SPL_POWER=y
 CONFIG_SPL_SPI_FLASH_MTD=y
 CONFIG_SPL_WATCHDOG=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="u-boot=> "
 # CONFIG_CMD_EXPORTENV is not set
 # CONFIG_CMD_IMPORTENV is not set
@@ -66,15 +66,9 @@ CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_PCI=y
 CONFIG_CMD_SF_TEST=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_REGULATOR=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
 CONFIG_OF_CONTROL=y
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y

---
base-commit: 2f18139ff221d9a9edd0687517a47aa2280f6c94
change-id: 20250718-phytec-mx8mm-standardboot-c3953ea9c472

Best regards,
-- 
Yannic Moog <y.moog at phytec.de>



More information about the U-Boot mailing list