]> git.baikalelectronics.ru Git - arm-tf.git/commitdiff
fix(intel): missing NCORE CCU snoop filter fix in BL2
authorJit Loon Lim <jit.loon.lim@intel.com>
Thu, 10 Nov 2022 14:08:13 +0000 (22:08 +0800)
committerSieu Mun Tang <sieu.mun.tang@intel.com>
Thu, 15 Dec 2022 04:27:17 +0000 (12:27 +0800)
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 <jit.loon.lim@intel.com>
Change-Id: I9ee67c94e6379d318516ae8f660a62323ce8d563

plat/intel/soc/common/drivers/ccu/ncore_ccu.c

index d9a238ed2a5ec62c04ea1f3bc04ed62377592f42..99d48d2f7a4da977eb0415e29dc35778535498bc 100644 (file)
@@ -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));
+
                }
        }