ARM GICv3 Flashcards

1
Q

Two Purposes

Distributor

GICv3

A

Interrupt prioritization
Distribution of SPIs and SGIs to the PEs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

configuration

Redistributor

GICv3

A

Provides configuration settings for PPIs, SGIs and LPIs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

When is interrupt 1023 received?

GICv3

A

In response to interrupt acknowledge when no appropriate pending interrupt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Description, Where

Affinity Routing

GICv3

A

Hierarchical address-based scheme to identify specific PE nodes for interrupt routing
Defined in MPIDR_EL1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Two ways

How are SPIs routed?

GICv3

A

Specific PE or any one PE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Two ways

Who can receive SGIs?

GICv3

A

All participating PEs except self or specific set of PEs in a cluster

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Four logical components

GICv3

A

A distributor
A redistributor for each PE
A CPU interface for each PE
Interrupt Translation Service

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Which components

LPI Routing

GICv3

A

Optional via ITS
Redistributor
CPU interface

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Which components

PPI Routing

GICv3

A

Redistributor
CPU interface

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Which components

SPI Routing

GICv3

A

Distributor
Redistributor
CPU interface

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Which components

SGI Routing

GICv3

A

Source CPU interface
Source Redistributor
Distributor
Redistributor
CPU interface

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

3 for each interrupt , 3 for all, 1 for pending

Seven functions of CPU programming interface

GICv3

A

Enabling interrupt handling
Acknowledging an interrupt.
Performing a priority drop.
Deactivation of an interrupt.
Setting an interrupt priority mask for the PE.
Defining the preemption policy for the PE.
Determining the highest priority pending interrupt for the PE.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Three components of CPU interface

GICv3

A

ICC: Supervisor to control physical interrupts
ICV: Superivsor to control virtual interrupts
ICH: Hypervisor to control pending interrupts

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Six steps of interrupt lifecycle

GICv3

A

Generate
Distribute to CPU interface
Deliver to PE
Activate
Priority Drop
Deactivation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Idle Priority

GICv3

A

Running priority when no interrupts are active

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Which interrupt identifiers are local to a PE

GICv3

A

PPI and SGI

17
Q

Which interrupt identifiers are global

GICv3

A

SPI and LPI

18
Q

Desciption, variation, PCIe

Message-based interrupt

GICv3

A

Interrupt from memory write
SPI or LPI
MSI and MSI-X for PCIe

19
Q

Two situations

Running priority

GICv3

A

Group priority of the highest priority active interrupt that didn’t get priority drop
Or idle priority

20
Q

Maintenance Interrupt

GICv3

A

A physical interrupt that signals key events associated with interrupt handling on a VM

21
Q

When is edge-triggered interrupt active?

GICv3

A

Another edge has not been detected since the interrupt is acknowledged

22
Q

When is level-trigged interrupt active?

GICv3

A

The level has been deasserted since the interrupt was acknowledged.

23
Q

When is edge-triggered interrupt active and pending?

GICv3

A

Another edge has been detected since the interrupt was acknowledged.

24
Q

When is a level-triggered interrupt active and pending?

GICv3

A

The level has not been deasserted since the interrupt was acknowledged.

25
Q

Purpose

Group Priority

GICv3

A

The GIC uses the group priority field to determine whether a pending interrupt has sufficient priority to preempt
execution on a PE

26
Q

Virtual FIQ and IRQ are what group?

GICv3

A

FIQ -> group 0, IRQ -> group1

27
Q

What controls whether vPE access to ICC_*_EL1 goes to virtual or physical interface?

GICv3

A

HCR_EL2.{IMO, FMO}

28
Q

4 Reasons for maintenance interrupts

GICv3

A

No pending interrupts in the list registers
List registers are (nearly) empty
EOI received for an entry that is not in the list registers
Enabling and disabling of virtual interrupt groups

29
Q

ICH_VTR_EL2

GICv3

A

Implementation details

30
Q

Purpose, One specific use

ICV_CTLR_EL1

GICv3

A

Control behavior of GIC virtual CPU interface
Virtual EOI Mode

31
Q

Purpose, two specific uses

ICH_VMCR_EL2

GICv3

A

Enables the hypervisor to save and restore the virtual machine view of the GIC state
EOI mode, priority mask

32
Q

what, purpose

ICH_LR<n>_EL2

A

List registers
Used by hypervisor to present a set of pending virtual interrupts to hardware

33
Q

Purpose

ICH_EISR_EL2

GICv3

A

End of interrupt status

34
Q

ICH_MISR_EL2

GICv3

A

VM maintenance interrupt status

35
Q

ICH_AP0R<n>_EL2

GICv3

A

Active priority status for group 0