The GICR_VPENDBASER characteristics are:
Specifies the base address of the memory that holds the virtual LPI Pending table for the currently scheduled virtual machine.
This register is part of the GIC Redistributor registers functional group.
This register is accessible as follows:
Security disabled | Secure | Non-secure |
---|---|---|
RW | RW | RW |
The effect of a write to this register is not guaranteed to be visible throughout the affinity hierarchy, as indicated by GICR_CTLR.RWP == 0.
Some or all RW fields of this register have defined reset values.
This register is provided only in GICv4 implementations.
GICR_VPENDBASER is a 64-bit register.
The GICR_VPENDBASER bit assignments are:
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
Valid | IDAI | PendingLast | Dirty | 0 | OuterCache | 0 | 0 | 0 | 0 | Physical_Address | |||||||||||||||||||||
Physical_Address | 0 | 0 | 0 | 0 | Shareability | InnerCache | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||
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 |
This bit controls whether the virtual LPI Pending table is valid:
Valid | Meaning |
---|---|
0 |
The virtual LPI Pending table is not valid. No vPE is scheduled. |
1 |
The virtual LPI Pending table is valid. A vPE is scheduled. |
Setting GICR_VPENDBASER.Valid == 1 when the associated CPU interface does not implement GICv4 is UNPREDICTABLE.
Software can determine whether a PE supports GICv3 or GICv4 by reading ID_AA64PFR0_EL1.
Writing a new value to any bit of GICR_VPENDBASER, other than GICR_VPENDBASER.Valid, when GICR_VPENDBASER.Valid==1 is UNPREDICTABLE.
When this register has an architecturally-defined reset value, this field resets to 0.
Implementation Defined Area Invalid. Indicates whether the IMPLEMENTATION DEFINED area in the virtual LPI Pending table is valid:
IDAI | Meaning |
---|---|
0 |
The IMPLEMENTATION DEFINED area is valid. |
1 |
The IMPLEMENTATION DEFINED area is invalid and all pending interrupt information is held in the architecturally defined part of the virtual LPI Pending table. |
For more information, see LPI Pending tables and Virtual LPI Configuration tables and virtual LPI Pending tables.
When this register has an architecturally-defined reset value, this field resets to a value that is architecturally UNKNOWN.
Indicates whether there are pending and enabled interrupts for the last scheduled vPE.
This value is set by the implementation when GICR_VPENDBASER.Valid has been written from 1 to 0 and is otherwise UNKNOWN.
PendingLast | Meaning |
---|---|
0 |
There are no pending and enabled interrupts for the last scheduled vPE. |
1 |
There is at least one pending interrupt for the last scheduled vPE. It is IMPLEMENTATION DEFINED whether this bit is set when the only pending interrupts for the last scheduled vPE are not enabled. ARM deprecates setting PendingLast to 1 when the only pending interrupts for the last scheduled virtual machine are not enabled. |
When the GICR_VPENDBASER.Valid bit is written from 0 to 1, then the state of this bit indicates to the hardware whether the virtual LPI Pending table contains no pending interrupts:
When this register has an architecturally-defined reset value, this field resets to 0.
Read-only. Indicates whether there are any virtual LPIs for the last scheduled vPE that have not completed. This field is used only when GICR_VPENDBASER.Valid==0, and is otherwise UNKNOWN:
Dirty | Meaning |
---|---|
0 |
There are no uncompleted virtual LPIs for the last scheduled vPE. |
1 |
There is at least one uncompleted virtual LPI for the last scheduled vPE. |
When GICR_VPENDBASER.Valid == 0, the Redistributor must ensure any outstanding pending virtual interrupts are cleared from the CPU interface.
Writing to GICR_VPENDBASER when GICR_VPENDBASER.Dirty==1 is UNPREDICTABLE.
When this register has an architecturally-defined reset value, this field resets to 0.
Reserved, RES0.
Indicates the Outer Cacheability attributes of accesses to virtual LPI Pending tables of vPEs targeting this Redistributor. The possible values of this field are:
OuterCache | Meaning |
---|---|
000 |
Memory type defined in InnerCache field. For Normal memory, Outer Cacheability is the same as Inner Cacheability. |
001 |
Normal Outer Non-cacheable. |
010 |
Normal Outer Cacheable Read-allocate, Write-through. |
011 |
Normal Outer Cacheable Read-allocate, Write-back. |
100 |
Normal Outer Cacheable Write-allocate, Write-through. |
101 |
Normal Outer Cacheable Write-allocate, Write-back. |
110 |
Normal Outer Cacheable Read-allocate, Write-allocate, Write-through. |
111 |
Normal Outer Cacheable Read-allocate, Write-allocate, Write-back. |
It is IMPLEMENTATION DEFINED whether this field has a fixed value or can be programmed by software. Implementing this field with a fixed value is deprecated.
The Cacheability, Outer Cacheability and Shareability fields are used for accesses to the virtual LPI Pending table of resident and non-resident vPEs.
If the OuterCacheabilty attribute of the virtual LPI Pending tables that are associated with vPEs targeting the same Redistributor are different, behavior is UNPREDICTABLE.
When this register has an architecturally-defined reset value, if this field is implemented as an RW field, it resets to a value that is architecturally UNKNOWN.
Reserved, RES0.
Bits [51:16] of the physical address containing the virtual LPI Pending table.
In implementations supporting fewer than 52 bits of physical address, unimplemented upper bits are RES0.
When this register has an architecturally-defined reset value, this field resets to a value that is architecturally UNKNOWN.
Reserved, RES0.
Indicates the Shareability attributes of accesses to the virtual LPI Pending table. The possible values of this field are:
Shareability | Meaning |
---|---|
00 |
Non-shareable. |
01 |
Inner Shareable. |
10 |
Outer Shareable. |
11 |
Reserved. Treated as 00. |
It is IMPLEMENTATION DEFINED whether this field has a fixed value or can be programmed by software. Implementing this field with a fixed value is deprecated.
The Cacheability, Outer Cacheability and Shareability fields are used for accesses to the virtual LPI Pending table of resident and non-resident vPEs.
If the Shareability attribute of the virtual LPI Pending tables that are associated with vPEs targeting the same Redistributor are different, behavior is UNPREDICTABLE.
When this register has an architecturally-defined reset value, if this field is implemented as an RW field, it resets to a value that is architecturally UNKNOWN.
Indicates the Inner Cacheability attributes of accesses to the virtual LPI Pending table. The possible values of this field are:
InnerCache | Meaning |
---|---|
000 |
Device-nGnRnE. |
001 |
Normal Inner Non-cacheable. |
010 |
Normal Inner Cacheable Read-allocate, Write-through. |
011 |
Normal Inner Cacheable Read-allocate, Write-back. |
100 |
Normal Inner Cacheable Write-allocate, Write-through. |
101 |
Normal Inner Cacheable Write-allocate, Write-back. |
110 |
Normal Inner Cacheable Read-allocate, Write-allocate, Write-through. |
111 |
Normal Inner Cacheable Read-allocate, Write-allocate, Write-back. |
The Cacheability, Outer Cacheability and Shareability fields are used for accesses to the virtual LPI Pending table of resident and non-resident vPEs.
If the InnerCacheabilty attribute of the virtual LPI Pending tables that are associated with vPEs targeting the same Redistributor are different, behavior is UNPREDICTABLE.
When this register has an architecturally-defined reset value, this field resets to a value that is architecturally UNKNOWN.
Reserved, RES0.
GICR_VPENDBASER can be accessed through its memory-mapped interface:
Component | Frame | Offset |
---|---|---|
GIC Redistributor | VLPI_base | 0x0078-0x007C |
18/04/2017 17:00
Copyright © 2010-2017 ARM Limited or its affiliates. All rights reserved. This document is Confidential.