Chapter 13: System Error Reporting
This chapter describes GIC support for System Error reporting. It contains the following section:
- About System Error reporting .
13.1 About System Error reporting
Support for locally generated system errors in the CPU interface is now deprecated. Arm recommends that new designs do not implement this feature.
Whether a CPU interface supports locally generated system error interrupts associated with physical interrupts is discoverable from either ICC_CTLR_EL1.SEIS or ICC_CTLR_EL3.SEIS. The GIC reports these using the Armv8 SError exception. The ITS can also generate system errors, see the description of the GITS_TYPER.SEIS bit.
Whether the GIC supports locally generated system error interrupts associated with virtual interrupts is discoverable from ICH_VTR_EL2.SEIS. The GIC reports these using either the SError exception or the virtual SError exception. Locally-generated System Error interrupts from Non-secure EL1 are reported:
-
Using the SError exception when HCR_EL2.AMO == 0.
-
Using the virtual SError exception, when HCR_EL2.AMO == 1. Where supported, a virtual SError exception is normally taken to Non-secure EL1.
The hypervisor can intercept locally generated system error interrupts using ICH_HCR_EL2.TSEI.
13.1.1 Pseudocode
The following pseudocode indicates whether a local system error is generated.
// GenerateLocalSError()
// =====================
boolean GenerateLocalSError()
if HaveEL(EL3) then
return ICC_CTLR_EL3.SEIS == '1';
else
return ICC_CTLR_EL1.SEIS == '1';