Agilex™ 5 ES Device Errata and User Guidelines

ID 825514
Date 12/09/2024
Public
Document Table of Contents

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