From c97fa5cd4ab543e7b2535912386537e0421ef43a Mon Sep 17 00:00:00 2001 From: Vignesh Raghavendra Date: Fri, 24 Nov 2023 21:36:51 +0530 Subject: [PATCH] mach-k3: am62p5_init: Add emmc boot support Add spl_mmc_boot_mode() to help distinguish eMMC raw boot mode. Signed-off-by: Vignesh Raghavendra --- arch/arm/mach-k3/am62p5_init.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm/mach-k3/am62p5_init.c b/arch/arm/mach-k3/am62p5_init.c index b20d9ece9f..55535a3ff9 100644 --- a/arch/arm/mach-k3/am62p5_init.c +++ b/arch/arm/mach-k3/am62p5_init.c @@ -160,6 +160,25 @@ void board_init_f(ulong dummy) debug("am62px_init: %s done\n", __func__); } +u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device) +{ + u32 devstat = readl(CTRLMMR_MAIN_DEVSTAT); + u32 bootmode = (devstat & MAIN_DEVSTAT_PRIMARY_BOOTMODE_MASK) >> + MAIN_DEVSTAT_PRIMARY_BOOTMODE_SHIFT; + u32 bootmode_cfg = (devstat & MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_MASK) >> + MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_SHIFT; + + switch (bootmode) { + case BOOT_DEVICE_EMMC: + return MMCSD_MODE_EMMCBOOT; + case BOOT_DEVICE_MMC: + if (bootmode_cfg & MAIN_DEVSTAT_PRIMARY_MMC_FS_RAW_MASK) + return MMCSD_MODE_RAW; + default: + return MMCSD_MODE_FS; + } +} + static u32 __get_backup_bootmedia(u32 devstat) { u32 bkup_bootmode = (devstat & MAIN_DEVSTAT_BACKUP_BOOTMODE_MASK) >>