[PATCH v1 1/1] ls1028ardb: Move environment variables to .env file

Aristo Chen aristo.chen at canonical.com
Wed Jul 1 08:21:25 CEST 2026


Move the bulk of the board environment from CFG_EXTRA_ENV_SETTINGS in
ls1028ardb.h to board/nxp/ls1028a/ls1028ardb.env. Because the board
directory is shared with ls1028aqds, the file is selected through
CONFIG_ENV_SOURCE_FILE rather than the SYS_BOARD default.

The distro_bootcmd machinery cannot be expressed in a .env file. The
BOOTENV macro expands to environment text with embedded NUL separators,
and the board overrides three distro variables (boot_scripts,
boot_a_script and scan_dev_for_boot_part) that must follow BOOTENV to
take effect. BOOTENV and those three overrides therefore remain in
CFG_EXTRA_ENV_SETTINGS, which is concatenated after the .env text, while
every other variable moves to the .env file.

The resulting default environment is functionally unchanged for both the
ls1028ardb_tfa and ls1028ardb_tfa_SECURE_BOOT defconfigs. This was
verified with an order aware comparison of the default environment before
and after the change. The only difference is that three accidental double
spaces in xspi_bootcmd, sd_bootcmd and emmc_bootcmd collapse to single
spaces, because the preprocessor normalises whitespace in the now
unquoted text, which does not affect command parsing.

Signed-off-by: Aristo Chen <aristo.chen at canonical.com>
---
 board/nxp/ls1028a/ls1028ardb.env             | 49 ++++++++++
 configs/ls1028ardb_tfa_SECURE_BOOT_defconfig |  1 +
 configs/ls1028ardb_tfa_defconfig             |  1 +
 include/configs/ls1028ardb.h                 | 99 ++++----------------
 4 files changed, 71 insertions(+), 79 deletions(-)
 create mode 100644 board/nxp/ls1028a/ls1028ardb.env

diff --git a/board/nxp/ls1028a/ls1028ardb.env b/board/nxp/ls1028a/ls1028ardb.env
new file mode 100644
index 00000000000..dc1cb01e50a
--- /dev/null
+++ b/board/nxp/ls1028a/ls1028ardb.env
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+board=ls1028ardb
+hwconfig=fsl_ddr:bank_intlv=auto
+fdtfile=fsl-ls1028a-rdb.dtb
+image=Image
+extra_bootargs=iommu.passthrough=1 arm-smmu.disable_bypass=0
+othbootargs=video=1920x1080-32 at 60 cma=640M
+ramdisk_addr=0x800000
+ramdisk_size=0x2000000
+bootm_size=0x10000000
+kernel_addr=0x01000000
+scriptaddr=0x80000000
+scripthdraddr=0x80080000
+fdtheader_addr_r=0x80100000
+kernelheader_addr_r=0x80200000
+load_addr=0xa0000000
+kernel_addr_r=0x81000000
+fdt_addr_r=0x90000000
+ramdisk_addr_r=0xa0000000
+kernel_start=0x1000000
+kernelheader_start=0x600000
+kernel_load=0xa0000000
+kernel_size=0x2800000
+kernelheader_size=0x40000
+kernel_addr_sd=0x8000
+kernel_size_sd=0x14000
+kernelhdr_addr_sd=0x3000
+kernelhdr_size_sd=0x20
+console=ttyS0,115200
+console_dbg=earlycon=uart8250,mmio,0x21c0500
+boot_script_hdr=hdr_ls1028ardb_bs.out
+xspi_bootcmd=echo Trying load from FlexSPI flash ...;sf probe 0:0 && sf read $load_addr
+	$kernel_start $kernel_size ; env exists secureboot &&sf read $kernelheader_addr_r
+	$kernelheader_start $kernelheader_size && esbc_validate ${kernelheader_addr_r}; bootm
+	$load_addr#$board
+xspi_hdploadcmd=echo Trying load HDP firmware from FlexSPI...;sf probe 0:0 && sf read
+	$load_addr 0x940000 0x30000 && hdp load $load_addr 0x2000
+sd_bootcmd=echo Trying load from SD ...;mmc dev 0;mmcinfo; mmc read $load_addr $kernel_addr_sd
+	$kernel_size_sd && env exists secureboot && mmc read $kernelheader_addr_r $kernelhdr_addr_sd
+	$kernelhdr_size_sd && esbc_validate ${kernelheader_addr_r};bootm $load_addr#$board
+sd_hdploadcmd=echo Trying load HDP firmware from SD..;mmc dev 0;mmcinfo;mmc read $load_addr
+	0x4a00 0x200 && hdp load $load_addr 0x2000
+emmc_bootcmd=echo Trying load from EMMC ..;mmc dev 1;mmcinfo; mmc read $load_addr
+	$kernel_addr_sd $kernel_size_sd && env exists secureboot && mmc read $kernelheader_addr_r
+	$kernelhdr_addr_sd $kernelhdr_size_sd && esbc_validate ${kernelheader_addr_r};bootm
+	$load_addr#$board
+emmc_hdploadcmd=echo Trying load HDP firmware from EMMC..;mmc dev 1;mmcinfo;mmc read $load_addr
+	0x4a00 0x200 && hdp load $load_addr 0x2000
diff --git a/configs/ls1028ardb_tfa_SECURE_BOOT_defconfig b/configs/ls1028ardb_tfa_SECURE_BOOT_defconfig
index 6917fe7783b..a8c7c89c9d3 100644
--- a/configs/ls1028ardb_tfa_SECURE_BOOT_defconfig
+++ b/configs/ls1028ardb_tfa_SECURE_BOOT_defconfig
@@ -6,6 +6,7 @@ CONFIG_TARGET_LS1028ARDB=y
 CONFIG_TFABOOT=y
 CONFIG_SYS_MALLOC_LEN=0x202000
 CONFIG_SYS_MALLOC_F_LEN=0x6000
