From 6df182d492d2162c501abbd1df237484b4a13023 Mon Sep 17 00:00:00 2001 Message-Id: <6df182d492d2162c501abbd1df237484b4a13023.1538711251.git.aditya@kobol.io> From: ubuntu 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 USB; run usbboot;" + "echo Trying to boot from SATA; run sataboot;" + "echo Trying to boot from MMC; run mmcboot;" + "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