diff --git a/board/qca/arm/common/board_init.c b/board/qca/arm/common/board_init.c index 8891fbc1b9..55fc612f32 100644 --- a/board/qca/arm/common/board_init.c +++ b/board/qca/arm/common/board_init.c @@ -294,12 +294,24 @@ void report_l2err(u32 l2esr) void enable_caches(void) { + qca_smem_flash_info_t *sfi = &qca_smem_flash_info; + + smem_get_boot_flash(&sfi->flash_type, + &sfi->flash_index, + &sfi->flash_chip_select, + &sfi->flash_block_size, + &sfi->flash_density); + icache_enable(); + /*Skips dcache_enable during JTAG recovery */ + if (sfi->flash_type) + dcache_enable(); } void disable_caches(void) { icache_disable(); + dcache_disable(); } __weak void clear_l2cache_err(void) diff --git a/include/configs/ipq40xx.h b/include/configs/ipq40xx.h index e4a6e213bb..4c68969305 100644 --- a/include/configs/ipq40xx.h +++ b/include/configs/ipq40xx.h @@ -174,6 +174,7 @@ typedef struct { * size is configured to 64 */ #define CONFIG_SYS_CACHELINE_SIZE 64 #define CONFIG_SYS_DCACHE_OFF +#define CONFIG_CMD_CACHE #define CONFIG_QCA_BAM 1 /* diff --git a/include/configs/ipq806x.h b/include/configs/ipq806x.h index a16bed7c47..61947eed5b 100644 --- a/include/configs/ipq806x.h +++ b/include/configs/ipq806x.h @@ -332,6 +332,7 @@ typedef struct { * size is configured to 64 */ #define CONFIG_SYS_CACHELINE_SIZE 64 #define CONFIG_SYS_DCACHE_OFF +#define CONFIG_CMD_CACHE /* Enabling this flag will report any L2 errors. * By default we are disabling it */ diff --git a/include/configs/ipq807x.h b/include/configs/ipq807x.h index 359dd53d3e..fbaaecf55a 100644 --- a/include/configs/ipq807x.h +++ b/include/configs/ipq807x.h @@ -325,7 +325,8 @@ extern loff_t board_env_size; * Cache flush and invalidation based on L1 cache, so the cache line * size is configured to 64 */ #define CONFIG_SYS_CACHELINE_SIZE 64 -/*#define CONFIG_SYS_DCACHE_OFF*/ +#define CONFIG_SYS_DCACHE_OFF +#define CONFIG_CMD_CACHE /* Enabling this flag will report any L2 errors. * By default we are disabling it */