Visible to Intel only — GUID: vto1687910437685
Ixiasoft
Visible to Intel only — GUID: vto1687910437685
Ixiasoft
3.6.5. 2023457: Affinity3 field corrupted by cross-chip 32-bit writes to upper half of GICD_IROUTERn
Description
The upper 32 bits of the GICD_IROUTERn registers contain the Affinity3 field. Also, the whole register should be accessible from the GICD address space of any connected chip using 32-bit or 64-bit accesses.
However, using a 32-bit write to the upper half of a GICD_IROUTERn for an SPI that is owned on a different chip, results in the Affinity3 field being set to zero rather than the programmed value.
Conditions
Software issues a 32-bit write to the upper half of a GICD_IROUTERn for an SPI that is owned on another chip.
Impact
Impacted SPIs are not routed to the expected CPUs. Depending on the system topology and programming, the SPI might be delivered to a CPU on chip 0 with matching Affinity2, Affinity1 and Affinity0, or the SPI might not be delivered.
Workaround
There are two possible workarounds:
- Always use 64-bit writes when setting the Affinity3 field in GICD_IROUTERn. 32-bit writes are acceptable when setting GICD_IROUTERn.IRM. This workaround is the expected behavior.
- Program GICD_IROUTERn registers through the GICD or GICDA registers space, on the chip where the SPI is owned according to the GICD_CHIPR registers.
Category
Category C