Appendix: Legacy operation

GICv3 made several changes to the programmers’ model compared to GICv2. To support legacy software written for GICv2 systems, GICv3 has optional support for legacy operation.

Support for legacy operation is optional and DEPRECATED. Several of the latest GIC implementations from Arm no longer support it.

The programmers' model that is used is controlled by the Affinity Routing Enable (ARE) bits in GICD_CTRL:

  • When ARE==0, affinity routing is disabled (legacy operation).
  • When ARE==1, affinity routing is enabled (GICv3 operation).

In a system with two Security states, affinity routing can be controlled separately for each Security state. Only specific combinations are permitted, and these are as follows: