SPRUIU1C July 2020 – February 2024 DRA821U , DRA821U-Q1
The Arm GIC-500 is responsible for detecting, managing and communicating system interrupts to the dual-core A72 cluster. The main difference between the Arm GIC-500 and previous Arm GIC versions is the direct communication with the CPU(s). Previously, an interrupt controller would set a pending bit to a CPU and that CPU would then have to query an interrupt controller MMR to find out what to do. Now, the Arm GIC-500 sends interrupts to a CPU via a dedicated message interface and the CPU communicates back about interrupts through the same interface. The CPU now uses writes and reads to system registers instead of over the memory interface. This leads to reduced latency and the ability to route interrupts to different CPUs based on a set of rules.
The Arm GIC-500 is divided into three main sections: