From: Zhang Ying-22455
Include common config_distro_defaults.h and config_distro_bootcmd.h
for u-boot enviroments to support automatical distro boot which
scan boot.scr from external storage devices(e.g. SD/USB/SATA/SCSI disk)
and execute autoboot script. Tested on ls2088ardb with automatically
boot Ubuntu from SD card or USB disk, if it fails to detect external
storage disk, fall back to nor/qspi boot.
Signed-off-by: Zhang Ying-22455
---
configs/ls2080ardb_defconfig | 1 +
configs/ls2088ardb_qspi_defconfig | 1 +
include/configs/ls2080ardb.h | 93 +++
3 files changed, 47 insertions(+), 48 deletions(-)
diff --git a/configs/ls2080ardb_defconfig b/configs/ls2080ardb_defconfig
index ed79c97..26aca0d 100644
--- a/configs/ls2080ardb_defconfig
+++ b/configs/ls2080ardb_defconfig
@@ -38,3 +38,4 @@ CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_STORAGE=y
CONFIG_EFI_LOADER_BOUNCE_BUFFER=y
+CONFIG_DISTRO_DEFAULTS=y
diff --git a/configs/ls2088ardb_qspi_defconfig
b/configs/ls2088ardb_qspi_defconfig
index 139ff08..37f92a4 100644
--- a/configs/ls2088ardb_qspi_defconfig
+++ b/configs/ls2088ardb_qspi_defconfig
@@ -44,3 +44,4 @@ CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_STORAGE=y
CONFIG_EFI_LOADER_BOUNCE_BUFFER=y
+CONFIG_DISTRO_DEFAULTS=y
diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
index 2dab065..1b4c4b5 100644
--- a/include/configs/ls2080ardb.h
+++ b/include/configs/ls2080ardb.h
@@ -388,70 +388,67 @@ unsigned long get_board_sys_clk(void);
" 0x580e0 \0" \
BOOTENV
#else
-#ifdef CONFIG_QSPI_BOOT
-#define CONFIG_EXTRA_ENV_SETTINGS \
- "hwconfig=fsl_ddr:bank_intlv=auto\0"\
- "scriptaddr=0x8080\0" \
- "kernel_addr_r=0x8100\0"\
- "pxefile_addr_r=0x8100\0" \
- "fdt_addr_r=0x8800\0" \
- "ramdisk_addr_r=0x8900\0" \
- "loadaddr=0x8010\0" \
- "kernel_addr=0x10\0"\
- "ramdisk_size=0x200\0" \
- "fdt_high=0xa000\0" \
- "initrd_high=0x\0" \
- "kernel_start=0x2100\0" \
- "mcmemsize=0x4000\0"\
- "mcinitcmd=fsl_mc start mc 0x20a0" \
- " 0x20e0 \0" \
- BOOTENV
-#else
#define CONFIG_EXTRA_ENV_SETTINGS \
"hwconfig=fsl_ddr:bank_intlv=auto\0"\
- "scriptaddr=0x8080\0" \
- "kernel_addr_r=0x8100\0"\
- "pxefile_addr_r=0x8100\0" \
- "fdt_addr_r=0x8800\0" \
- "ramdisk_addr_r=0x8900\0" \
- "loadaddr=0x8010\0" \
- "kernel_addr=0x10\0"\
"ramdisk_addr=0x80\0" \
"ramdisk_size=0x200\0" \
"fdt_high=0xa000\0" \
"initrd_high=0x\0" \
- "kernel_start=0x58100\0"\
- "kernel_load=0xa000\0" \
+ "fdt_addr=0x64f0\0" \
+ "kernel_addr=0x6500\0" \
+ "scriptaddr=0x8000\0" \
+ "fdtheader_addr_r=0x8010\0" \
+ "kernelheader_addr_r=0x8020\0" \
+ "kernel_addr_r=0x8100\0"\
+ "fdt_addr_r=0x9000\0" \
+ "load_addr=0xa000\0"\
"kernel_size=0x280\0" \
- "mcmemsize=0x4000\0"\
- "fdtfile=fsl-ls2080a-rdb.dtb\0" \
- "mcinitcmd=fsl_mc start mc 0x580a0" \
- " 0x580e0 \0" \
- BOOTENV
-#endif
+ "console=ttyAMA0,38400n8\0" \
+ BOOTENV \
+ "boot_scripts=ls2088ardb_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"\
+ "installer=load mmc 0:2 $load_addr "\
+ "/flex_installer_arm64.itb; " \
+ "bootm $load_addr#ls2088ardb\0" \
+ "qspi_bootcmd=echo Trying load from qspi..;"