Agilex™ 5 ES Device Errata and User Guidelines

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

3.1.10. 2109978: Atomic store instructions might not report an External abort or System Error

Description

If the core receives read data from the interconnect where some beats of the data indicate an error, then, for certain types of atomic instruction, the core might not report the error.

Conditions

  1. The CPUECTLR_EL1.ATOM field is set to 0b01, which forces all store atomics to be performed in the L1 cache.
  2. A core executes an atomic store instruction to Inner Write-Back, Outer Write-Back cacheable memory.
  3. The address accessed by the instruction is not present in any cache in the cluster, so the DSU sends a read transaction to the system interconnect.
  4. The interconnect returns data that contains an error.
    • On CHI, this means some data flits indicate DERR or NDERR.
    • On ACE, this means some data transfers indicate SLVERR or DECERR.

Impact

If these conditions are met, then the core will correctly discard the data from the atomic store and the data from the interconnect, however, it will not report an External abort or System Error interrupt. Therefore, the software will be unaware that the data was discarded.

The software is unlikely to use an atomic store as the first instruction to access this address. Therefore, if the error response from the interconnect is because of a permanent fault such as the address not being mapped to any peripheral, then an abort would have been reported when the software initially wrote to that address with a normal store instruction.

Systems using a CHI interface and configured with ECC support would be expected to poison data that got an uncorrectable error, rather than returning a DERR or NDERR. These systems using poison would not be impacted by this erratum.

In systems that meet the configurations described, this erratum might cause a negligible increase in overall system failure rate.

Workaround

For many systems that have not changed the default value of CPUECTLR_EL1.ATOM, no workaround is necessary. The software should not set the CPUECTLR_EL1.ATOM field to 0b01.

Category

Category C