summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJayesh Choudhary <j-choudhary@ti.com>2024-01-23 13:47:36 +0530
committerFrancesco Dolcini <francesco.dolcini@toradex.com>2024-03-21 14:26:33 +0000
commit233c80fa5be6768f58cad97c38b50be6c9d77395 (patch)
tree42f17f506f7970a86497b7c2d868722df4c8ab6d
parent0fa22ef6bc0616e29e3bc7449d0359b856a14be7 (diff)
mach-k3: j722s_init: Add FS and raw boot mode support
This adds FS and raw boot mode support similar to other K3 platforms with the default boot mode being filesystem. Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
-rw-r--r--arch/arm/mach-k3/j722s_init.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-k3/j722s_init.c b/arch/arm/mach-k3/j722s_init.c
index 4708a3498c..4823e5526c 100644
--- a/arch/arm/mach-k3/j722s_init.c
+++ b/arch/arm/mach-k3/j722s_init.c
@@ -270,3 +270,22 @@ u32 spl_boot_device(void)
__func__, devstat, bootmedia, bootindex);
return bootmedia;
}
+
+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;
+ }
+}