On Sep 05, 2025 at 13:48:53 +0530, Anshul Dalal wrote:
> U-Boot's provided enable_caches enforces the following sequence:
> icache_enable -> mmu_setup (as part of dcache_enable) -> dcache_enable
> 
> Whereas for K3 devices, we would like to add entries to the provided
> static array (k3_mem_map) as per gd->bd->bi_dram and then call mmu_setup
> to configure the MMU but also create carveouts for TFA/TEE before we
> enable caches to prevent speculative accesses to the region. Thus the
> following desired sequence:
> 
> add dram banks -> mmu_setup -> carveout TFA/TEE -> icache/dcache enable
> 
> Therefore this patch adds K3's own implementation of enable_cache for
> ARM64, allowing for greater control over the cache enablement sequence.
> 
> Signed-off-by: Anshul Dalal <[email protected]>
> ---
>  arch/arm/mach-k3/common.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
> index f8c53b286eb..9d6c6fea451 100644
> --- a/arch/arm/mach-k3/common.c
> +++ b/arch/arm/mach-k3/common.c
> @@ -258,6 +258,12 @@ void board_prep_linux(struct bootm_headers *images)
>                                ROUND(images->os.end,
>                                      CONFIG_SYS_CACHELINE_SIZE));
>  }
> +
> +void enable_caches(void)
> +{
> +     icache_enable();
> +     dcache_enable();
> +}

Reviewed-by: Dhruva Gole <[email protected]>

-- 
Best regards,
Dhruva Gole
Texas Instruments Incorporated

Reply via email to