doc: reformat acrn-dm-parameters; definition list with horizontal rules

Signed-off-by: Benjamin Fitch <benjamin.fitch@intel.com>
This commit is contained in:
Benjamin Fitch 2021-03-04 16:23:24 -08:00 committed by fitchbe
parent c843d2bbc5
commit 453c76a6cd

View File

@ -10,399 +10,457 @@ emulation based on command line configurations, as introduced in
Here are descriptions for each of these ``acrn-dm`` command line parameters:
.. list-table::
:widths: 22 78
:header-rows: 0
``-A``, ``--acpi``
Create ACPI tables. With this option, DM will build an ACPI table into its
VMs F-Segment (0xf2400). This ACPI table includes full tables for RSDP,
RSDT, XSDT, MADT, FADT, HPET, MCFG, FACS, and DSDT. All these items are
programmed according to acrn-dm command line configuration and derived from
their default value.
* - ``-A``, ``--acpi``
- Create ACPI tables.
With this option, DM will build an ACPI table into its VMs F-Segment
(0xf2400). This ACPI table includes full tables for RSDP, RSDT, XSDT,
MADT, FADT, HPET, MCFG, FACS, and DSDT. All these items are programmed
according to acrn-dm command line configuration and derived from their
default value.
----
* - ``-B``, ``--bootargs <bootargs>``
- Set the User VM kernel command-line arguments.
The maximum length is 1023.
The bootargs string will be passed to the kernel as its cmdline.
``-B``, ``--bootargs <bootargs>``
Set the User VM kernel command-line arguments. The maximum length is 1023.
The bootargs string will be passed to the kernel as its cmdline.
Example::
Example::
-B "loglevel=7"
-B "loglevel=7"
specifies the kernel log level at 7
specifies the kernel log level at 7
* - ``--debugexit``
- Enable guest to write io port 0xf4 to exit guest. It's mainly used by
guest unit test.
----
* - ``-E``, ``--elf_file <elf image path>``
- This option is to define a static elf binary which could be loaded by
DM. DM will run elf as guest of ACRN.
``--debugexit``
Enable guest to write io port 0xf4 to exit guest. It's mainly used by guest
unit test.
* - ``--enable_trusty``
- Enable trusty for guest.
For Android guest OS, ACRN provides a VM environment with two worlds:
normal world and trusty world. The Android OS runs in the the normal
world. The trusty OS and security sensitive applications runs in the
trusty world. The trusty world can see the memory of normal world but
not vice versa. See :ref:`trusty_tee` for more information.
----
By default, the trusty world is disabled. Use this option to enable it.
``-E``, ``--elf_file <elf image path>``
This option is to define a static elf binary which could be loaded by DM.
DM will run elf as guest of ACRN.
* - ``-G``, ``--gvtargs <GVT_args>``
- ACRN implements GVT-g for graphics virtualization (aka AcrnGT). This
option allows you to set some of its parameters.
----
GVT_args format: ``low_gm_sz high_gm_sz fence_sz``
``--enable_trusty``
Enable trusty for guest. For Android guest OS, ACRN provides a VM
environment with two worlds: normal world and trusty world. The Android
OS runs in the the normal world. The trusty OS and security sensitive
applications runs in the trusty world. The trusty world can see the memory
of normal world but not vice versa. See :ref:`trusty_tee` for more
information.
Where:
By default, the trusty world is disabled. Use this option to enable it.
- ``low_gm_sz``: GVT-g aperture size, unit is MB
- ``high_gm_sz``: GVT-g hidden gfx memory size, unit is MB
- ``fence_sz``: the number of fence registers
----
Example::
``-G``, ``--gvtargs <GVT_args>``
ACRN implements GVT-g for graphics virtualization (aka AcrnGT). This
option allows you to set some of its parameters.
-G "10 128 6"
GVT_args format: ``low_gm_sz high_gm_sz fence_sz``
sets up 10Mb for GVT-g aperture, 128M for GVT-g hidden
memory, and 6 fence registers.
Where:
* - ``-h``, ``--help``
- Show a summary of commands.
- ``low_gm_sz``: GVT-g aperture size, unit is MB
- ``high_gm_sz``: GVT-g hidden gfx memory size, unit is MB
- ``fence_sz``: the number of fence registers
* - ``-i``, ``--ioc_node <ioc_mediator_parameters>``
- IOC (IO Controller) is a bridge of an SoC to communicate with Vehicle Bus.
It routes Vehicle Bus signals, for example extracted from CAN messages,
from IOC to the SoC and back, as well as controlling the onboard
peripherals from SoC. (The ``-i`` and ``-l`` parameters are only
available on a platform with IOC.)
Example::
IOC DM opens ``/dev/ptmx`` device to create a peer PTY devices, IOC DM uses
these to communicate with UART DM since UART DM needs a TTY capable
device as its backend.
-G "10 128 6"
The device model configuration command syntax for IOC mediator is::
sets up 10Mb for GVT-g aperture, 128M for GVT-g hidden memory, and 6
fence registers.
-i,[ioc_channel_path],[wakeup_reason]
-l,[lpc_port],[ioc_channel_path]
----
- ``ioc_channel_path`` is an absolute path for communication between IOC
mediator and UART DM.
- ``lpc_port`` is com1 or com2. IOC mediator needs one unassigned lpc
port for data transfer between User OS and Service OS.
- ``wakeup_reason`` is IOC mediator boot reason, where each bit represents
one wakeup reason.
``-h``, ``--help``
Show a summary of commands.
Currently the wakeup reason bits supported by IOC firmware are:
----
- ``CBC_WK_RSN_BTN`` (bit 5): ignition button.
- ``CBC_WK_RSN_RTC`` (bit 9): RTC timer.
- ``CBC_WK_RSN_DOR`` (bit 11): Car door.
- ``CBC_WK_RSN_SOC`` (bit 23): SoC active/inactive.
``-i``, ``--ioc_node <ioc_mediator_parameters>``
IOC (IO Controller) is a bridge of an SoC to communicate with Vehicle Bus.
It routes Vehicle Bus signals, for example extracted from CAN messages,
from IOC to the SoC and back, as well as controlling the onboard
peripherals from SoC. (The ``-i`` and ``-l`` parameters are only available
on a platform with IOC.)
As an example, the following commands are used to enable IOC feature, the
initial wakeup reason is ignition button, and cbc_attach uses ttyS1 for
TTY line discipline in User VM::
IOC DM opens ``/dev/ptmx`` device to create a peer PTY devices, IOC DM uses
these to communicate with UART DM since UART DM needs a TTY capable device
as its backend.
-i /run/acrn/ioc_$vm_name,0x20
-l com2,/run/acrn/ioc_$vm_name
The device model configuration command syntax for IOC mediator is::
* - ``--intr_monitor <intr_monitor_params>``
- Enable interrupt storm monitor for User VM. Use this option to prevent an interrupt
storm from the User VM.
-i,[ioc_channel_path],[wakeup_reason]
-l,[lpc_port],[ioc_channel_path]
usage: ``--intr_monitor threshold/s probe-period(s) delay_time(ms) delay_duration(ms)``
- ``ioc_channel_path`` is an absolute path for communication between IOC
mediator and UART DM.
- ``lpc_port`` is com1 or com2. IOC mediator needs one unassigned lpc
port for data transfer between User OS and Service OS.
- ``wakeup_reason`` is IOC mediator boot reason, where each bit represents
one wakeup reason.
Example::
Currently the wakeup reason bits supported by IOC firmware are:
--intr_monitor 10000,10,1,100
- ``CBC_WK_RSN_BTN`` (bit 5): ignition button.
- ``CBC_WK_RSN_RTC`` (bit 9): RTC timer.
- ``CBC_WK_RSN_DOR`` (bit 11): Car door.
- ``CBC_WK_RSN_SOC`` (bit 23): SoC active/inactive.
- ``10000``: interrupt rate larger than 10000/s will be treated as interrupt
storm
- ``10``: use the last 10s of interrupt data to detect an interrupt storm
- ``1``: when interrupts are identified as a storm, the next interrupt will
be delayed 1ms before being injected to the guest
- ``100``: after 100ms, we will cancel the interrupt injection delay and restore
to normal.
As an example, the following commands are used to enable IOC feature, the
initial wakeup reason is ignition button, and cbc_attach uses ttyS1 for TTY
line discipline in User VM::
* - ``-k``, ``--kernel <kernel_image_path>``
- Set the kernel (full path) for the User VM kernel. The maximum path length is
1023 characters. The DM handles bzImage image format.
-i /run/acrn/ioc_$vm_name,0x20
-l com2,/run/acrn/ioc_$vm_name
usage: ``-k /path/to/your/kernel_image``
----
* - ``-l``, ``--lpc <lpc_device_configuration>``
- (See ``-i``, ``--ioc_node``)
``--intr_monitor <intr_monitor_params>``
Enable interrupt storm monitor for User VM. Use this option to prevent an
interrupt storm from the User VM.
* - ``-m``, ``--memsize <memory_size>``
- Setup total memory size for User VM.
usage: ``--intr_monitor threshold/s probe-period(s) delay_time(ms) delay_duration(ms)``
memory_size format is: "<size>{K/k, B/b, M/m, G/g}", and size is an
integer.
Example::
usage: ``-m 4g``: set User VM memory to 4 gigabytes.
--intr_monitor 10000,10,1,100
* - ``--mac_seed <seed_string>``
- Set a platform unique string as a seed to generate the mac address.
Each VM should have a different "seed_string". The "seed_string" can
be generated by the following method where $(vm_name) contains the
name of the VM you are going to launch.
- ``10000``: interrupt rate larger than 10000/s will be treated as
interrupt storm
- ``10``: use the last 10s of interrupt data to detect an interrupt storm
- ``1``: when interrupts are identified as a storm, the next interrupt
will be delayed 1ms before being injected to the guest
- ``100``: after 100ms, we will cancel the interrupt injection delay and
restore to normal.
``mac=$(cat /sys/class/net/e*/address)``
----
``seed_string=${mac:9:8}-${vm_name}``
``-k``, ``--kernel <kernel_image_path>``
Set the kernel (full path) for the User VM kernel. The maximum path length
is 1023 characters. The DM handles bzImage image format.
* - ``--part_info <part_info_name>``
- Set guest partition info path.
usage: ``-k /path/to/your/kernel_image``
* - ``-r``, ``--ramdisk <ramdisk_image_path>``
- Set the ramdisk (full path) for the User VM. The maximum length is 1023.
The supported ramdisk format depends on your User VM kernel configuration.
----
usage: ``-r /path/to/your/ramdisk_image``
``-l``, ``--lpc <lpc_device_configuration>``
(See ``-i``, ``--ioc_node``)
* - ``-s``, ``--pci_slot <slot_config>``
- Setup PCI device configuration.
----
slot_config format is::
``-m``, ``--memsize <memory_size>``
Setup total memory size for User VM.
<bus>:<slot>:<func>,<emul>[,<config>]
<slot>[:<func>],<emul>[,<config>]
memory_size format is: "<size>{K/k, B/b, M/m, G/g}", and size is an
integer.
Where:
usage: ``-m 4g``: set User VM memory to 4 gigabytes.
- ``slot`` is 0..31
- ``func`` is 0..7
- ``emul`` is a string describing the type of PCI device e.g. virtio-net
- ``config`` is an optional device-dependent string, used for
configuration.
----
Examples::
``--mac_seed <seed_string>``
Set a platform-unique string as a seed to generate the mac address. Each
VM should have a different "seed_string". The "seed_string" can be
generated by the following method where $(vm_name) contains the name of the
VM you are going to launch.
-s 7,xhci,1-2,2-2
.. code-block::
This configuration means the virtual xHCI will appear in PCI slot 7
in User VM. Any physical USB device attached on 1-2 (bus 1, port 2) or
2-2 (bus 2, port 2) will be detected by User VM and be used as expected. To
determine which bus and port a USB device is attached, you could run
``lsusb -t`` in Service VM.
mac=$(cat /sys/class/net/e*/address)
seed_string=${mac:9:8}-${vm_name}
::
----
-s 9,virtio-blk,/root/test.img
``--part_info <part_info_name>``
Set guest partition info path.
This add virtual block in PCI slot 9 and use ``/root/test.img`` as the
disk image
----
* - ``-U``, ``--uuid <uuid>``
- Set UUID for a VM.
Every VM is identified by a UUID. You can define that UUID with this
option. If you don't use this option, a default one
("d2795438-25d6-11e8-864e-cb7a18b34643") will be used.
``-r``, ``--ramdisk <ramdisk_image_path>``
Set the ramdisk (full path) for the User VM. The maximum length is 1023.
The supported ramdisk format depends on your User VM kernel configuration.
usage::
usage: ``-r /path/to/your/ramdisk_image``
-u "42795636-1d31-6512-7432-087d33b34756"
----
set the newly created VM's UUID to ``42795636-1d31-6512-7432-087d33b34756``
``-s``, ``--pci_slot <slot_config>``
Setup PCI device configuration.
* - ``-v``, ``--version``
- Show Device Model version
slot_config format is::
* - ``--vsbl <vsbl_file_path>``
- Virtual Slim bootloader (vSBL) is the virtual bootloader supporting
booting of the User VM on the ACRN hypervisor platform. The vSBL design is
derived from Slim Bootloader, which follows a staged design approach
that provides hardware initialization and launching a payload that
provides the boot logic.
<bus>:<slot>:<func>,<emul>[,<config>]
<slot>[:<func>],<emul>[,<config>]
The vSBL image is installed on the Service OS root filesystem by the
service-os bundle, in ``/usr/share/acrn/bios/``. In the current design,
the vSBL supports booting Android guest OS or Linux guest OS using the
same vSBL image. For Android VM, the vSBL will load and verify trusty OS
first, and trusty OS will then load and verify Android OS according to
Android OS verification mechanism.
Where:
.. note::
vSBL is currently only supported on Apollo Lake processors.
- ``slot`` is 0..31
- ``func`` is 0..7
- ``emul`` is a string describing the type of PCI device, e.g.
virtio-net
- ``config`` is an optional device-dependent string, used for
configuration.
usage::
Examples::
--vsbl /usr/share/acrn/bios/VSBL.bin
-s 7,xhci,1-2,2-2
uses ``/usr/share/acrn/bios/VSBL.bin`` as the vSBL image
This configuration means the virtual xHCI will appear in PCI slot 7
in User VM. Any physical USB device attached on 1-2 (bus 1, port 2) or
2-2 (bus 2, port 2) will be detected by User VM and be used as expected. To
determine which bus and port a USB device is attached, you could run
``lsusb -t`` in Service VM.
* - ``--ovmf [w,]<ovmf_file_path>``
``--ovmf [w,]code=<ovmf_code_file>,vars=<ovmf_vars_file>``
- Open Virtual Machine Firmware (OVMF) is an EDK II based project to enable
UEFI support for Virtual Machines.
::
ACRN does not support off-the-shelf OVMF builds targeted for QEMU and
KVM. Compatible OVMF images are included in the source tree, under
``devicemodel/bios/``.
-s 9,virtio-blk,/root/test.img
usage::
This adds virtual block in PCI slot 9 and uses ``/root/test.img`` as the
disk image.
--ovmf /usr/share/acrn/bios/OVMF.fd
----
uses ``/usr/share/acrn/bios/OVMF.fd`` as the OVMF image
``-U``, ``--uuid <uuid>``
Set UUID for a VM. Every VM is identified by a UUID. You can define that
UUID with this option. If you don't use this option, a default one
("d2795438-25d6-11e8-864e-cb7a18b34643") will be used.
ACRN also supports using OVMF split images; ``OVMF_CODE.fd`` that contains
the OVMF firmware executable and ``OVMF_VARS.fd`` that contains the NV
data store.
usage::
usage::
-u "42795636-1d31-6512-7432-087d33b34756"
--ovmf code=/usr/share/acrn/bios/OVMF_CODE.fd,vars=/usr/share/acrn/bios/OVMF_VARS.fd
set the newly created VM's UUID to ``42795636-1d31-6512-7432-087d33b34756``
ACRN supports the option "w" for OVMF. To preserve all changes in OVMF's
NV data store section, use this option to enable writeback mode.
----
Writeback mode is only enabled for the ``OVMF_VARS.fd`` file in case of
OVMF split images, the firmware executable (``OVMF_CODE.fd``) remains
read-only.
``-v``, ``--version``
Show Device Model version.
usage::
----
--ovmf w,/usr/share/acrn/bios/OVMF.fd
``--vsbl <vsbl_file_path>``
Virtual Slim bootloader (vSBL) is the virtual bootloader supporting booting
of the User VM on the ACRN hypervisor platform. The vSBL design is derived
from Slim Bootloader, which follows a staged design approach that provides
hardware initialization and launching a payload that provides the boot
logic.
* - ``--cpu_affinity <list of pCPUs>``
- list of pCPUs assigned to this VM.
The vSBL image is installed on the Service OS root filesystem by the
service-os bundle, in ``/usr/share/acrn/bios/``. In the current design,
the vSBL supports booting Android guest OS or Linux guest OS using the same
vSBL image. For Android VM, the vSBL will load and verify trusty OS first,
and trusty OS will then load and verify Android OS according to Android OS
verification mechanism.
Example::
.. note::
vSBL is currently only supported on Apollo Lake processors.
--cpu_affinity 1,3
usage::
to assign physical CPUs (pCPUs) 1 and 3 to this VM.
--vsbl /usr/share/acrn/bios/VSBL.bin
* - ``--virtio_poll <poll_interval>``
- Enable virtio poll mode with poll interval xxx ns.
uses ``/usr/share/acrn/bios/VSBL.bin`` as the vSBL image.
Example::
----
--virtio_poll 1000000
``--ovmf [w,]<ovmf_file_path>`` ``--ovmf [w,]code=<ovmf_code_file>,vars=<ovmf_vars_file>``
Open Virtual Machine Firmware (OVMF) is an EDK II based project to enable
UEFI support for Virtual Machines.
enable virtio poll mode with poll interval 1ms.
ACRN does not support off-the-shelf OVMF builds targeted for QEMU and KVM.
Compatible OVMF images are included in the source tree, under
``devicemodel/bios/``.
* - ``--acpidev_pt <HID>``
- This option is to enable ACPI device passthrough support. The ``HID`` is a
mandatory parameter for this option which is the Hardware ID of the ACPI
device.
usage::
Example::
--ovmf /usr/share/acrn/bios/OVMF.fd
--acpidev_pt MSFT0101
uses ``/usr/share/acrn/bios/OVMF.fd`` as the OVMF image
To pass through a TPM (which HID is MSFT0101) ACPI device to a User VM.
ACRN also supports using OVMF split images; ``OVMF_CODE.fd`` that contains
the OVMF firmware executable and ``OVMF_VARS.fd`` that contains the NV
data store.
* - ``--mmiodev_pt <MMIO_Region>``
- This option is to enable MMIO device passthrough support. The ``MMIO_Region``
is a mandatory parameter for this option which is the MMIO resource of the
MMIO device. The ``MMIO_Region`` needs to be the base address followed by
the length of the region, both separated by a comma.
usage::
Example::
--ovmf code=/usr/share/acrn/bios/OVMF_CODE.fd,vars=/usr/share/acrn/bios/OVMF_VARS.fd
--mmiodev_pt 0xFED40000,0x00005000
ACRN supports the option "w" for OVMF. To preserve all changes in OVMF's
NV data store section, use this option to enable writeback mode.
To pass through a MMIO device to a User VM. The MMIO device has a MMIO region.
The base address of this region is 0xFED40000 and the size of the region
is 0x00005000.
Writeback mode is only enabled for the ``OVMF_VARS.fd`` file in case of
OVMF split images, the firmware executable (``OVMF_CODE.fd``) remains
read-only.
* - ``--vtpm2 <sock_path>``
- This option is to enable virtual TPM support. The sock_path is a mandatory
parameter for this option which is the path of swtpm socket fd.
usage::
* - ``-W, --virtio_msix``
- This option forces virtio to use single-vector MSI.
By default, any virtio-based devices will use MSI-X as its interrupt
method. If you want to use single-vector MSI interrupt, you can do so
using this option.
--ovmf w,/usr/share/acrn/bios/OVMF.fd
* - ``-Y, --mptgen``
- Disable MPtable generation.
The MultiProcessor Specification (MPS) for the x86 architecture is an
open standard describing enhancements to both operating systems and
firmware that allows them to work with x86-compatible processors in a
multi-processor configuration. MPS covers Advanced Programmable
Interrupt Controller (APIC) architectures.
----
By default, DM will create the MPtable for you. Use this option to
disable it.
``--cpu_affinity <list of pCPUs>``
list of pCPUs assigned to this VM.
* - ``--lapic_pt``
- This option is to create a VM with the local APIC (LAPIC) passed-through.
With this option, a VM is created with ``LAPIC_PASSTHROUGH`` and
``IO_COMPLETION_POLLING`` mode. This option is typically used for hard
real-time scenarios.
Example::
By default, this option is not enabled.
--cpu_affinity 1,3
* - ``--rtvm``
- This option is used to create a VM with real-time attributes.
With this option, a VM is created with ``GUEST_FLAG_RT`` and
``GUEST_FLAG_IO_COMPLETION_POLLING`` mode. This kind of VM is
generally used for soft real-time scenarios (without ``--lapic_pt``) or
hard real-time scenarios (with ``--lapic_pt``). With ``GUEST_FLAG_RT``,
the Service VM cannot interfere with this kind of VM when it is
running. It can only be powered off from inside the VM itself.
to assign physical CPUs (pCPUs) 1 and 3 to this VM.
By default, this option is not enabled.
----
* - ``--logger_setting <console,level=4;disk,level=4;kmsg,level=3>``
- This option sets the level of logging that is used for each log channel.
The general format of this option is ``<log channel>,level=<log level>``.
Different log channels are separated by a semi-colon (``;``). The various
log channels available are: ``console``, ``disk`` and ``kmsg``. The log
level ranges from 1 (``error``) up to 5 (``debug``).
``--virtio_poll <poll_interval>``
Enable virtio poll mode with poll interval xxx ns.
By default, the log severity level is set to 4 (``info``).
Example::
* - ``--pm_notify_channel <channel>``
- This option is used to define which channel could be used DM to
communicate with VM about power management event.
--virtio_poll 1000000
ACRN supports three channels: ``ioc``, ``power button`` and ``uart``.
enable virtio poll mode with poll interval 1ms.
usage::
----
--pm_notify_channel ioc
``--acpidev_pt <HID>``
This option is to enable ACPI device passthrough support. The ``HID`` is a
mandatory parameter for this option which is the Hardware ID of the ACPI
device.
Use ioc as power management event motify channel.
Example::
* - ``--pm_by_vuart [pty|tty],<node_path>``
- This option is used to set a user OS power management by virtual UART.
With acrn-dm UART emulation and hypervisor UART emulation and configure,
service OS can communicate with user OS through virtual UART. By this
option, service OS can notify user OS to shutdown itself by vUART.
--acpidev_pt MSFT0101
It need work with `--pm_notify_channel` and PCI UART setting (lpc and -l).
To pass through a TPM (which HID is MSFT0101) ACPI device to a User VM.
Example::
----
for general User VM, like LaaG or WaaG, it need set:
--pm_notify_channel uart --pm_by_vuart pty,/run/acrn/life_mngr_vm1
-l com2,/run/acrn/life_mngr_vm1
for RTVM, like RT-Linux:
--pm_notify_channel uart --pm_by_vuart tty,/dev/ttyS1
``--mmiodev_pt <MMIO_Region>``
This option is to enable MMIO device passthrough support. The
``MMIO_Region`` is a mandatory parameter for this option which is the MMIO
resource of the MMIO device. The ``MMIO_Region`` needs to be the base
address followed by the length of the region, both separated by a comma.
For different User VM, it can be configured as needed.
Example::
* - ``--windows``
- This option is used to run Windows User VMs. It supports Oracle
``virtio-blk``, ``virtio-net`` and ``virtio-input`` devices for Windows
guests with secure boot.
--mmiodev_pt 0xFED40000,0x00005000
usage::
To pass through a MMIO device to a User VM. The MMIO device has a MMIO
region. The base address of this region is 0xFED40000 and the size of the
region is 0x00005000.
--windows
----
* - ``--psram``
- This option enables Pseudo (Software) SRAM passthrough to the VM.
``--vtpm2 <sock_path>``
This option is to enable virtual TPM support. The sock_path is a mandatory
parameter for this option which is the path of swtpm socket fd.
usage::
----
--psram
``-W, --virtio_msix``
This option forces virtio to use single-vector MSI. By default, any
virtio-based devices will use MSI-X as its interrupt method. If you want
to use single-vector MSI interrupt, you can do so using this option.
----
``-Y, --mptgen``
Disable MPtable generation. The MultiProcessor Specification (MPS) for the
x86 architecture is an open standard describing enhancements to both
operating systems and firmware that allows them to work with x86-compatible
processors in a multi-processor configuration. MPS covers Advanced
Programmable Interrupt Controller (APIC) architectures.
By default, DM will create the MPtable for you. Use this option to disable
it.
----
``--lapic_pt``
This option is to create a VM with the local APIC (LAPIC) passed-through.
With this option, a VM is created with ``LAPIC_PASSTHROUGH`` and
``IO_COMPLETION_POLLING`` mode. This option is typically used for hard
real-time scenarios.
By default, this option is not enabled.
----
``--rtvm``
This option is used to create a VM with real-time attributes. With this
option, a VM is created with ``GUEST_FLAG_RT`` and
``GUEST_FLAG_IO_COMPLETION_POLLING`` mode. This kind of VM is generally
used for soft real-time scenarios (without ``--lapic_pt``) or hard
real-time scenarios (with ``--lapic_pt``). With ``GUEST_FLAG_RT``, the
Service VM cannot interfere with this kind of VM when it is running. It
can only be powered off from inside the VM itself.
By default, this option is not enabled.
----
``--logger_setting <console,level=4;disk,level=4;kmsg,level=3>``
This option sets the level of logging that is used for each log channel.
The general format of this option is ``<log channel>,level=<log level>``.
Different log channels are separated by a semi-colon (``;``). The various
log channels available are: ``console``, ``disk`` and ``kmsg``. The log
level ranges from 1 (``error``) up to 5 (``debug``).
By default, the log severity level is set to 4 (``info``).
----
``--pm_notify_channel <channel>``
This option is used to define which channel could be used DM to
communicate with VM about power management event.
ACRN supports three channels: ``ioc``, ``power button`` and ``uart``.
usage::
--pm_notify_channel ioc
Use ioc as power management event motify channel.
----
``--pm_by_vuart [pty|tty],<node_path>``
This option is used to set a user OS power management by virtual UART.
With acrn-dm UART emulation and hypervisor UART emulation and configure,
service OS can communicate with user OS through virtual UART. By this
option, service OS can notify user OS to shutdown itself by vUART.
It must work with `--pm_notify_channel` and PCI UART setting (lpc and -l).
Example::
for general User VM, such as LaaG or WaaG, it must set:
--pm_notify_channel uart --pm_by_vuart pty,/run/acrn/life_mngr_vm1
-l com2,/run/acrn/life_mngr_vm1
for RTVM, like RT-Linux:
--pm_notify_channel uart --pm_by_vuart tty,/dev/ttyS1
For a different User VM, it can be configured as needed.
----
``--windows``
This option is used to run Windows User VMs. It supports Oracle
``virtio-blk``, ``virtio-net`` and ``virtio-input`` devices for Windows
guests with secure boot.
usage::
--windows
----
``--psram``
This option enables Pseudo (Software) SRAM passthrough to the VM.
usage::
--psram