diff mbox

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

Message ID 1496908788-43193-1-git-send-email-Shengzhou.Liu@nxp.com
State Accepted
Delegated to: York Sun
Headers show

Commit Message

Shengzhou Liu June 8, 2017, 7:59 a.m. UTC
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 ls1043ardb 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: Shengzhou Liu <Shengzhou.Liu@nxp.com>
---
v3: updated to load_addr for installer
v4: fix a typo in initrd_high

 configs/ls1043ardb_defconfig        |  1 +
 configs/ls1043ardb_sdcard_defconfig |  1 +
 include/configs/ls1043a_common.h    | 67 ++++++++++++++++++++++++++++---------
 3 files changed, 54 insertions(+), 15 deletions(-)

Comments

York Sun July 26, 2017, 8:21 p.m. UTC | #1
On 06/08/2017 01:15 AM, Shengzhou Liu wrote:
> 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 ls1043ardb 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: Shengzhou Liu <Shengzhou.Liu@nxp.com>
> ---
> v3: updated to load_addr for installer
> v4: fix a typo in initrd_high
> 

Please rebase your patch. It has conflicts in 
include/configs/ls1043a_common.h. I'd rather not to manually fix it.

York
York Sun July 28, 2017, 4:29 p.m. UTC | #2
On 07/26/2017 01:21 PM, York Sun wrote:
> On 06/08/2017 01:15 AM, Shengzhou Liu wrote:
>> 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 ls1043ardb 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: Shengzhou Liu <Shengzhou.Liu@nxp.com>
>> ---
>> v3: updated to load_addr for installer
>> v4: fix a typo in initrd_high
>>
> 
> Please rebase your patch. It has conflicts in
> include/configs/ls1043a_common.h. I'd rather not to manually fix it.
> 

You didn't respond. I will try to resolve the conflict as much as I can.

York
York Sun Aug. 7, 2017, 7:59 p.m. UTC | #3
On 06/08/2017 01:15 AM, Shengzhou Liu wrote:
> 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 ls1043ardb 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: Shengzhou Liu <Shengzhou.Liu@nxp.com>
> ---
> v3: updated to load_addr for installer
> v4: fix a typo in initrd_high

Applied to fsl-qoriq master. Thanks.

York
diff mbox

Patch

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..e8a756f 100644
--- a/include/configs/ls1043a_common.h
+++ b/include/configs/ls1043a_common.h
@@ -263,38 +263,75 @@ 
 			"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=0xffffffffffffffff\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"		\
+	"load_addr=0xa0000000\0"	   \
 	"kernel_size=0x2800000\0"		\
-	"console=ttyS0,115200\0"                \
-	"mtdparts=" MTDPARTS_DEFAULT "\0"
+	"console=ttyS0,115200\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 $load_addr "	  \
+		   "/flex_installer_arm64.itb; "	  \
+		   "bootm $load_addr#ls1043ardb\0"	  \
+	"qspi_bootcmd=echo Trying load from qspi..;"	  \
+		"sf probe && sf read $load_addr "	  \
+		"$kernel_addr $kernel_size && bootm $load_addr#$board\0" \
+	"nor_bootcmd=echo Trying load from nor..;"	  \
+		"cp.b $kernel_addr $load_addr "	  \
+		"$kernel_size && bootm $load_addr#$board\0"
+
+
+#undef CONFIG_BOOTCOMMAND
+#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI)
+#define CONFIG_BOOTCOMMAND "run distro_bootcmd;run qspi_bootcmd"
+#else
+#define CONFIG_BOOTCOMMAND "run distro_bootcmd;run nor_bootcmd"
+#endif
 
 #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 */