diff options
| author | Anshul Dalal <anshuld@ti.com> | 2025-04-15 15:22:24 +0530 |
|---|---|---|
| committer | Tom Rini <trini@konsulko.com> | 2025-04-24 08:24:21 -0600 |
| commit | 3b7893145e3621574f01e0bfde1277ec730dc5b6 (patch) | |
| tree | 65f66bb3b342db900eec63dccdc764e67660d243 /arch/arm/mach-k3 | |
| parent | 243a6dbfb680f9773e3c2a1e2e17e69068830666 (diff) | |
mach-k3: add eMMC FS boot support for am62[ap]
This makes spl_mmc_boot_mode consistent across am62x, 62a and 62p.
If MMCSD_MODE_EMMCBOOT is returned, FS boot fails since it checks for FS
on the hardware partitions, not the UDA. So to allow FS boot from EMMC,
the function should return MMCSD_MODE_FS instead which allows us to read
from FS on the UDA.
Signed-off-by: Anshul Dalal <anshuld@ti.com>
Diffstat (limited to 'arch/arm/mach-k3')
| -rw-r--r-- | arch/arm/mach-k3/am62ax/am62a7_init.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-k3/am62px/am62p5_init.c | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mach-k3/am62ax/am62a7_init.c b/arch/arm/mach-k3/am62ax/am62a7_init.c index 52a21277227..28aee34f30b 100644 --- a/arch/arm/mach-k3/am62ax/am62a7_init.c +++ b/arch/arm/mach-k3/am62ax/am62a7_init.c @@ -216,6 +216,10 @@ u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device) switch (bootmode) { case BOOT_DEVICE_EMMC: + if (IS_ENABLED(CONFIG_SUPPORT_EMMC_BOOT)) + return MMCSD_MODE_EMMCBOOT; + if (IS_ENABLED(CONFIG_SPL_FS_FAT) || IS_ENABLED(CONFIG_SPL_FS_EXT4)) + return MMCSD_MODE_FS; return MMCSD_MODE_EMMCBOOT; case BOOT_DEVICE_MMC: if (bootmode_cfg & MAIN_DEVSTAT_PRIMARY_MMC_FS_RAW_MASK) diff --git a/arch/arm/mach-k3/am62px/am62p5_init.c b/arch/arm/mach-k3/am62px/am62p5_init.c index 01e47deca94..6e3c66e5107 100644 --- a/arch/arm/mach-k3/am62px/am62p5_init.c +++ b/arch/arm/mach-k3/am62px/am62p5_init.c @@ -262,6 +262,10 @@ u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device) switch (bootmode) { case BOOT_DEVICE_EMMC: + if (IS_ENABLED(CONFIG_SUPPORT_EMMC_BOOT)) + return MMCSD_MODE_EMMCBOOT; + if (IS_ENABLED(CONFIG_SPL_FS_FAT) || IS_ENABLED(CONFIG_SPL_FS_EXT4)) + return MMCSD_MODE_FS; return MMCSD_MODE_EMMCBOOT; case BOOT_DEVICE_MMC: if (bootmode_cfg & MAIN_DEVSTAT_PRIMARY_MMC_FS_RAW_MASK) |
