3.2.1. Discovery

ARM recommends that the system provides the operating system with three pointers to the start of the first Distributor, ITS and Redistributor pages, respectively. These three pages can be checked against the discovery registers that start at offset 0xFFD0 for all of these pages to verify they are pages of GIC registers. These registers allow discovery of whether the architecture version and, for GIC-500, whether the page contains the Distributor, ITS, or Redistributor registers. When this is known, additional information can be obtained from registers specific to each page.

For Redistributors, ARM recommends that GICR_TYPER is examined to determine:

This information allows you to iteratively search through all Redistributors, discovering all of them in a generic manner.

The GITS_TYPER register in the GIC-500 indicates that you must program the ITS with linear processor numbers, rather than physical target addresses. The GICR_TYPER contains the linear processor number that you must use to reference a Redistributor when programming the ITS.

Legacy code can still discover the identifier that the GIC-500 uses to reference the current core by reading from the GICD_ITARGETSR0.

Copyright © 2014 ARM. All rights reserved.ARM DDI 0516B