+CONFIG_ENV_SOURCE_FILE="ls1028ardb"
 CONFIG_NR_DRAM_BANKS=2
 CONFIG_ENV_SIZE=0x2000
 CONFIG_DM_GPIO=y
diff --git a/configs/ls1028ardb_tfa_defconfig b/configs/ls1028ardb_tfa_defconfig
index f1c13afbb2e..ca19d6035ee 100644
--- a/configs/ls1028ardb_tfa_defconfig
+++ b/configs/ls1028ardb_tfa_defconfig
@@ -6,6 +6,7 @@ CONFIG_TARGET_LS1028ARDB=y
 CONFIG_TFABOOT=y
 CONFIG_SYS_MALLOC_LEN=0x202000
 CONFIG_SYS_MALLOC_F_LEN=0x6000
+CONFIG_ENV_SOURCE_FILE="ls1028ardb"
 CONFIG_NR_DRAM_BANKS=2
 CONFIG_ENV_SIZE=0x2000
 CONFIG_ENV_OFFSET=0x500000
diff --git a/include/configs/ls1028ardb.h b/include/configs/ls1028ardb.h
index 613abc50567..1811825baeb 100644
--- a/include/configs/ls1028ardb.h
+++ b/include/configs/ls1028ardb.h
@@ -50,85 +50,26 @@
 /* Initial environment variables */
 #ifndef SPL_NO_ENV
 #undef CFG_EXTRA_ENV_SETTINGS
