summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYao Zi <[email protected]>2025-05-30 09:48:48 +0000
committerLeo Yu-Chi Liang <[email protected]>2025-06-09 10:44:06 +0800
commit85cfabe895f4f32a5b65c114ebef7793321d5e01 (patch)
tree89c18fa8563ab8076b047a1d81300dc812d613b5
parent0463545678883b8d2b417eea08c76d47396104b7 (diff)
riscv: cpu: th1520: Support cache enabling/disabling in M mode only
These operations rely on a customized M-mode CSR, MHCR, which isn't available when running in S mode. Let's fallback to the generic weak stub when running in S mode to avoid illegal accesses. Signed-off-by: Yao Zi <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
-rw-r--r--arch/riscv/cpu/th1520/cache.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/riscv/cpu/th1520/cache.c b/arch/riscv/cpu/th1520/cache.c
index 08aa1f789fd..b2fec229363 100644
--- a/arch/riscv/cpu/th1520/cache.c
+++ b/arch/riscv/cpu/th1520/cache.c
@@ -11,6 +11,7 @@
#define CSR_MHCR_IE BIT(0)
#define CSR_MHCR_DE BIT(1)
+#if CONFIG_IS_ENABLED(RISCV_MMODE)
void icache_enable(void)
{
csr_write(CSR_MHCR, csr_read(CSR_MHCR) | CSR_MHCR_IE);
@@ -30,3 +31,4 @@ int dcache_status(void)
{
return (csr_read(CSR_MHCR) & CSR_MHCR_DE) != 0;
}
+#endif /* CONFIG_IS_ENABLED(RISCV_MMODE) */