From 38a7e6cdbd7cf3fe0a9cb752f364f13a55c89a9a Mon Sep 17 00:00:00 2001 From: Grzegorz Jaszczyk Date: Wed, 23 Jan 2019 15:47:57 +0100 Subject: [PATCH] plat: marvell: ap807: enable snoop filter for ap807 Snoop filter needs to be enabled once per cluster. Change-Id: I241e72f21982142ba290c7547df6f434e6a6a98d Signed-off-by: Grzegorz Jaszczyk --- .../a8k/common/aarch64/plat_arch_config.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/plat/marvell/armada/a8k/common/aarch64/plat_arch_config.c b/plat/marvell/armada/a8k/common/aarch64/plat_arch_config.c index 06dc84115..9facdbc25 100644 --- a/plat/marvell/armada/a8k/common/aarch64/plat_arch_config.c +++ b/plat/marvell/armada/a8k/common/aarch64/plat_arch_config.c @@ -13,7 +13,21 @@ #define CCU_HTC_ASET (MVEBU_CCU_BASE(MVEBU_AP0) + 0x264) #define MVEBU_IO_AFFINITY (0xF00) +#define MVEBU_SF_REG (MVEBU_REGS_BASE + 0x40) +#define MVEBU_SF_EN BIT(8) +#ifdef MVEBU_SOC_AP807 +static void plat_enable_snoop_filter(void) +{ + int cpu_id = plat_my_core_pos(); + + /* Snoop filter needs to be enabled once per cluster */ + if (cpu_id % 2) + return; + + mmio_setbits_32(MVEBU_SF_REG, MVEBU_SF_EN); +} +#endif static void plat_enable_affinity(void) { @@ -42,4 +56,8 @@ void marvell_psci_arch_init(int die_index) /* Enable Affinity */ plat_enable_affinity(); + +#ifdef MVEBU_SOC_AP807 + plat_enable_snoop_filter(); +#endif }