summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mvebu/spl.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-mvebu/spl.c')
-rw-r--r--arch/arm/mach-mvebu/spl.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
index 402e520ea99..af61ded42ef 100644
--- a/arch/arm/mach-mvebu/spl.c
+++ b/arch/arm/mach-mvebu/spl.c
@@ -14,10 +14,21 @@ DECLARE_GLOBAL_DATA_PTR;
u32 spl_boot_device(void)
{
- /* Right now only booting via SPI NOR flash is supported */
+#if defined(CONFIG_SPL_SPI_FLASH_SUPPORT)
return BOOT_DEVICE_SPI;
+#endif
+#if defined(CONFIG_SPL_MMC_SUPPORT)
+ return BOOT_DEVICE_MMC1;
+#endif
}
+#ifdef CONFIG_SPL_MMC_SUPPORT
+u32 spl_boot_mode(void)
+{
+ return MMCSD_MODE_RAW;
+}
+#endif
+
void board_init_f(ulong dummy)
{
/* Set global data pointer */
@@ -26,8 +37,17 @@ void board_init_f(ulong dummy)
/* Linux expects the internal registers to be at 0xf1000000 */
arch_cpu_init();
+ /*
+ * Pin muxing needs to be done before UART output, since
+ * on A38x the UART pins need some re-muxing for output
+ * to work.
+ */
+ board_early_init_f();
+
preloader_console_init();
+ timer_init();
+
/* First init the serdes PHY's */
serdes_phy_config();