davinci: spl: use bootcfg to select boot device
[oweals/u-boot.git] / arch / arm / mach-davinci / spl.c
index 0aeaa7d8b7a0a67d849cc6e89a957cc97d7e1d61..564c2008e003f39480de64ad4887c877c34a117a 100644 (file)
@@ -52,14 +52,27 @@ u32 spl_boot_mode(const u32 boot_device)
 
 u32 spl_boot_device(void)
 {
-#ifdef CONFIG_SPL_NAND_SIMPLE
-       return BOOT_DEVICE_NAND;
-#elif defined(CONFIG_SPL_SPI_LOAD)
-       return BOOT_DEVICE_SPI;
-#elif defined(CONFIG_SPL_MMC_LOAD)
-       return BOOT_DEVICE_MMC1;
-#else
-       puts("Unknown boot device\n");
-       hang();
+       switch (davinci_syscfg_regs->bootcfg) {
+#ifdef CONFIG_SPL_NAND_SUPPORT
+       case DAVINCI_NAND8_BOOT:
+       case DAVINCI_NAND16_BOOT:
+               return BOOT_DEVICE_NAND;
 #endif
+
+#ifdef CONFIG_SPL_MMC_SUPPORT
+       case DAVINCI_SD_OR_MMC_BOOT:
+       case DAVINCI_MMC_ONLY_BOOT:
+               return BOOT_DEVICE_MMC1;
+#endif
+
+#ifdef CONFIG_SPL_SPI_FLASH_SUPPORT
+       case DAVINCI_SPI0_FLASH_BOOT:
+       case DAVINCI_SPI1_FLASH_BOOT:
+               return BOOT_DEVICE_SPI;
+#endif
+
+       default:
+               puts("Unknown boot device\n");
+               hang();
+       }
 }