summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVaishnav Achath <vaishnav.a@ti.com>2023-06-01 12:38:36 +0530
committerUdit Kumar <u-kumar1@ti.com>2023-06-01 13:20:30 +0530
commit6bacb93d8de2f2de910b5432df1fc2fe80ba7258 (patch)
treed1ebcfb4ab2572a926817b8dfe07a68f0817f6bd
parent1446b15844d2f45eaa74f2793455af75f697919a (diff)
arm: k3: j784s4: Add dynamic sf bus override support
Implement overrides for spl_spi_boot_bus() lookup function according to bootmode selection, so as to support both QSPI and OSPI boot using the same build. Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
-rw-r--r--arch/arm/mach-k3/j784s4_init.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-k3/j784s4_init.c b/arch/arm/mach-k3/j784s4_init.c
index a779547e80..ef7c54710f 100644
--- a/arch/arm/mach-k3/j784s4_init.c
+++ b/arch/arm/mach-k3/j784s4_init.c
@@ -297,6 +297,17 @@ static u32 __get_primary_bootmedia(u32 main_devstat, u32 wkup_devstat)
return bootmode;
}
+u32 spl_spi_boot_bus(void)
+{
+ u32 wkup_devstat = readl(CTRLMMR_WKUP_DEVSTAT);
+ u32 main_devstat = readl(CTRLMMR_MAIN_DEVSTAT);
+ u32 bootmode = ((wkup_devstat & WKUP_DEVSTAT_PRIMARY_BOOTMODE_MASK) >>
+ WKUP_DEVSTAT_PRIMARY_BOOTMODE_SHIFT) |
+ ((main_devstat & MAIN_DEVSTAT_BOOT_MODE_B_MASK) << BOOT_MODE_B_SHIFT);
+
+ return (bootmode == BOOT_DEVICE_QSPI) ? 1 : 0;
+}
+
u32 spl_boot_device(void)
{
u32 wkup_devstat = readl(CTRLMMR_WKUP_DEVSTAT);