]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/cpu/armv8/zynqmp/spl.c
Merge branch 'master' of git://www.denx.de/git/u-boot-microblaze
[u-boot] / arch / arm / cpu / armv8 / zynqmp / spl.c
index 552f577b95d24494046feb2e59a581ff60c01ea9..f5f550f9e2b4707de3ecd05bea8ed4013b756afa 100644 (file)
@@ -37,10 +37,6 @@ void board_init_f(ulong dummy)
 
 static void ps_mode_reset(ulong mode)
 {
-       writel(mode << ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_VAL_SHIFT |
-              mode << ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_EN_SHIFT,
-              &crlapb_base->boot_pin_ctrl);
-       udelay(1);
        writel(mode << ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_EN_SHIFT,
               &crlapb_base->boot_pin_ctrl);
        udelay(5);
@@ -73,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) {
@@ -93,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);