Add proper SPI+USB boot support for Clearfog

USB controller config tested on Base only
Fix u-boot default environment and build options
This commit is contained in:
zador-blood-stained 2017-01-19 15:52:33 +03:00
parent 7ba2e6599e
commit 2b2b934e40
2 changed files with 36 additions and 7 deletions

View File

@ -7,7 +7,7 @@ index 9fd8afe..a867c8d 100755
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 0xFFFFFFFF -E 0xD4013580 -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.bin u-boot.bin u-boot.flash
+ 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.flash
$(obj)u-boot.img: $(obj)u-boot.bin

View File

@ -1,21 +1,50 @@
diff --git a/board/mv_ebu/a38x/mv_main_a38x.c b/board/mv_ebu/a38x/mv_main_a38x.c
index 4b43a9c..fa4aca4 100755
index 4b43a9c..748746e 100755
--- a/board/mv_ebu/a38x/mv_main_a38x.c
+++ b/board/mv_ebu/a38x/mv_main_a38x.c
@@ -679,7 +679,16 @@ void misc_init_r_env(void)
@@ -661,25 +661,31 @@ 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",
+ "ext4load ${boot_interface} 0:1 ${script_addr_r} boot/boot.scr || \
+ ext4load ${boot_interface} 0:1 ${script_addr_r} boot.scr; source ${script_addr_r}");
+ 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",
+#if defined (MV_MMC_BOOT)
+ "echo Trying to load boot.scr from mmc; setenv boot_interface mmc;"
+ "echo Trying to boot from MMC; run mmcboot;"
+#elif defined (MV_SATA_BOOT)
+ "scsi init; echo Trying to load boot.scr from sata; setenv boot_interface scsi;"
+ "echo Trying to boot from SATA; run sataboot;"
+#elif defined (MV_NOR_BOOT)
+ "echo Please store boot environment on NOR SPI flash;"
+ "echo Please store the boot environment on the NOR SPI flash to override the default boot sequence;"
+#endif /* MV_NOR_BOOT */
+ "ext4load ${boot_interface} 0:1 ${script_addr_r} boot/boot.scr;source ${script_addr_r};"
+ "echo Trying to boot from USB; run usbboot;"
+ "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 "