ARM: mx6: add MMC2 boot device detection support in SPL
authorMarcin Niestroj <m.niestroj@grinn-global.com>
Fri, 21 Oct 2016 11:53:54 +0000 (13:53 +0200)
committerStefano Babic <sbabic@denx.de>
Tue, 29 Nov 2016 15:31:53 +0000 (16:31 +0100)
Check BOOT_CFG2[3:4] to determine which SD/MMC port is selected to boot
from. If MMC2 is selected return BOOT_DEVICE_MMC2. In all other cases
return BOOT_DEVICE_MMC1, as we do not have corresponding macro for MMC3
and MMC4.

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
arch/arm/imx-common/spl.c

index bdcda7de937f0673392f5007f4377b597747fc0a..325ba263403016db60f830cc70a10be21f1a1f1f 100644 (file)
@@ -14,6 +14,9 @@
 #include <spl.h>
 
 #if defined(CONFIG_MX6)
+#define MX6_MMC_PORT_MASK      GENMASK(12, 11)
+#define MX6_MMC_PORT_2         BIT(11)
+
 /* determine boot device from SRC_SBMR1 (BOOT_CFG[4:1]) or SRC_GPR9 register */
 u32 spl_boot_device(void)
 {
@@ -55,10 +58,11 @@ u32 spl_boot_device(void)
        /* SD/eSD: 8.5.3, Table 8-15  */
        case 0x4:
        case 0x5:
-               return BOOT_DEVICE_MMC1;
        /* MMC/eMMC: 8.5.3 */
        case 0x6:
        case 0x7:
+               if ((reg & MX6_MMC_PORT_MASK) == MX6_MMC_PORT_2)
+                       return BOOT_DEVICE_MMC2;
                return BOOT_DEVICE_MMC1;
        /* NAND Flash: 8.5.2 */
        case 0x8 ... 0xf: