From b34a48c1ce0dd7e44eac4ceb0537b337857b057f Mon Sep 17 00:00:00 2001 From: Jit Loon Lim Date: Thu, 10 Nov 2022 22:08:13 +0800 Subject: [PATCH] fix(intel): missing NCORE CCU snoop filter fix in BL2 Clear Ncore CCU snoop filter. There is hardware bug in NCORE CCU IP and it is causing an issue in the coherent directory tracking of outstanding cache lines. Signed-off-by: Jit Loon Lim Change-Id: I9ee67c94e6379d318516ae8f660a62323ce8d563 --- plat/intel/soc/common/drivers/ccu/ncore_ccu.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plat/intel/soc/common/drivers/ccu/ncore_ccu.c b/plat/intel/soc/common/drivers/ccu/ncore_ccu.c index d9a238ed2..99d48d2f7 100644 --- a/plat/intel/soc/common/drivers/ccu/ncore_ccu.c +++ b/plat/intel/soc/common/drivers/ccu/ncore_ccu.c @@ -40,7 +40,7 @@ uint32_t directory_init(void) dir_sf_en = DIRECTORY_UNIT(dir, NCORE_DIRUSFER); /* Initialize All Entries */ - mmio_write_32(dir_sf_mtn, SNOOP_FILTER_ID(dir)); + mmio_write_32(dir_sf_mtn, SNOOP_FILTER_ID(sf)); /* Poll Active Bit */ ret = poll_active_bit(dir); @@ -49,8 +49,9 @@ uint32_t directory_init(void) return -ETIMEDOUT; } - /* Snoope Filter Enable */ - mmio_setbits_32(dir_sf_en, BIT(sf)); + /* Disable snoop filter, a bit per snoop filter */ + mmio_clrbits_32(dir_sf_en, BIT(sf)); + } } -- 2.39.5