aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOvidiu Panait <ovpanait@gmail.com>2022-05-31 21:14:27 +0300
committerMichal Simek <michal.simek@amd.com>2022-06-24 14:16:00 +0200
commit8daf89678e9a8ce4203d2df6c65d9ff17aad785a (patch)
treecff596a8c6c55ff3995b424144eadee54995a7ad
parentef0a592ae8e2961519510f48ffe48b655b31610a (diff)
downloadu-boot-8daf89678e9a8ce4203d2df6c65d9ff17aad785a.zip
u-boot-8daf89678e9a8ce4203d2df6c65d9ff17aad785a.tar.gz
u-boot-8daf89678e9a8ce4203d2df6c65d9ff17aad785a.tar.bz2
microblaze: cache: improve icache Kconfig options
Replace CONFIG_ICACHE with a Kconfig option more limited in scope - XILINX_MICROBLAZE0_USE_WIC. It should be enabled if the processor supports the "wic" (Write to Instruction Cache) instruction. It will be used to guard "wic" invocations in microblaze cache code. Signed-off-by: Ovidiu Panait <ovpanait@gmail.com> Link: https://lore.kernel.org/r/20220531181435.3473549-6-ovpanait@gmail.com Signed-off-by: Michal Simek <michal.simek@amd.com>
-rw-r--r--arch/microblaze/Kconfig4
-rw-r--r--arch/microblaze/cpu/cache.c6
-rw-r--r--board/xilinx/microblaze-generic/Kconfig11
3 files changed, 14 insertions, 7 deletions
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 11ccbcc..ce157a7 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -39,10 +39,6 @@ config TARGET_MICROBLAZE_GENERIC
endchoice
-config ICACHE
- bool "Enable icache support"
- default y
-
source "board/xilinx/Kconfig"
source "board/xilinx/microblaze-generic/Kconfig"
diff --git a/arch/microblaze/cpu/cache.c b/arch/microblaze/cpu/cache.c
index 4e8e228..b6bbc21 100644
--- a/arch/microblaze/cpu/cache.c
+++ b/arch/microblaze/cpu/cache.c
@@ -58,14 +58,14 @@ void flush_cache(ulong addr, ulong size)
{
int i;
for (i = 0; i < size; i += 4) {
- asm volatile (
-#ifdef CONFIG_ICACHE
+ if (CONFIG_IS_ENABLED(XILINX_MICROBLAZE0_USE_WIC)) {
+ asm volatile (
"wic %0, r0;"
-#endif
"nop;"
:
: "r" (addr + i)
: "memory");
+ }
if (CONFIG_IS_ENABLED(XILINX_MICROBLAZE0_USE_WDC)) {
asm volatile (
diff --git a/board/xilinx/microblaze-generic/Kconfig b/board/xilinx/microblaze-generic/Kconfig
index b00ce6f..98b4814 100644
--- a/board/xilinx/microblaze-generic/Kconfig
+++ b/board/xilinx/microblaze-generic/Kconfig
@@ -74,4 +74,15 @@ config SPL_XILINX_MICROBLAZE0_USE_WDC
bool
default XILINX_MICROBLAZE0_USE_WDC
+config XILINX_MICROBLAZE0_USE_WIC
+ bool "MicroBlaze wic instruction support"
+ default y
+ help
+ Enable this option if the MicroBlaze processor is configured with
+ support for the "wic" (Write to Instruction Cache) instruction.
+
+config SPL_XILINX_MICROBLAZE0_USE_WIC
+ bool
+ default XILINX_MICROBLAZE0_USE_WIC
+
endif