vdev gic

Emulate an ARM standard Generic Interrupt Controller (GICv2 or GICv3)

Synopsis:

vdev gic options

Options:

gicc guest_address
Provide the guest-physical address of the virtual GIC's CPU registers.
gicr guest_address
GICv3 and more recent only. Provide the guest-physical address of the virtual GIC's redistributor registers.
If the gicr option is specified, the guest is presented with a GICv3 vdev (equivalent to specifying version 3; see version below).
host-gicd host_address
Deprecated. Use set host-paddr-gicd (see host-paddr-gicd in the VM Configuration Reference chapter).
host-gich host_address[/cpu/spacing]{,host_address[/cpu/spacing]}
Deprecated. Use set host-paddr-gich (see host-paddr-gich in the VM Configuration Reference chapter).
host-gicv host_address
Deprecated. Use set host-paddr-gicv (see host-paddr-gicv in the VM Configuration Reference chapter).
its address
Present the guest with virtualized Interrupt Translation Service (ITS) hardware at the guest-physical address specified by address.
ITS hardware isn't useful without LPIs, so if you specify the its option, you must also specify the num-lpis option.
If the its option is specified, the guest is presented with a GICv3 vdev (equivalent to specifying version 3; see version below).
loc address
Provide the guest-physical address of the GIC distributor registers.
msi address, base_intr,num_intrs
Create a Message Signaled Interrupt (MSI) device frame at the physical address specified by address.
The base_intr argument specifies the first interrupt number the frame allows, and num_intrs specifies the number of interrupts allowed. Thus, the highest interrupt allowed is base_intr + num_intrs - 1.
Use this option only if you're presenting a GICv2 to the guest. If a GICv3 is specified, MSI's are automatically available (see version below).
Note: If you are presenting a vdev or passing through a device that requires MSI or MSI-X, you must make an MSI mechanism available to the guest that uses this vdev or device.
num-lpis number
Set the number of Locality-specific Peripheral Interrupts (LPIs) that will be made available to the guest. The number argument must be a value from 8192 to 65536.
If the num-lpis option is specified, the guest is presented with a GICv3 vdev (equivalent to specifying version 3; see version below).
version number
Provide the version number of the virtual GIC to be presented to the guest. Currently supported values for number are 2 and 3; 4 is permitted, but GICv4 is not yet supported.
If this option isn't specified, the default: 2 (two) is assumed, unless num-lpis or gicr is specified (see gicr and num-lpis above).

For a list of options available to all vdevs, see Common vdev options at the beginning of this chapter.

Description:

ARM only. Implicit (see Implicit vdevs).

The gic virtual device emulates an ARM standard Generic Interrupt Controller (GICv2 or GICv3).

Since the gic vdev is an implicit vdev, you need to add configuration information for it only if you want to:

If none of gicc, gicd, or loc is specified, the qvm process assumes the ARM foundation model addresses; for GICv2 these addresses are:

gicc=0x2f002000, gicd=0x2f001000

For a GICv3 or GICv4, the qvm process assumes the following addresses:

gicc=0x2c000000, gicd=0x2f000000, gicr=0x2f100000

If some addresses are specified but others missing, the qvm process places the gicc registers after the gicd registers (GICv2), or after the gicr registers (GICv3 and GICv4).

For more information about the system page asinfo (Address Space Information) section, see asinfo in the System Page chapter in Building Embedded Systems.

Configuration examples

Deprecated. See About the set host-* arguments in the VM Configuration Reference chapter.