Add SATA and SPI NOR boot targets for Clearfog

Adjust Clearfog Base patches
This commit is contained in:
zador-blood-stained 2016-11-29 18:55:11 +03:00
parent dddf228325
commit d1b4d110ab
7 changed files with 137 additions and 7 deletions

View File

@ -10,6 +10,12 @@ UBOOT_COMPILER="arm-linux-gnueabi-"
## for SD/eMMC
UBOOT_TARGET="u-boot.mmc"
UBOOT_FILES="u-boot.mmc u-boot-uart.mmc"
## for M.2 SATA
#UBOOT_TARGET="u-boot.sata"
#UBOOT_FILES="u-boot.sata u-boot-uart.sata"
## for onboard SPI flash (32Mb/4MB)
#UBOOT_TARGET="u-boot.flash"
#UBOOT_FILES="u-boot.flash u-boot-uart.flash"
BOOTENV_FILE='clearfog-default.txt'
HAS_UUID_SUPPORT=yes

View File

@ -113,7 +113,7 @@ index 0000000..63046d4
+ reg = <0>;
+ };
+ phy1: ethernet-phy@1 {
+ reg = <999>;
+ reg = <1>;
+ };
+ phy2: ethernet-phy@2 {
+ reg = <999>;

View File

@ -12,10 +12,10 @@ index faacd52..f5eab46 100644
armada-388-rd.dtb
diff --git a/arch/arm/boot/dts/armada-388-clearfog-base.dts b/arch/arm/boot/dts/armada-388-clearfog-base.dts
new file mode 100644
index 0000000..92c6ddf
index 0000000..a3287c8
--- /dev/null
+++ b/arch/arm/boot/dts/armada-388-clearfog-base.dts
@@ -0,0 +1,357 @@
@@ -0,0 +1,378 @@
+/*
+ * Device Tree file for SolidRun Clearfog revision A1 rev 2.0 (88F6828)
+ *
@ -319,7 +319,28 @@ index 0000000..92c6ddf
+ compatible = "w25q32", "jedec,spi-nor";
+ reg = <0>; /* Chip select 0 */
+ spi-max-frequency = <3000000>;
+ status = "disabled";
+ status = "okay";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x100000>;
+ };
+
+ partition@100000 {
+ label = "env";
+ reg = <0x100000 0x100000>;
+ };
+
+ partition@200000 {
+ label = "data";
+ reg = <0x200000 0x200000>;
+ };
+ };
+ };
+ };
+

View File

