diff --git a/arch/arm/cpu/armv7/am33xx/board.c b/arch/arm/cpu/armv7/am33xx/board.c
index 2ca4ca77a8aa8af779718567759e220005b246a0..b387ac27ec8c39ced1ae14b084df0190fbf007d4 100644
--- a/arch/arm/cpu/armv7/am33xx/board.c
+++ b/arch/arm/cpu/armv7/am33xx/board.c
@@ -211,7 +211,13 @@ void s_init(void)
 #if defined(CONFIG_OMAP_HSMMC) && !defined(CONFIG_SPL_BUILD)
 int board_mmc_init(bd_t *bis)
 {
-	return omap_mmc_init(0, 0, 0);
+	int ret;
+	
+	ret = omap_mmc_init(0, 0, 0);
+	if (ret)
+		return ret;
+
+	return omap_mmc_init(1, 0, 0);
 }
 #endif
 
diff --git a/arch/arm/include/asm/arch-am33xx/mmc_host_def.h b/arch/arm/include/asm/arch-am33xx/mmc_host_def.h
index 26cc300e70fc170746b766b91d4e6ff81954f9bf..1f597c0eecd9d5f5e7422a123412bf7c014bacd4 100644
--- a/arch/arm/include/asm/arch-am33xx/mmc_host_def.h
+++ b/arch/arm/include/asm/arch-am33xx/mmc_host_def.h
@@ -20,8 +20,7 @@
  * OMAP HSMMC register definitions
  */
 #define OMAP_HSMMC1_BASE		0x48060100
-#define OMAP_HSMMC2_BASE		0x481D8000
-#define OMAP_HSMMC3_BASE		0x47C24000
+#define OMAP_HSMMC2_BASE		0x481D8100
 
 typedef struct hsmmc {
 	unsigned char res1[0x10];
diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index 4e95eee59b46612e3c56c135d1b89faa5c9c7257..71ef9b077f45b3c7b9ea1f1c8e7e0d449cc57ff2 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -67,7 +67,7 @@ void preloader_console_init(void);
 #elif defined(CONFIG_AM33XX)	/* AM33XX */
 #define BOOT_DEVICE_NAND	5
 #define BOOT_DEVICE_MMC1	8
-#define BOOT_DEVICE_MMC2	0
+#define BOOT_DEVICE_MMC2	9 /* eMMC or daughter card */
 #define BOOT_DEVICE_UART	65
 #define BOOT_DEVICE_MMC2_2      0xFF
 #endif