AArch32 Registers | AArch64 Registers | AArch32 Instructions | AArch64 Instructions | Index by Encoding | External Registers | External Registers by Offset | Registers by Functional Group | Proprietary Notice

# GICD_SGIR, Software Generated Interrupt Register

The GICD_SGIR characteristics are:

## Purpose

Controls the generation of SGIs.

## Configuration

This register is available in all configurations of the GIC. If the GIC supports two Security states this register is Common.

## Attributes

GICD_SGIR is a 32-bit register.

## Field descriptions

31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
RES0 | TargetListFilter | CPUTargetList | NSATT | RES0 | INTID

#### Bits [31:26]

Reserved, RES0.

#### TargetListFilter, bits [25:24]

Determines how the Distributor processes the requested SGI.

TargetListFilter | Meaning
--- | ---
0b00 | Forward the interrupt to the CPU interfaces specified by GICD_SGIR.CPUTargetList.
0b01 | Forward the interrupt to all CPU interfaces except that of the PE that requested the interrupt.
0b10 | Forward the interrupt only to the CPU interface of the PE that requested the interrupt.
0b11 | Reserved.

#### CPUTargetList, bits [23:16]

When GICD_SGIR.TargetListFilter is 0b00, this field defines the CPU interfaces to which the Distributor must forward the interrupt.

Each bit of the field refers to the corresponding CPU interface. For example, CPUTargetList[0] corresponds to interface 0. Setting a bit to 1 indicates that the interrupt must be forwarded to the corresponding interface.

If this field is 0b00000000 when GICD_SGIR.TargetListFilter is 0b00, the Distributor does not forward the interrupt to any CPU interface.

#### NSATT, bit [15]

Specifies the required group of the SGI.

NSATT | Meaning
--- | ---
0b0 | Forward the SGI specified in the INTID field to a specified CPU interface only if the SGI is configured as Group 0 on that interface.
0b1 | Forward the SGI specified in the INTID field to a specified CPU interface only if the SGI is configured as Group 1 on that interface.

This field is writable only by a Secure access. Non-secure accesses can also generate Group 0 interrupts, if allowed to do so by GICD_NSACR0. Otherwise, Non-secure writes to GICD_SGIR generate an SGI only if the specified SGI is programmed as Group 1, regardless of the value of bit [15] of the write.

#### Bits [14:4]

Reserved, RES0.

#### INTID, bits [3:0]

The INTID of the SGI to forward to the specified CPU interfaces.

## Accessing GICD_SGIR

This register is used only when affinity routing is not enabled. When affinity routing is enabled, this register is RES0.

It is IMPLEMENTATION DEFINED whether this register has any effect when the forwarding of interrupts by the Distributor is disabled by GICD_CTLR.

#### GICD_SGIR can be accessed through the memory-mapped interfaces:

Component | Frame | Offset | Instance
--- | --- | --- | ---
GIC Distributor | Dist_base | 0x0F00 | GICD_SGIR

Accesses on this interface are WO.

AArch32 Registers | AArch64 Registers | AArch32 Instructions | AArch64 Instructions | Index by Encoding | External Registers | External Registers by Offset | Registers by Functional Group | Proprietary Notice

26/03/2024 09:49; 67c0ae5282a7629ba0ea0ba7267b43cd4f7939f6

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