ls1028ardb: Move environment variables to .env file

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@canonical.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
Aristo Chen
2026-07-06 09:58:58 +08:00
committed by Peng Fan
parent 2569e25ddd
commit 8d3963a097
4 changed files with 71 additions and 79 deletions
+49
View File
@@ -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@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
@@ -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
+1
View File
@@ -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
+20 -79
View File
@@ -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@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 */