You copied the Doc URL to your clipboard.

How do I save the ITS collection table when powering down the GIC-500?

Article ID: 202637519

Published date: 06 Jun 2018

Last updated: -

Applies to: GIC-500 Generic Interrupt Controller

Problem/Question

How do I save the Interrupt Translation Service (ITS) collection table when powering down the GIC-500?

Scenario

When powering down the CoreLink GIC-500 Generic Interrupt Controller, with the exception of the Locality-specific Peripheral Interrupt (LPI) pending bits, software must preserve the state of the GIC-500. The state must be copied after the GIC-500 core power-down sequence is completed to ensure that the preserved pending information is up-to-date.

The process to power down the GIC-500 involves the following steps:

  1. Completing the processor power-down sequence for all cores.

  2. Setting the GICR_WAKER.Sleep bit to 1.

  3. Polling the GICR_WAKER register until the GICR_WAKER.Quiescent bit is set.

Consider the scenario where the system supports ITS. However, software cannot save the collection table of the GIC-500.

Answer

Reason

In GICv3, the ITS considers all physical LPIs that it generates to be members of collections. The data that is associated with a collection can be held in the ITS, in external memory, or in both. The following figure shows how these tables are used in the translation process:

translation_process.png

The GIC-500 uses only hardware collections, so they are not backed up in memory. Collection mappings are discarded when the ITS is quiesced by using the GITS_CTLR register.

Solution

Software cannot save the ITS collection table of the GIC-500. Software must map the collection table when powering up the GIC-500. Re-issuing the MAPC command has no effect on other mapping or LPI pending states. The LPI is dropped between re-enabling the ITS and rerunning the MAPC command.

Workaround

N/A

Example

N/A

Related Information

N/A

Was this page helpful? Yes No