@ -0,0 +1,69 @@
diff --git a/Makefile b/Makefile
index 9fd8afe..a867c8d 100755
--- a/Makefile
+++ b/Makefile
@@ -485,6 +485,9 @@ $(obj)u-boot.sata: $(obj)u-boot.bin
echo y | $(obj)tools/marvell/doimage -T sata -D 0x0 -E 0x0 -G $(obj)tools/marvell/bin_hdr/bin_hdr.bin u-boot.bin u-boot.sata
echo y | $(obj)tools/marvell/doimage -T uart -D 0x0 -E 0x0 -G $(obj)tools/marvell/bin_hdr/bin_hdr.uart.bin u-boot.bin u-boot-uart.sata
+$(obj)u-boot.flash: $(obj)u-boot.bin
+ echo y | $(obj)tools/marvell/doimage -T flash -D 0x0 -E 0x0 -G $(obj)tools/marvell/bin_hdr/bin_hdr.bin u-boot.bin u-boot.flash
+ echo y | $(obj)tools/marvell/doimage -T flash -D 0x0 -E 0x0 -G $(obj)tools/marvell/bin_hdr/bin_hdr.uart.bin u-boot.bin u-boot-uart.flash
$(obj)u-boot.img: $(obj)u-boot.bin
$(obj)tools/mkimage -A $(ARCH) -T firmware -C none \
diff --git a/board/mv_ebu/common/USP/cmd_bubt.c b/board/mv_ebu/common/USP/cmd_bubt.c
index 19d5155..aad528d 100755
--- a/board/mv_ebu/common/USP/cmd_bubt.c
+++ b/board/mv_ebu/common/USP/cmd_bubt.c
@@ -381,7 +381,7 @@ int spi_burn_uboot_cmd(cmd_tbl_t *cmdtp, int flag, int loadfrom, int argc, char
#endif
-#if defined(MV_NOR_BOOT) || (MV_INCLUDE_NOR)
+#if defined(MV_NOR_BOOT) || defined(MV_INCLUDE_NOR)
/* Boot from Nor flash */
int nor_burn_uboot_cmd(cmd_tbl_t *cmdtp, int flag, int loadfrom, int argc, char * const argv[])
diff --git a/include/configs/armada_38x.h b/include/configs/armada_38x.h
index 75b8bf5..c71d022 100644
--- a/include/configs/armada_38x.h
+++ b/include/configs/armada_38x.h
@@ -404,6 +404,22 @@ extern int nand_get_env_offs(void);
#define MV_NBOOT_LEN (4 << 10) /* Reserved 4KB for boot strap */
#endif /* MV_NAND_BOOT */
#endif /* MV_NAND */
+
+#if defined(CONFIG_MV_SATA_BOOT)
+#define MV_SATA_BOOT
+#endif
+
+#if defined(MV_SATA_BOOT)
+ #define CONFIG_ENV_IS_IN_MMC
+ #define CONFIG_SYS_MMC_ENV_DEV 0
+ #define CONFIG_ENV_SECT_SIZE 0x200
+ #define CONFIG_ENV_SIZE 0x10000
+ #define CONFIG_ENV_OFFSET 0xf0000
+ #define CONFIG_ENV_ADDR CONFIG_ENV_OFFSET
+ #define MONITOR_HEADER_LEN 0x200
+ #define CONFIG_SYS_MONITOR_BASE 0
+ #define CONFIG_SYS_MONITOR_LEN 0x80000 /*(512 << 10) Reserve 512 kB for Monitor */
+#endif
/*
* Board init
*/
@@ -666,6 +682,14 @@ extern int nand_get_env_offs(void);
#define CONFIG_ENV_RANGE_NOR CONFIG_ENV_SIZE_NOR * 8
#define CONFIG_ENV_ADDR_NOR (NOR_CS_BASE + CONFIG_ENV_OFFSET_NOR)
+#if defined(CONFIG_MV_NOR_BOOT)
+#define MV_NOR_BOOT
+#endif
+
+#if defined(CONFIG_MV_INCLUDE_NOR)
+#define MV_INCLUDE_NOR
+#endif
+
#if defined(MV_INCLUDE_NOR)
#define CONFIG_NOR_FLASH_AUTODETECT

View File

@ -0,0 +1,13 @@
diff --git a/boards.cfg b/boards.cfg
index e1bc6af..14afbf6 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -54,7 +54,7 @@ armada_xp_dbgp arm armv7 axp mv_ebu
armada_38x arm armv7 a38x mv_ebu mvca9 armada_38x:ARMADA_38X
armada_38x_customer0 arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_0,ARMADA_38X
armada_38x_customer1 arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_1,ARMADA_38X
-armada_38x_clearfog arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_1,ARMADA_38X,MV_MMC_BOOT,MV_INCLUDE_SPI,DDR3
+armada_38x_clearfog arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_1,ARMADA_38X,MV_SATA_BOOT,DDR3
armada_39x arm armv7 a38x mv_ebu mvca9 armada_38x:ARMADA_39X
armada_39x_customer0 arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_0,ARMADA_39X
armada_39x_customer1 arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_1,ARMADA_39X

View File

@ -0,0 +1,13 @@
diff --git a/boards.cfg b/boards.cfg
index e1bc6af..a16f0b7 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -54,7 +54,7 @@ armada_xp_dbgp arm armv7 axp mv_ebu
armada_38x arm armv7 a38x mv_ebu mvca9 armada_38x:ARMADA_38X
armada_38x_customer0 arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_0,ARMADA_38X
armada_38x_customer1 arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_1,ARMADA_38X
-armada_38x_clearfog arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_1,ARMADA_38X,MV_MMC_BOOT,MV_INCLUDE_SPI,DDR3
+armada_38x_clearfog arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_1,ARMADA_38X,MV_NOR_BOOT,MV_INCLUDE_NOR,MV_INCLUDE_SPI,DDR3
armada_39x arm armv7 a38x mv_ebu mvca9 armada_38x:ARMADA_39X
armada_39x_customer0 arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_0,ARMADA_39X
armada_39x_customer1 arm armv7 a38x mv_ebu mvca9 armada_38x:CUSTOMER_BOARD_1,ARMADA_39X

View File

@ -1,13 +1,21 @@
diff --git a/board/mv_ebu/a38x/mv_main_a38x.c b/board/mv_ebu/a38x/mv_main_a38x.c
index 4b43a9c..5489685 100755
index 4b43a9c..fa4aca4 100755
--- a/board/mv_ebu/a38x/mv_main_a38x.c
+++ b/board/mv_ebu/a38x/mv_main_a38x.c
@@ -679,7 +679,8 @@ void misc_init_r_env(void)
@@ -679,7 +679,16 @@ void misc_init_r_env(void)
#if (CONFIG_BOOTDELAY >= 0)
env = getenv("bootcmd");
if (!env)
- setenv("bootcmd", "tftpboot 0x2000000 $image_name;tftpboot $fdtaddr $fdtfile;"
+ setenv("bootcmd", "ext4load mmc 0:1 ${script_addr_r} boot/boot.scr;source ${script_addr_r};"
+ setenv("bootcmd",
+#if defined (MV_MMC_BOOT)
+ "echo Trying to load boot.scr from mmc; setenv boot_interface mmc;"
+#elif defined (MV_SATA_BOOT)
+ "scsi init; echo Trying to load boot.scr from sata; setenv boot_interface scsi;"
+#elif defined (MV_NOR_BOOT)
+ "echo Please store boot environment on NOR SPI flash;"
+#endif /* MV_NOR_BOOT */
+ "ext4load ${boot_interface} 0:1 ${script_addr_r} boot/boot.scr;source ${script_addr_r};"
+ "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 "