]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/cpu/armv8/zynqmp/spl.c
Merge branch 'master' of git://git.denx.de/u-boot-video
[u-boot] / arch / arm / cpu / armv8 / zynqmp / spl.c
index 04e190537d15c47e9b976fd1a1fb14c73c9da41c..0a5f4306e8222e56b3e2e8339aa4f8ab790fb536 100644 (file)
@@ -69,12 +69,14 @@ u32 spl_boot_device(void)
 
 #if defined(CONFIG_SPL_ZYNQMP_ALT_BOOTMODE_ENABLED)
        /* Change default boot mode at run-time */
-       writel(BOOT_MODE_USE_ALT |
-              CONFIG_SPL_ZYNQMP_ALT_BOOTMODE << BOOT_MODE_ALT_SHIFT,
+       writel(CONFIG_SPL_ZYNQMP_ALT_BOOTMODE << BOOT_MODE_ALT_SHIFT,
               &crlapb_base->boot_mode);
 #endif
 
        reg = readl(&crlapb_base->boot_mode);
+       if (reg >> BOOT_MODE_ALT_SHIFT)
+               reg >>= BOOT_MODE_ALT_SHIFT;
+
        bootmode = reg & BOOT_MODES_MASK;
 
        switch (bootmode) {
@@ -89,6 +91,10 @@ u32 spl_boot_device(void)
 #ifdef CONFIG_SPL_DFU_SUPPORT
        case USB_MODE:
                return BOOT_DEVICE_DFU;
+#endif
+#ifdef CONFIG_SPL_SATA_SUPPORT
+       case SW_SATA_MODE:
+               return BOOT_DEVICE_SATA;
 #endif
        default:
                printf("Invalid Boot Mode:0x%x\n", bootmode);
@@ -122,6 +128,8 @@ __weak void psu_init(void)
 #ifdef CONFIG_SPL_OS_BOOT
 int spl_start_uboot(void)
 {
+       handoff_setup();
+
        return 0;
 }
 #endif