]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/mach-uniphier/boot-mode/boot-mode.c
common: Pass the boot device into spl_boot_mode()
[u-boot] / arch / arm / mach-uniphier / boot-mode / boot-mode.c
index cf39bf57e9201b01af56dc5ff2f97bc0e7e4b148..1d531402d5e429cf4d0b9106c57aefbc0683cb63 100644 (file)
@@ -19,27 +19,30 @@ u32 spl_boot_device_raw(void)
                return BOOT_DEVICE_NOR;
 
        switch (uniphier_get_soc_type()) {
-#if defined(CONFIG_ARCH_UNIPHIER_PH1_SLD3)
-       case SOC_UNIPHIER_PH1_SLD3:
-               return ph1_sld3_boot_device();
+#if defined(CONFIG_ARCH_UNIPHIER_SLD3)
+       case SOC_UNIPHIER_SLD3:
+               return uniphier_sld3_boot_device();
 #endif
-#if defined(CONFIG_ARCH_UNIPHIER_PH1_LD4) || \
-       defined(CONFIG_ARCH_UNIPHIER_PH1_PRO4) || \
-       defined(CONFIG_ARCH_UNIPHIER_PH1_SLD8)
-       case SOC_UNIPHIER_PH1_LD4:
-       case SOC_UNIPHIER_PH1_PRO4:
-       case SOC_UNIPHIER_PH1_SLD8:
-               return ph1_ld4_boot_device();
+#if defined(CONFIG_ARCH_UNIPHIER_LD4) || defined(CONFIG_ARCH_UNIPHIER_PRO4) || \
+       defined(CONFIG_ARCH_UNIPHIER_SLD8)
+       case SOC_UNIPHIER_LD4:
+       case SOC_UNIPHIER_PRO4:
+       case SOC_UNIPHIER_SLD8:
+               return uniphier_ld4_boot_device();
 #endif
-#if defined(CONFIG_ARCH_UNIPHIER_PH1_PRO5)
-       case SOC_UNIPHIER_PH1_PRO5:
-               return ph1_pro5_boot_device();
+#if defined(CONFIG_ARCH_UNIPHIER_PRO5)
+       case SOC_UNIPHIER_PRO5:
+               return uniphier_pro5_boot_device();
 #endif
-#if defined(CONFIG_ARCH_UNIPHIER_PROXSTREAM2) || \
-       defined(CONFIG_ARCH_UNIPHIER_PH1_LD6B)
-       case SOC_UNIPHIER_PROXSTREAM2:
-       case SOC_UNIPHIER_PH1_LD6B:
-               return proxstream2_boot_device();
+#if defined(CONFIG_ARCH_UNIPHIER_PXS2) || defined(CONFIG_ARCH_UNIPHIER_LD6B)
+       case SOC_UNIPHIER_PXS2:
+       case SOC_UNIPHIER_LD6B:
+               return uniphier_pxs2_boot_device();
+#endif
+#if defined(CONFIG_ARCH_UNIPHIER_LD11) || defined(CONFIG_ARCH_UNIPHIER_LD20)
+       case SOC_UNIPHIER_LD11:
+       case SOC_UNIPHIER_LD20:
+               return uniphier_ld20_boot_device();
 #endif
        default:
                return BOOT_DEVICE_NONE;
@@ -48,14 +51,33 @@ u32 spl_boot_device_raw(void)
 
 u32 spl_boot_device(void)
 {
-       u32 ret;
+       u32 mode;
+
+       mode = spl_boot_device_raw();
 
-       ret = spl_boot_device_raw();
+       switch (uniphier_get_soc_type()) {
+#if defined(CONFIG_ARCH_UNIPHIER_PXS2) || defined(CONFIG_ARCH_UNIPHIER_LD6B)
+       case SOC_UNIPHIER_PXS2:
+       case SOC_UNIPHIER_LD6B:
+               if (mode == BOOT_DEVICE_USB)
+                       mode = BOOT_DEVICE_NOR;
+               break;
+#endif
+#if defined(CONFIG_ARCH_UNIPHIER_LD11) || defined(CONFIG_ARCH_UNIPHIER_LD20)
+       case SOC_UNIPHIER_LD11:
+       case SOC_UNIPHIER_LD20:
+               if (mode == BOOT_DEVICE_MMC1 || mode == BOOT_DEVICE_USB)
+                       mode = BOOT_DEVICE_BOARD;
+               break;
+#endif
+       default:
+               break;
+       }
 
-       return ret == BOOT_DEVICE_USB ? BOOT_DEVICE_NOR : ret;
+       return mode;
 }
 
-u32 spl_boot_mode(void)
+u32 spl_boot_mode(const u32 boot_device)
 {
        struct mmc *mmc;
 
@@ -112,7 +134,7 @@ static int do_mmcsetn(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 U_BOOT_CMD(
           mmcsetn,     1,      1,      do_mmcsetn,
-       "Set the first MMC (not SD) dev number to \"mmc_first_dev\" enviroment",
+       "Set the first MMC (not SD) dev number to \"mmc_first_dev\" environment",
        ""
 );
 #endif