mach-k3: am62*: Fix backup from eMMC boot mode

Currently logic in spl_mmc_boot_mode only lookes at main devstat
to determine the bootmode to return. Thus, when using: 'eMMC boot'
as primary boot mode and 'MMCSD boot from eMMC UDA' as backup
boot mode, 'eMMC boot' is always selected. Add check for bootindex
to determine if ROM boot via backup boot mode and return MMCSD_MODE_FS
which is the only supported backup bootmode with eMMC device.

Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Anshul Dalal <anshuld@ti.com>
Reviewed-by: Moteen Shah <m-shah@ti.com>
This commit is contained in:
Judith Mendez
2025-09-11 11:59:35 -06:00
committed by Tom Rini
parent c85b8071e7
commit 6fd45dd488
3 changed files with 15 additions and 0 deletions
+5
View File
@@ -218,6 +218,11 @@ u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device)
u32 bootmode_cfg = (devstat & MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_MASK) >>
MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_SHIFT;
if (bootindex != K3_PRIMARY_BOOTMODE) {
pr_alert("Fallback to backup bootmode MMCSD_MODE_FS\n");
return MMCSD_MODE_FS;
}
switch (bootmode) {
case BOOT_DEVICE_EMMC:
if (IS_ENABLED(CONFIG_SUPPORT_EMMC_BOOT))
+5
View File
@@ -264,6 +264,11 @@ u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device)
u32 bootmode_cfg = (devstat & MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_MASK) >>
MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_SHIFT;
if (bootindex != K3_PRIMARY_BOOTMODE) {
pr_alert("Fallback to backup bootmode MMCSD_MODE_FS\n");
return MMCSD_MODE_FS;
}
switch (bootmode) {
case BOOT_DEVICE_EMMC:
if (IS_ENABLED(CONFIG_SUPPORT_EMMC_BOOT))
+5
View File
@@ -305,6 +305,11 @@ u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device)
u32 bootmode_cfg = (devstat & MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_MASK) >>
MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_SHIFT;
if (bootindex != K3_PRIMARY_BOOTMODE) {
pr_alert("Fallback to backup bootmode MMCSD_MODE_FS\n");
return MMCSD_MODE_FS;
}
switch (bootmode) {
case BOOT_DEVICE_EMMC:
if (IS_ENABLED(CONFIG_SUPPORT_EMMC_BOOT))