-#define CFG_EXTRA_ENV_SETTINGS		\
-	"board=ls1028ardb\0"			\
-	"hwconfig=fsl_ddr:bank_intlv=auto\0"	\
-	"fdtfile=fsl-ls1028a-rdb.dtb\0"         \
-	"image=Image\0"					\
-	"extra_bootargs=iommu.passthrough=1 arm-smmu.disable_bypass=0\0"	\
-	"othbootargs=video=1920x1080-32 at 60 cma=640M\0"    \
-	"ramdisk_addr=0x800000\0"		\
-	"ramdisk_size=0x2000000\0"		\
-	"bootm_size=0x10000000\0"		\
-	"kernel_addr=0x01000000\0"              \
-	"scriptaddr=0x80000000\0"               \
-	"scripthdraddr=0x80080000\0"		\
-	"fdtheader_addr_r=0x80100000\0"         \
-	"kernelheader_addr_r=0x80200000\0"      \
-	"load_addr=0xa0000000\0"            \
-	"kernel_addr_r=0x81000000\0"            \
-	"fdt_addr_r=0x90000000\0"               \
-	"ramdisk_addr_r=0xa0000000\0"           \
-	"kernel_start=0x1000000\0"		\
-	"kernelheader_start=0x600000\0"		\
-	"kernel_load=0xa0000000\0"		\
-	"kernel_size=0x2800000\0"		\
-	"kernelheader_size=0x40000\0"		\
-	"kernel_addr_sd=0x8000\0"		\
-	"kernel_size_sd=0x14000\0"		\
-	"kernelhdr_addr_sd=0x3000\0"		\
-	"kernelhdr_size_sd=0x20\0"		\
-	"console=ttyS0,115200\0"                \
-	"console_dbg=earlycon=uart8250,mmio,0x21c0500\0"		\
-	BOOTENV					\
-	"boot_scripts=ls1028ardb_boot.scr\0"    \
-	"boot_script_hdr=hdr_ls1028ardb_bs.out\0"	\
-	"scan_dev_for_boot_part="               \
-		"part list ${devtype} ${devnum} devplist; "   \
-		"env exists devplist || setenv devplist 1; "  \
-		"for distro_bootpart in ${devplist}; do "     \
-		  "if fstype ${devtype} "                  \
-			"${devnum}:${distro_bootpart} "      \
-			"bootfstype; then "                  \
-			"run scan_dev_for_boot; "            \
-		  "fi; "                                   \
-		"done\0"                                   \
-	"boot_a_script="				  \
-		"load ${devtype} ${devnum}:${distro_bootpart} "  \
-			"${scriptaddr} ${prefix}${script}; "    \
-		"env exists secureboot && load ${devtype} "     \
-			"${devnum}:${distro_bootpart} "		\
+#define CFG_EXTRA_ENV_SETTINGS \
+	BOOTENV \
+	"boot_scripts=ls1028ardb_boot.scr\0" \
+	"scan_dev_for_boot_part=" \
+		"part list ${devtype} ${devnum} devplist; " \
+		"env exists devplist || setenv devplist 1; " \
+		"for distro_bootpart in ${devplist}; do " \
+		  "if fstype ${devtype} " \
+			"${devnum}:${distro_bootpart} " \
+			"bootfstype; then " \
+			"run scan_dev_for_boot; " \
+		  "fi; " \
+		"done\0" \
+	"boot_a_script=" \
+		"load ${devtype} ${devnum}:${distro_bootpart} " \
+			"${scriptaddr} ${prefix}${script}; " \
+		"env exists secureboot && load ${devtype} " \
+			"${devnum}:${distro_bootpart} " \
 			"${scripthdraddr} ${prefix}${boot_script_hdr} " \
-			"&& esbc_validate ${scripthdraddr};"    \
-		"source ${scriptaddr}\0"	  \
-	"xspi_bootcmd=echo Trying load from FlexSPI flash ...;" \
-		"sf probe 0:0 && sf read $load_addr " \
-		"$kernel_start $kernel_size ; env exists secureboot &&" \
-		"sf read $kernelheader_addr_r $kernelheader_start " \
-		"$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\
-		" bootm $load_addr#$board\0" \
-	"xspi_hdploadcmd=echo Trying load HDP firmware from FlexSPI...;" \
-		"sf probe 0:0 && sf read $load_addr 0x940000 0x30000 " \
-		"&& hdp load $load_addr 0x2000\0"			\
-	"sd_bootcmd=echo Trying load from SD ...;" \
-		"mmc dev 0;mmcinfo; mmc read $load_addr "		\
-		"$kernel_addr_sd $kernel_size_sd && "	\
-		"env exists secureboot && mmc read $kernelheader_addr_r " \
-		"$kernelhdr_addr_sd $kernelhdr_size_sd "		\
-		" && esbc_validate ${kernelheader_addr_r};"	\
-		"bootm $load_addr#$board\0"		\
-	"sd_hdploadcmd=echo Trying load HDP firmware from SD..;"	\
-		"mmc dev 0;mmcinfo;mmc read $load_addr 0x4a00 0x200 "	\
-		"&& hdp load $load_addr 0x2000\0"	\
-	"emmc_bootcmd=echo Trying load from EMMC ..;"	\
-		"mmc dev 1;mmcinfo; mmc read $load_addr "		\
-		"$kernel_addr_sd $kernel_size_sd && "	\
-		"env exists secureboot && mmc read $kernelheader_addr_r " \
-		"$kernelhdr_addr_sd $kernelhdr_size_sd "		\
-		" && esbc_validate ${kernelheader_addr_r};"	\
-		"bootm $load_addr#$board\0"			\
-	"emmc_hdploadcmd=echo Trying load HDP firmware from EMMC..;"      \
-		"mmc dev 1;mmcinfo;mmc read $load_addr 0x4a00 0x200 "	\
-		"&& hdp load $load_addr 0x2000\0"
+			"&& esbc_validate ${scripthdraddr};" \
+		"source ${scriptaddr}\0"
 #endif
 #endif /* __LS1028A_RDB_H */
-- 
2.43.0



More information about the U-Boot mailing list