[U-Boot] [PATCH] arm64: ls1043ardb: Add distro boot support

Shengzhou Liu Shengzhou.Liu at nxp.com
Mon May 22 06:56:03 UTC 2017


Include common config_distro_defaults.h config_distro_bootcmd.h to
for u-boot enviroments to support distro boot which automatically
scan boot.scr from storage devices(e.g. SD/USB/SATA/SCSI disk) and
execute autoboot script.

Tested on ls1043ardb with automatically boot Ubuntu 16.04 from SD
card or USB disk.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu at nxp.com>
---
 configs/ls1043ardb_defconfig        |  1 +
 configs/ls1043ardb_sdcard_defconfig |  1 +
 include/configs/ls1043a_common.h    | 52 +++++++++++++++++++++++++++----------
 3 files changed, 41 insertions(+), 13 deletions(-)

diff --git a/configs/ls1043ardb_defconfig b/configs/ls1043ardb_defconfig
index 894110b..84eadf5 100644
--- a/configs/ls1043ardb_defconfig
+++ b/configs/ls1043ardb_defconfig
@@ -36,3 +36,4 @@ CONFIG_DM_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
+CONFIG_DISTRO_DEFAULTS=y
diff --git a/configs/ls1043ardb_sdcard_defconfig b/configs/ls1043ardb_sdcard_defconfig
index d34a253..211399f 100644
--- a/configs/ls1043ardb_sdcard_defconfig
+++ b/configs/ls1043ardb_sdcard_defconfig
@@ -51,3 +51,4 @@ CONFIG_DM_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
+CONFIG_DISTRO_DEFAULTS=y
diff --git a/include/configs/ls1043a_common.h b/include/configs/ls1043a_common.h
index 2c471fd..4f06678 100644
--- a/include/configs/ls1043a_common.h
+++ b/include/configs/ls1043a_common.h
@@ -263,38 +263,64 @@
 			"5m(kernel),1m(dtb),9m(file_system)"
 #endif
 
+
+
+#include <config_distro_defaults.h>
+#ifndef CONFIG_SPL_BUILD
+#define BOOT_TARGET_DEVICES(func) \
+        func(MMC, mmc, 0) \
+        func(USB, usb, 0)
+#include <config_distro_bootcmd.h>
+#endif
+
+
 /* Initial environment variables */
 #define CONFIG_EXTRA_ENV_SETTINGS		\
 	"hwconfig=fsl_ddr:bank_intlv=auto\0"	\
-	"loadaddr=0x80100000\0"			\
 	"fdt_high=0xffffffffffffffff\0"		\
-	"initrd_high=0xffffffffffffffff\0"	\
-	"kernel_start=0x61100000\0"		\
-	"kernel_load=0xa0000000\0"		\
+	"initrd_high=0xfffffffffffffffn\0"	\
+	"fdt_addr=0x64f00000\0"                 \
+	"kernel_addr=0x65000000\0"		\
+	"scriptaddr=0x80000000\0"               \
+	"fdtheader_addr_r=0x80100000\0"		\
+	"kernelheader_addr_r=0x80200000\0"      \
+	"kernel_addr_r=0x81000000\0"            \
+	"fdt_addr_r=0x90000000\0"		\
+	"ramdisk_addr_r=0xa0000000\0"           \
 	"kernel_size=0x2800000\0"		\
 	"console=ttyS0,115200\0"                \
-	"mtdparts=" MTDPARTS_DEFAULT "\0"
+	"mtdparts=" MTDPARTS_DEFAULT "\0"	\
+	BOOTENV					\
+	"boot_scripts=ls1043ardb_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 $kernel_addr_r "	  \
+	           "/flex_installer_arm64.itb; "	  \
+		   "bootm $kernel_addr_r#ls1043ardb\0"
+
 
 #define CONFIG_BOOTARGS			"console=ttyS0,115200 root=/dev/ram0 " \
 					"earlycon=uart8250,mmio,0x21c0500 "    \
 					MTDPARTS_DEFAULT
 
-#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI)
-#define CONFIG_BOOTCOMMAND		"sf probe && sf read $kernel_load "    \
-					"e0000 f00000 && bootm $kernel_load"
-#else
-#define CONFIG_BOOTCOMMAND		"cp.b $kernel_start $kernel_load "     \
-					"$kernel_size && bootm $kernel_load"
-#endif
+
 #endif
 
+
 /* Monitor Command Prompt */
 #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
 #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
 					sizeof(CONFIG_SYS_PROMPT) + 16)
 #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE /* Boot args buffer */
 #define CONFIG_SYS_LONGHELP
-#define CONFIG_CMDLINE_EDITING		1
 #define CONFIG_AUTO_COMPLETE
 #define CONFIG_SYS_MAXARGS		64	/* max command args */
 
-- 
2.1.0.27.g96db324



More information about the U-Boot mailing list