mmc: Avoid HS400 mode when accessing boot partitions
authorMarek Vasut <marek.vasut@gmail.com>
Fri, 31 May 2019 13:22:44 +0000 (15:22 +0200)
committerPeng Fan <peng.fan@nxp.com>
Wed, 19 Jun 2019 05:53:59 +0000 (13:53 +0800)
U-Boot code currently only applies this restriction to HS200 mode,
extend this to HS400 mode as well.

Currently U-Boot code not support accessing boot partition in HS200/400
mode. This needs more check.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Jean-Jacques Hiblot <jjhiblot@ti.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
drivers/mmc/mmc.c

index 456c1b4cc92321616141fa0feaebe5ebedb06e67..71b52c6cf2c99d6402eb1531298914334d855eba 100644 (file)
@@ -905,14 +905,14 @@ static int mmc_set_capacity(struct mmc *mmc, int part_num)
        return 0;
 }
 
-#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT)
+#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
 static int mmc_boot_part_access_chk(struct mmc *mmc, unsigned int part_num)
 {
        int forbidden = 0;
        bool change = false;
 
        if (part_num & PART_ACCESS_MASK)
-               forbidden = MMC_CAP(MMC_HS_200);
+               forbidden = MMC_CAP(MMC_HS_200) | MMC_CAP(MMC_HS_400);
 
        if (MMC_CAP(mmc->selected_mode) & forbidden) {
                pr_debug("selected mode (%s) is forbidden for part %d\n",