> Subject: [RFC] spl: imx6: Let spl_boot_device return USDHC1 or USDHC2
> 
> Currently, when the spl_boot_device checks the boot device, it will only
> return MMC1 when it's either sd or eMMC regardless of whether or not it's
> MMC1 or MMC2.  This is a problem when booting from MMC2 if MMC isn't
> being manually configured like in the DM_SPL case with SPL_OF_CONTROL.
> 
> This patch will check the register and return either MMC1 or MMC2.
> 
> Signed-off-by: Adam Ford <aford...@gmail.com>
> 
> diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c index
> 9f1e0f6a72..1f230aca33 100644
> --- a/arch/arm/mach-imx/spl.c
> +++ b/arch/arm/mach-imx/spl.c
> @@ -24,6 +24,7 @@ u32 spl_boot_device(void)  {
>       unsigned int bmode = readl(&src_base->sbmr2);
>       u32 reg = imx6_src_get_boot_mode();
> +     u32 mmc_index = ((reg >> 11) & 0x03);
> 
>       /*
>        * Check for BMODE if serial downloader is enabled @@ -84,11 +85,12
> @@ u32 spl_boot_device(void)
>       /* SD/eSD: 8.5.3, Table 8-15  */
>       case IMX6_BMODE_SD:
>       case IMX6_BMODE_ESD:
> -             return BOOT_DEVICE_MMC1;
> -     /* MMC/eMMC: 8.5.3 */
>       case IMX6_BMODE_MMC:
>       case IMX6_BMODE_EMMC:
> -             return BOOT_DEVICE_MMC1;
> +             if (mmc_index == 1)
> +                     return BOOT_DEVICE_MMC2;
> +             else
> +                     return BOOT_DEVICE_MMC1;

Although it not fixes all the 4 sdhc ports for i.MX6Q,
it is fine.

Reviewed-by: Peng Fan <peng....@nxp.com>

>       /* NAND Flash: 8.5.2, Table 8-10 */
>       case IMX6_BMODE_NAND_MIN ... IMX6_BMODE_NAND_MAX:
>               return BOOT_DEVICE_NAND;
> --
> 2.17.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to