set

Set the value of a configuration variable

Synopsis:

set var val

Options:

The set option supports the following variable types:

Note: For descriptions of all variables (i.e., var values) supported on a given platform, including the variable types (i.e., possible val values), see Configuration variables.

Description:

Each set var val argument pair defines a variable setting that applies to an implicit context. This is different than the VM configuration file notion of a context, which is a group of related configuration options (for details, see Contexts in the VM configuration syntax topic). The implicit context to which each variable applies is noted in its description. Supported implicit contexts include:

You can display the currently permitted variables and their contexts. For example, from a shell prompt in the host, type:

# qvm set ?

You should see the variable names along with their types and contexts in a listing like the following:

allowed set variables
    grow-heap                      (address, global)
    legacy-free                    (boolean, guest)
    message-block-timeout          (number, global)
    posted-interrupts              (boolean, guest)
    virtual-interrupts             (boolean, guest)

A question mark (?) is a shell wildcard character, so you may need to escape it. If a vdev defines its own variables, ? will list these only after a vdev option has loaded the vdev where these variables are specified.

About the set host-* arguments

The set host-* arguments separate the configuration of the host system from the configuration of the VMs. You can have a single configuration file that provides a host-specific configuration that can be re-used for multiple VMs.

For example, for a fictious “foo” SoC, you can create a foo.qvmconf file that includes:

set host-ppi-hcnt 16
set host-ppi-vcnt 19
set host-ppi-gic-hwassist 24
set host-paddr-gich 0x0ac01000

which you re-use for all your VMs, in addition to the VM-specific configuration files. For example:

qvm @guest1.qvmconf @foo.qvmconf 
qvm @guest2.qvmconf @foo.qvmconf
Note: The host-* variables along with gic-hwassist apply to only the vdev gic. They don't affect other vdevs.

Below is an example of how the set option's host-paddr-gic* arguments are used for a Renesas R-Car H3 board:

set host-paddr-gicv 0xf1060000
set host-paddr-gich 0xf1040000,0xf1050000/0/0x200

where host-paddr-gicv 0xf1060000 specifies the host-physical address of the GIC virtual CPU registers, and the host-paddr-gich line specifies the location of the hypervisor control (GICH) registers:

Note: Other boards might use different values. Check your board manufacturer's documentation.