diff options
author | Vignesh Raghavendra <vigneshr@ti.com> | 2023-01-05 21:08:53 +0530 |
---|---|---|
committer | Anand Gadiyar <gadiyar@ti.com> | 2023-01-11 18:26:38 -0600 |
commit | af1f984992b4b9148c346140aed3031fa69c4eec (patch) | |
tree | faec2867afe6a5252a664a807016729703b610ac /arch | |
parent | 73a2f2993b9910054785512fba9ddaa6913b9ed5 (diff) |
mach-k3: am62a7_init: Distinguish b/w eMMC raw and filesytem boot
ROM supports RAW as well as FS based boot in eMMC mode. Add support to
distinguish the same and proceed accordingly for loading next stages.
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-k3/am62a7_init.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mach-k3/am62a7_init.c b/arch/arm/mach-k3/am62a7_init.c index 75796ed166..4c63117a18 100644 --- a/arch/arm/mach-k3/am62a7_init.c +++ b/arch/arm/mach-k3/am62a7_init.c @@ -169,6 +169,27 @@ void board_init_f(ulong dummy) printf("am62a_init: %s done\n", __func__); } +u32 spl_mmc_boot_mode(const u32 boot_device) +{ + u32 devstat = readl(CTRLMMR_MAIN_DEVSTAT); + u32 bootmode_cfg = (devstat & MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_MASK) >> + MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_SHIFT; + + switch (boot_device) { + case BOOT_DEVICE_MMC1: + if ((bootmode_cfg & MAIN_DEVSTAT_PRIMARY_MMC_FS_RAW_MASK) >> + MAIN_DEVSTAT_PRIMARY_MMC_FS_RAW_SHIFT) + return MMCSD_MODE_EMMCBOOT; + return MMCSD_MODE_FS; + + case BOOT_DEVICE_MMC2: + return MMCSD_MODE_FS; + + default: + return MMCSD_MODE_RAW; + } +} + static u32 __get_backup_bootmedia(u32 devstat) { u32 bkup_bootmode = (devstat & MAIN_DEVSTAT_BACKUP_BOOTMODE_MASK) >> |