|Home > Operation > Interrupt translation service (ITS) > ITS commands and errors|
Each ITS detects a wide range of command errors and translation errors, and reports them in ARMv8.2 RAS architecture-compliant error records.
The ITS record error syndromes comprise four groups that each have separate enables in the GITS_FCTLR register. The following table shows the ITS record error syndrome groups.
Table 3-3 ITS record error syndrome groups
|ACE-Lite slave Write translation errors. Only when the ITS has a separate ACE-Lite slave port.||GITS_FCTLR.AEE (Access Error Enable)|
|Translation errors on incoming writes to GITS_TRANSLATER.||GITS_FCTLR.UEE (Unmapped Error Enable)|
|Errors during commands.||GITS_FCTLR.CEE (Command Error Enable)|
|Other errors, such as, memory system, or memory allocation errors.||None|
See ITS command and translation error records 13+ for information about all the detected syndromes.
ITS commands must be written by software before they are executed.
The ITS Command queue operates a stall mechanism on any error, irrespective of the GITS_FCTLR.CEE value. To execute commands, software writes to a Command queue in memory and then updates the GITS_CWRITER.Offset to indicate that there are commands to run. See 3.7 Getting started for more information. Normally, the GITS_CREADR.Offset increments until it matches the GITS_CWRITER.Offset, wrapping as necessary, to indicate that the Command queue has completed.
If an error occurs, GITS_CREADR.Stalled is set, which indicates that processing has stopped and software intervention is required. If GITS_FCTLR.CEE is set, at least one error is reported in the relevant error record to aid software debug. You can correct the command identified by GITS_CREADR and resume the Command queue by writing to GITS_CWRITER.Retry. If the command is no longer required, you must rewrite it as a SYNC command before you resume.
To determine when Command queue execution has completed, you can use either one of two methods:
For the second method, Arm recommends that you enable GITS_FCTLR.CEE and that you configure the fault_handling, or error_recovery interrupt to be delivered to a core that can resolve Command queue issues. See 3.16 Reliability, Accessibility, and Serviceability for more information.