kobol-wiki/docs/files/software/u-boot-armbian-boot-script-support.patch
2018-10-05 11:55:13 +08:00

108 lines
3.7 KiB
Diff

From 6df182d492d2162c501abbd1df237484b4a13023 Mon Sep 17 00:00:00 2001
Message-Id: <6df182d492d2162c501abbd1df237484b4a13023.1538711251.git.aditya@kobol.io>
From: ubuntu <aditya@kobol.io>
Date: Fri, 28 Sep 2018 17:34:33 +0800
Subject: [PATCH] armbian boot script support
---
board/mv_ebu/a38x/mv_main_a38x.c | 37 ++++++++++++++++++++++---------------
common/cmd_fs.c | 2 +-
include/configs/armada_38x.h | 3 +--
3 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/board/mv_ebu/a38x/mv_main_a38x.c b/board/mv_ebu/a38x/mv_main_a38x.c
index 0dce7f6..137dd58 100755
--- a/board/mv_ebu/a38x/mv_main_a38x.c
+++ b/board/mv_ebu/a38x/mv_main_a38x.c
@@ -331,6 +331,10 @@ void misc_init_r_env(void)
if (!env)
setenv("console", "console=ttyS0,115200");
+ env = getenv("fdtfile");
+ if (!env)
+ setenv("fdtfile", "armada-388-helios4.dtb");
+
env = getenv("mtdids");
if (!env) {
#if defined(MV_NAND) && defined(MV_INCLUDE_SPI)
@@ -679,25 +683,28 @@ void misc_init_r_env(void)
setenv("enaLPAE", "no");
#endif
- /* Flatten Device Tree environment setup */
-#ifdef CONFIG_CUSTOMER_BOARD_SUPPORT
- #ifdef CONFIG_ARMADA_38X
- fdt_env_setup("armada-38x.dtb", MV_FALSE); /* static setup: Skip DT update for customer */
- #else
- fdt_env_setup("armada-39x.dtb", MV_FALSE);
- #endif
-#else
- #ifdef CONFIG_ARMADA_38X
- fdt_env_setup("armada-38x-modular.dtb", MV_TRUE); /* dynamic setup: run DT update */
- #else
- fdt_env_setup("armada-39x.dtb", MV_FALSE); /* static setup: Skip DT update */
- #endif
-#endif
+ setenv("fdt_skip_update", "yes");
+ setenv("boot_a_script",
+ "for prefix in /boot/ /; do \
+ load ${boot_interface} 0:1 ${script_addr_r} ${prefix}boot.scr && \
+ source ${script_addr_r}; \
+ done");
+ setenv("mmcboot",
+ "setenv boot_interface mmc; run boot_a_script;");
+ setenv("sataboot",
+ "scsi init; setenv boot_interface scsi; run boot_a_script;");
+ setenv("usbboot",
+ "setenv usbActive 1; setenv usbType 3; usb start; setenv boot_interface usb; run boot_a_script;");
#if (CONFIG_BOOTDELAY >= 0)
env = getenv("bootcmd");
if (!env)
- setenv("bootcmd", "tftpboot 0x2000000 $image_name;tftpboot $fdtaddr $fdtfile;"
+ setenv("bootcmd",
+ "echo Trying to boot from MMC; run mmcboot;"
+ "echo Trying to boot from USB; run usbboot;"
+ "echo Trying to boot from SATA; run sataboot;"
+ "echo Default boot sequence failed - falling back to TFTP;"
+ "tftpboot 0x2000000 $image_name;tftpboot $fdtaddr $fdtfile;"
"setenv bootargs $console $nandEcc $mtdparts $bootargs_root nfsroot=$serverip:$rootpath "
"ip=$ipaddr:$serverip$bootargs_end $mvNetConfig video=dovefb:lcd0:$lcd0_params "
"clcd.lcd0_enable=$lcd0_enable clcd.lcd_panel=$lcd_panel; bootz 0x2000000 - $fdtaddr;");
diff --git a/common/cmd_fs.c b/common/cmd_fs.c
index a681d03..9cc5013 100644
--- a/common/cmd_fs.c
+++ b/common/cmd_fs.c
@@ -22,7 +22,7 @@
int do_load_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
- return do_load(cmdtp, flag, argc, argv, FS_TYPE_ANY, 0);
+ return do_load(cmdtp, flag, argc, argv, FS_TYPE_ANY, 16);
}
U_BOOT_CMD(
diff --git a/include/configs/armada_38x.h b/include/configs/armada_38x.h
index c57353f..746c843 100644
--- a/include/configs/armada_38x.h
+++ b/include/configs/armada_38x.h
@@ -164,7 +164,7 @@ extern unsigned int mvUartPortGet(void);
#define CONFIG_CMD_RCVR
#define CONFIG_CMD_BOOT_MENU
#define CONFIG_CMD_SYS_RESTORE
-
+#define CONFIG_CMD_FS_GENERIC
/* Open this define for enabling Secure Boot Mode eFuses modification
#define CONFIG_CMD_EFUSE
@@ -207,7 +207,6 @@ extern unsigned int mvUartPortGet(void);
#define CONFIG_FS_EXT4
#define CONFIG_CMD_EXT4_WRITE
#define CONFIG_EXT4_WRITE
-#define CONFIG_CMD_JFFS2
#define CONFIG_CMD_FAT
#define CONFIG_FS_FAT
#define CONFIG_SUPPORT_VFAT
--
2.7.4