
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