diff --git a/config/sources/marvell.conf b/config/sources/marvell.conf index b65a6cb9a6..cb254d6f94 100644 --- a/config/sources/marvell.conf +++ b/config/sources/marvell.conf @@ -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 diff --git a/patch/kernel/marvell-default/add-clearfog-base-dts.patch b/patch/kernel/marvell-default/add-clearfog-base-dts.patch index 1025d5a1b7..7a8752cfdb 100644 --- a/patch/kernel/marvell-default/add-clearfog-base-dts.patch +++ b/patch/kernel/marvell-default/add-clearfog-base-dts.patch @@ -113,7 +113,7 @@ index 0000000..63046d4 + reg = <0>; + }; + phy1: ethernet-phy@1 { -+ reg = <999>; ++ reg = <1>; + }; + phy2: ethernet-phy@2 { + reg = <999>; diff --git a/patch/kernel/marvell-next/0088-add-clearfogbase.patch b/patch/kernel/marvell-next/0088-add-clearfogbase.patch index 298fd6ae4a..f197d061a8 100644 --- a/patch/kernel/marvell-next/0088-add-clearfogbase.patch +++ b/patch/kernel/marvell-next/0088-add-clearfogbase.patch @@ -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>; ++ }; ++ }; + }; + }; + diff --git a/patch/u-boot/u-boot-armada/add-spinor-and-sata-targets.patch b/patch/u-boot/u-boot-armada/add-spinor-and-sata-targets.patch new file mode 100644 index 0000000000..f53b18bb85 --- /dev/null +++ b/patch/u-boot/u-boot-armada/add-spinor-and-sata-targets.patch @@ -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 diff --git a/patch/u-boot/u-boot-armada/boot-device-sata.patch.disabled b/patch/u-boot/u-boot-armada/boot-device-sata.patch.disabled new file mode 100644 index 0000000000..db05b52a60 --- /dev/null +++ b/patch/u-boot/u-boot-armada/boot-device-sata.patch.disabled @@ -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 diff --git a/patch/u-boot/u-boot-armada/boot-device-spinor.patch.disabled b/patch/u-boot/u-boot-armada/boot-device-spinor.patch.disabled new file mode 100644 index 0000000000..6efc0ffd0e --- /dev/null +++ b/patch/u-boot/u-boot-armada/boot-device-spinor.patch.disabled @@ -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 diff --git a/patch/u-boot/u-boot-armada/loading-boot.scr.patch b/patch/u-boot/u-boot-armada/loading-boot.scr.patch index 914064bdcb..a222ed8a6d 100644 --- a/patch/u-boot/u-boot-armada/loading-boot.scr.patch +++ b/patch/u-boot/u-boot-armada/loading-boot.scr.patch @@ -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 "