diff options
-rw-r--r-- | arch/arm/include/asm/hardware/cache-l2x0.h | 1 | ||||
-rw-r--r-- | arch/arm/mm/cache-l2x0.c | 7 |
2 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/include/asm/hardware/cache-l2x0.h b/arch/arm/include/asm/hardware/cache-l2x0.h index fd04f24055fd..22ec488494da 100644 --- a/arch/arm/include/asm/hardware/cache-l2x0.h +++ b/arch/arm/include/asm/hardware/cache-l2x0.h @@ -79,6 +79,7 @@ #define L2X0_AUX_CTRL_EARLY_BRESP_SHIFT 30 #define REV_PL310_R2P0 4 +#define REV_PL310_R3P1_50 7 #ifndef __ASSEMBLY__ extern void l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask); diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 0336d47c5dd4..972c7bd08a83 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -83,7 +83,8 @@ static inline void l2x0_inv_line(unsigned long addr) writel_relaxed(addr, base + L2X0_INV_LINE_PA); } -#if defined(CONFIG_PL310_ERRATA_588369) || defined(CONFIG_PL310_ERRATA_727915) +#if !defined(CONFIG_TRUSTED_FOUNDATIONS) && \ + (defined(CONFIG_PL310_ERRATA_588369) || defined(CONFIG_PL310_ERRATA_727915)) #define debug_writel(val) outer_cache.set_debug(val) @@ -161,7 +162,7 @@ static void l2x0_flush_all(void) unsigned long flags; #ifdef CONFIG_PL310_ERRATA_727915 - if (is_pl310_rev(REV_PL310_R2P0)) { + if (is_pl310_rev(REV_PL310_R2P0) || is_pl310_rev(REV_PL310_R3P1_50)) { l2x0_for_each_set_way(l2x0_base + L2X0_CLEAN_INV_LINE_IDX); return; } @@ -178,7 +179,7 @@ static void l2x0_clean_all(void) unsigned long flags; #ifdef CONFIG_PL310_ERRATA_727915 - if (is_pl310_rev(REV_PL310_R2P0)) { + if (is_pl310_rev(REV_PL310_R2P0) || is_pl310_rev(REV_PL310_R3P1_50)) { l2x0_for_each_set_way(l2x0_base + L2X0_CLEAN_LINE_IDX); return; } |