]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/arm/cpu/armv8/zynqmp/spl.c
arm64: zynqmp: Add comment about level shifter mode v1
[people/ms/u-boot.git] / arch / arm / cpu / armv8 / zynqmp / spl.c
index f5f550f9e2b4707de3ecd05bea8ed4013b756afa..26bf80ec52b49d5831d5092eb6531598a44ff8d7 100644 (file)
@@ -83,9 +83,15 @@ u32 spl_boot_device(void)
        case JTAG_MODE:
                return BOOT_DEVICE_RAM;
 #ifdef CONFIG_SPL_MMC_SUPPORT
-       case EMMC_MODE:
-       case SD_MODE:
        case SD_MODE1:
+       case SD1_LSHFT_MODE: /* not working on silicon v1 */
+/* if both controllers enabled, then these two are the second controller */
+#if defined(CONFIG_ZYNQ_SDHCI0) && defined(CONFIG_ZYNQ_SDHCI1)
+               return BOOT_DEVICE_MMC2;
+/* else, fall through, the one SDHCI controller that is enabled is number 1 */
+#endif
+       case SD_MODE:
+       case EMMC_MODE:
                return BOOT_DEVICE_MMC1;
 #endif
 #ifdef CONFIG_SPL_DFU_SUPPORT
@@ -106,10 +112,11 @@ u32 spl_boot_device(void)
 
 u32 spl_boot_mode(const u32 boot_device)
 {
-       switch (spl_boot_device()) {
+       switch (boot_device) {
        case BOOT_DEVICE_RAM:
                return 0;
        case BOOT_DEVICE_MMC1:
+       case BOOT_DEVICE_MMC2:
                return MMCSD_MODE_FS;
        default:
                puts("spl: error: unsupported device\n");
@@ -128,6 +135,8 @@ __weak void psu_init(void)
 #ifdef CONFIG_SPL_OS_BOOT
 int spl_start_uboot(void)
 {
+       handoff_setup();
+
        return 0;
 }
 #endif