GICR_NSACR, Non-secure Access Control Register

The GICR_NSACR characteristics are:

Purpose

Enables Secure software to permit Non-secure software to create SGIs targeting the PE connected to this Redistributor by writing to ICC_SGI1R_EL1, ICC_ASGI1R_EL1 or ICC_SGI0R_EL1.

See Forwarding an SGI to a target PE for more information.

This register is part of the GIC Redistributor registers functional group.

Usage constraints

This register is accessible as follows:

Security disabledSecureNon-secure
RWRWRW

When GICD_CTLR.DS == 1, this register is RAZ/WI.

When GICD_CTLR.DS == 0, this register is Secure, and is RAZ/WI to Non-secure accesses.

This register is used when affinity routing is enabled. When affinity routing is not enabled for the Security state of the interrupt, GICD_NSACR<n> with n=0 provides equivalent functionality.

This register does not support PPIs.

Configuration

RW fields in this register reset to architecturally UNKNOWN values.

For a description on when a write to ICC_SGI0R_EL1, ICC_SGI1R_EL1 or ICC_ASGI1R_EL1 is permitted to generate an interrupt see Use of control registers for SGI forwarding.

Attributes

GICR_NSACR is a 32-bit register.

Field descriptions

The GICR_NSACR bit assignments are:

313029282726252423222120191817161514131211109876543210
NS_access<x>, bits [2x+1:2x], for x = 0 to 15

NS_access<x>, bits [2x+1:2x], for x = 0 to 15

Configures the level of Non-secure access permitted when the SGI is in Secure Group 0 or Secure Group 1, as defined from GICR_IGROUPR0 and GICR_IGRPMODR0. A field is provided for each SGI. The possible values of each 2-bit field are:

NS_access<x>Meaning
00

Non-secure writes are not permitted to generate Secure Group 0 SGIs or Secure Group 1 SGIs.

01

Non-secure writes are permitted to generate a Secure Group 0 SGI.

10

As 0b01, but additionally Non-secure writes to are permitted to generate a Secure Group 1 SGI.

11

Reserved.

If the field is programmed to the reserved value, then the hardware will treat the field as if it has been programmed to an IMPLEMENTATION DEFINED choice of the valid values. However, to maintain the principle that as the value increases additional accesses are permitted ARM strongly recommends that implementations treat this value as 10. It is IMPLEMENTATION DEFINED whether the value read back is the value programmed or the valid value chosen.

When this register has an architecturally-defined reset value, this field resets to a value that is architecturally UNKNOWN.

Accessing the GICR_NSACR

GICR_NSACR can be accessed through its memory-mapped interface:

ComponentFrameOffset
GIC RedistributorSGI_base 0x0E00



28/09/2017 08:24

Copyright © 2010-2017 ARM Limited or its affiliates. All rights reserved. This document is Non-Confidential.