public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v1] cache_v8: agilex5: Disable Dcache in the SPL
@ 2023-06-21 14:06 Jit Loon Lim
  2023-06-21 14:15 ` Marc Zyngier
  2023-06-21 14:19 ` Marek Vasut
  0 siblings, 2 replies; 6+ messages in thread
From: Jit Loon Lim @ 2023-06-21 14:06 UTC (permalink / raw)
  To: u-boot
  Cc: Jagan Teki, Marek, Simon, Tien Fong, Kok Kiang, Raaj, Dinesh,
	Boon Khai, Alif, Teik Heng, Hazim, Jit Loon Lim, Sieu Mun Tang,
	Ying-Chun Liu, Marc Zyngier, Kah Jing Lee

From: Kah Jing Lee <kah.jing.lee@intel.com>

Dcache feature is not enabled in SPL and enable it will cause ISR
exception. Since the Dcache is not supported in SPL, new
CONFIG_SPL_SYS_DISABLE_DCACHE_OPS is added to Kconfig to disable Dcache
in SPL.

Signed-off-by: Kah Jing Lee <kah.jing.lee@intel.com>
---
 arch/arm/cpu/armv8/cache_v8.c | 20 +++++++++++---------
 common/spl/Kconfig            |  7 +++++++
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c
index cb1131a048..7f25d3a6ce 100644
--- a/arch/arm/cpu/armv8/cache_v8.c
+++ b/arch/arm/cpu/armv8/cache_v8.c
@@ -534,29 +534,31 @@ inline void flush_dcache_all(void)
 #endif
 }
 
-#ifndef CONFIG_SYS_DISABLE_DCACHE_OPS
-/*
- * Invalidates range in all levels of D-cache/unified cache
- */
+#if CONFIG_IS_ENABLED(SYS_DISABLE_DCACHE_OPS) || \
+	CONFIG_IS_ENABLED(SPL_SYS_DISABLE_DCACHE_OPS) && \
+	CONFIG_IS_ENABLED(SPL_BUILD)
 void invalidate_dcache_range(unsigned long start, unsigned long stop)
 {
-	__asm_invalidate_dcache_range(start, stop);
 }
 
-/*
- * Flush range(clean & invalidate) from all levels of D-cache/unified cache
- */
 void flush_dcache_range(unsigned long start, unsigned long stop)
 {
-	__asm_flush_dcache_range(start, stop);
 }
 #else
+/*
+ * Invalidates range in all levels of D-cache/unified cache
+ */
 void invalidate_dcache_range(unsigned long start, unsigned long stop)
 {
+	__asm_invalidate_dcache_range(start, stop);
 }
 
+/*
+ * Flush range(clean & invalidate) from all levels of D-cache/unified cache
+ */
 void flush_dcache_range(unsigned long start, unsigned long stop)
 {
+	__asm_flush_dcache_range(start, stop);
 }
 #endif /* CONFIG_SYS_DISABLE_DCACHE_OPS */
 
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 2c042ad306..7e458503df 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -19,6 +19,13 @@ config SPL
 menu "SPL configuration options"
 	depends on SPL
 
+config SPL_SYS_DISABLE_DCACHE_OPS
+	bool "Do not enable dcache operation in SPL"
+	depends on SPL
+	help
+	  Do not enable data cache operation in SPL. This will turn off the
+	  Dcache support and have the empty dcache declaration.
+
 config SPL_FRAMEWORK
 	bool "Support SPL based upon the common SPL framework"
 	default y
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-06-26  9:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-21 14:06 [PATCH v1] cache_v8: agilex5: Disable Dcache in the SPL Jit Loon Lim
2023-06-21 14:15 ` Marc Zyngier
2023-06-21 14:19   ` Marek Vasut
2023-06-26  9:00     ` Lim, Jit Loon
2023-06-26  9:32       ` Marc Zyngier
2023-06-21 14:19 ` Marek Vasut

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox