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: Tien Hock Loh <tien.hock.loh@intel.com> Change-Id: Ia15eeeae5569b00ad84120182170d353ee221b31
This commit is contained in:
parent
e734ecd61d
commit
27cd1a4762
|
@ -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++) {
|
||||||
|
for (sf = 0; sf < subsystem_id.num_snoop_filter; sf++) {
|
||||||
dir_sf_mtn = DIRECTORY_UNIT(dir, NCORE_DIRUSFMCR);
|
dir_sf_mtn = DIRECTORY_UNIT(dir, NCORE_DIRUSFMCR);
|
||||||
dir_sf_en = DIRECTORY_UNIT(dir, NCORE_DIRUSFER);
|
dir_sf_en = DIRECTORY_UNIT(dir, NCORE_DIRUSFER);
|
||||||
|
|
||||||
for (sf = 0; sf < subsystem_id.num_snoop_filter; sf++) {
|
|
||||||
|
|
||||||
/* 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)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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)
|
||||||
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 */
|
||||||
|
|
Loading…
Reference in New Issue