Options for debugging the hypervisor.
Build an image for release (``y``) or debug (``n``).
In a **release** image, assertions are not enforced and debugging
features are disabled, including logs, serial console, and the
hypervisor shell.
Specify the host serial device used for hypervisor debugging.
This option is only valid if :option:`hv.DEBUG_OPTIONS.RELEASE` is set to ``n``.
This option impacts the content of ``vm.(legacy_vuart id="0").base`` when :option:`vm.vm_type` is ``SERVICE_VM``,
which specifies the PIO base for Service VM legacy vUART 0 (used for the console).
The PIO base for the Service VM's legacy vUART 0 is determined using these rules:
- If :option:`hv.DEBUG_OPTIONS.SERIAL_CONSOLE` is any available ttyS# in the native environment,
the PIO base of the Service VM legacy vUART 0 would be the same as the PIO base
corresponding to :option:`hv.DEBUG_OPTIONS.SERIAL_CONSOLE` in the native environment.
- Otherwise, a PIO base would be assigned to the Service VM legacy vUART 0 from the available PIO list.
This logic is implemented in the configuration tools.
Default loglevel for log messages stored in
memory. Value can be changed at runtime.
Default loglevel for the hypervisor North Peak
(NPK) log. Value can be changed at runtime.
Default loglevel for log messages
written to the serial console.
Options for enabling hypervisor features.
Specify if hypervisor relocation is enabled on
booting.
The CPU scheduler used by the hypervisor.
Specify if the ACRN hypervisor image can be booted using the
multiboot2 protocol. If set to ``n``, GRUB's multiboot2 is not available as a
boot option.
Force to disable #AC for Split-locked Access. If CPU has #AC for
split-locked access, HV enables it and VMs can't disable. Set this to enforce turning off that
#AC, for debugging purposes only.
Force to disable #GP for Split-locked Access. If CPU has #GP for
UC lock, HV enable it and VMs can't disable. Set this to enforce turn off that #GP, for community
developer only.
Enable to do fixup for TPM2 and SMBIOS for Security VM. If no
Security VM, setting this option to ``n``
If ``y``, permanently disables all interrupts in HV root mode.
Enable the Intel Resource Director Technology (RDT)
allocation feature and Code and Data Prioritization (CDP). If the board hardware does not
support RDT or CDP, setting this option to ``y`` is ignored.
Enable Hyper-V.
Enable nested virtualization.
Specify if the IOMMU enforces snoop behavior
of DMA operations.
Enable ACPI runtime parsing.
Enable L1 cache flush before VM entry. Default
value ``n``.
Force disabling software workaround for
Machine Check Error on Page Size Change.
Enable Inter-VM Shared memory feature.
Pseudo SRAM configuration.
Capacity of one stack (in bytes) used by a
physical core. Each core uses one stack for normal operation and another
three for specific exceptions.
The 2MB-aligned starting physical address of
the RAM region used by the hypervisor.
Size of the physical platform RAM. Default
value ``0x400000000``.
Capacity limits for static assigned data structure or
maximum supported resource.
Maximum number of User VMs allowed.
Highest PCI bus ID used during IOMMU
initialization.
Maximum number of IOAPICs.
Integer from 1 to 10.
Maximum number of PCI devices.
Integer from 1 to 1024.
Maximum number of interrupt lines per IOAPIC.
Integer from 1 to 120.
The pre-defined number of interrupt sources of all pass-through devices.
Pre-defined maximum number of virtual MSI-X table entries per device.
If this value is empty, then the default value will be calculated from information in the board XML file.
Integer value from 1 to 2048.
Maximum number of emulated MMIO regions.
Integer value from 1 to 128.
Segment, Bus, Device, and function of the GPU.
UEFI OS loader name.
Specify the VM type.
Specify the VM name shown in the
hypervisor console ``vm_list`` command.
string from 1 to 32 characters long.
Select all applicable flags for the VM.
List of pCPU that this VM's vCPUs are pinned to.
Class of Service for Cache Allocation Technology.
Refer SDM 17.19.2 for details, and use with caution.
Specify SGX Enclave Page Cache section base and size in byte. It must be page aligned.
Specify memory information for Service and User VMs.
Specify the VM vCPU priority for scheduling.
Specify the companion VM id of this VM.
General information for host kernel, boot
argument and memory.
Specify the vUART (aka COM) with the vUART ID by its ``id`` attribute.
Refer to :ref:`vuart_config` for detailed vUART settings.
Specify the console vUART (aka PCI based vUART) with the vUART ID by
its ``id`` attribute.
Specify the communication vUART (aka PCI based vUART) with the vUART ID by
its ``id`` attribute. When it is enabled, specify which target VM's vUART the current VM connects to.
MMIO resources to passthrough.
PCI devices number of the VM.
pt intx mapping.
PCI devices list.
Enable and disable PTM(Precision Timing Measurement) feature.
Service VM cannot use LAPIC passthrough unless GUEST_FLAG_NVMX_ENABLED is set.
The hypervisor configuration defines a working scenario and target
board by configuring the hypervisor image features and capabilities such as
setting up the log and the serial port.
VM configuration includes **scenario-based** VM configuration
information that is used to describe the characteristics and attributes for
all VMs in a user scenario. It also includes **launch script-based** VM
configuration information, where parameters are passed to the device model
to launch post-launched User VMs.
Per VM GUEST_FLAG_NVMX_ENABLED can be set only if CONFIG_NVMX_ENABLED is set.
vCAT can be enabled only when RDT_ENABLED is 'y' and CDP_ENABLED is 'n'
Per VM GUEST_FLAG_VCAT_ENABLED can be set only when RDT_ENABLED is 'y' and VCAT_ENABLED is 'y'.
For a vCAT VM, number of clos/vcpu_clos elements must be greater than 1!
For a vCAT VM, vcpu_clos cannot be set to CLOSID 0, CLOSID 0 is reserved to be used by hypervisor
For a vCAT VM, each clos/vcpu_clos must be less than L2/L3 COS_MAX!
For a vCAT VM, its clos/vcpu_clos elements cannot contain duplicate values
if RDT_ENABLED is 'y', there should not be any CLOS IDs overlap between a vCAT VM and any other VMs