Commit 27cd1a47 authored by Tien Hock Loh's avatar Tien Hock Loh Committed by Manish Pandey
Browse files

plat: intel: Fix CCU initialization for Agilex



The CCU initialization loop uses the wrong units, this fixes that. This
also fixes snoop filter register set bits should be used instead of
overwriting the register
Signed-off-by: default avatarTien Hock Loh <tien.hock.loh@intel.com>
Change-Id: Ia15eeeae5569b00ad84120182170d353ee221b31
parent e734ecd6
...@@ -35,14 +35,12 @@ uint32_t directory_init(void) ...@@ -35,14 +35,12 @@ uint32_t directory_init(void)
uint32_t dir, sf, ret; uint32_t dir, sf, ret;
for (dir = 0; dir < subsystem_id.num_directory; dir++) { for (dir = 0; dir < subsystem_id.num_directory; dir++) {
dir_sf_mtn = DIRECTORY_UNIT(dir, NCORE_DIRUSFMCR);
dir_sf_en = DIRECTORY_UNIT(dir, NCORE_DIRUSFER);
for (sf = 0; sf < subsystem_id.num_snoop_filter; sf++) { for (sf = 0; sf < subsystem_id.num_snoop_filter; sf++) {
dir_sf_mtn = DIRECTORY_UNIT(dir, NCORE_DIRUSFMCR);
dir_sf_en = DIRECTORY_UNIT(dir, NCORE_DIRUSFER);
/* Initialize All Entries */ /* Initialize All Entries */
mmio_write_32(dir_sf_mtn, SNOOP_FILTER_ID(sf)); mmio_write_32(dir_sf_mtn, SNOOP_FILTER_ID(dir));
/* Poll Active Bit */ /* Poll Active Bit */
ret = poll_active_bit(dir); ret = poll_active_bit(dir);
...@@ -52,7 +50,7 @@ uint32_t directory_init(void) ...@@ -52,7 +50,7 @@ uint32_t directory_init(void)
} }
/* Snoope Filter Enable */ /* Snoope Filter Enable */
mmio_write_32(dir_sf_en, BIT(sf)); mmio_setbits_32(dir_sf_en, BIT(sf));
} }
} }
...@@ -64,11 +62,8 @@ uint32_t coherent_agent_intfc_init(void) ...@@ -64,11 +62,8 @@ uint32_t coherent_agent_intfc_init(void)
uint32_t dir, ca, ca_id, ca_type, ca_snoop_en; uint32_t dir, ca, ca_id, ca_type, ca_snoop_en;
for (dir = 0; dir < subsystem_id.num_directory; dir++) { for (dir = 0; dir < subsystem_id.num_directory; dir++) {
ca_snoop_en = DIRECTORY_UNIT(dir, NCORE_DIRUCASER0);
for (ca = 0; ca < subsystem_id.num_coh_agent; ca++) { for (ca = 0; ca < subsystem_id.num_coh_agent; ca++) {
ca_snoop_en = DIRECTORY_UNIT(ca, NCORE_DIRUCASER0);
ca_id = mmio_read_32(COH_AGENT_UNIT(ca, NCORE_CAIUIDR)); ca_id = mmio_read_32(COH_AGENT_UNIT(ca, NCORE_CAIUIDR));
/* Coh Agent Snoop Enable */ /* Coh Agent Snoop Enable */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment