arch/risc-v/src/mpfs/mpfs_cache.c: Move l2zerodevice to use cache ways starting from 0

If scratchpad is being used, the cache way 0, which is automatically
enabled at boot, needs to be re-configured as part of scratchpad memory
Otherwise there is a possibility of random memory corruption in the
scratchpad
area due to cache eviction from way 0.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
This commit is contained in:
Jukka Laitinen
2025-01-28 09:17:04 +02:00
committed by Xiang Xiao
parent eddc22c47f
commit f53afd174e
3 changed files with 55 additions and 32 deletions
@@ -598,21 +598,21 @@
/* Cache settings */
#define LIBERO_SETTING_WAY_MASK_DMA 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_0 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_1 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_2 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_3 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_E51_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_E51_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_1_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_1_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_2_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_2_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_3_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_3_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_4_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_4_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_DMA 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_0 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_1 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_2 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_3 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_E51_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_E51_ICACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_1_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_1_ICACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_2_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_2_ICACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_3_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_3_ICACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_4_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_4_ICACHE 0x00000ff0
#define LIBERO_SETTING_NUM_SCRATCH_PAD_WAYS 0x00000004
#define LIBERO_SETTING_L2_SHUTDOWN_CR 0x00000000
#define LIBERO_SETTING_WAY_ENABLE 0x0000000b
@@ -594,21 +594,21 @@
/* Cache settings */
#define LIBERO_SETTING_WAY_MASK_DMA 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_0 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_1 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_2 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_3 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_E51_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_E51_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_1_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_1_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_2_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_2_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_3_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_3_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_4_DCACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_U54_4_ICACHE 0x0000f0ff
#define LIBERO_SETTING_WAY_MASK_DMA 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_0 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_1 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_2 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_AXI4_PORT_3 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_E51_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_E51_ICACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_1_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_1_ICACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_2_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_2_ICACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_3_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_3_ICACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_4_DCACHE 0x00000ff0
#define LIBERO_SETTING_WAY_MASK_U54_4_ICACHE 0x00000ff0
#define LIBERO_SETTING_NUM_SCRATCH_PAD_WAYS 0x00000004
#define LIBERO_SETTING_L2_SHUTDOWN_CR 0x00000000
#define LIBERO_SETTING_WAY_ENABLE 0x0000000b