Skip to content

Commit 21a5b30

Browse files
Geoffroy Van Cutsemdbkinder
andcommitted
Update add acrn-dm parameter descriptions
Co-Authored-By: dbkinder <david.b.kinder@intel.com>
1 parent c45300f commit 21a5b30

File tree

3 files changed

+231
-224
lines changed

3 files changed

+231
-224
lines changed

doc/developer-guides/hld/hld-devicemodel.rst

Lines changed: 2 additions & 222 deletions
Original file line numberDiff line numberDiff line change
@@ -90,228 +90,8 @@ options:
9090
--intr_monitor: enable interrupt storm monitor, params:
9191
threshold/s,probe-period(s),delay_time(ms),delay_duration(ms)
9292
93-
acrn-dm parameters
94-
==================
95-
96-
Here are further descriptions for each of these parameters:
97-
98-
A, acpi
99-
Create ACPI tables
100-
101-
With this option, DM will build an ACPI table into its VMs F-Segment
102-
(0xf2400). This ACPI table includes full tables for RSDP, RSDT, XSDT,
103-
MADT, FADT, HPET, MCFG, FACS, and DSDT. All these items are programmed
104-
according to acrn-dm command line configuration and derived from their
105-
default value.
106-
107-
h, help
108-
Show a summary of commands
109-
110-
W, virtio_msix
111-
This option forces virtio to use single-vector MSI
112-
113-
By default, any virtio-based devices will use MSI-X as its interrupt
114-
method. If you want to use single-vector MSI interrupt, you can do so
115-
using this option.
116-
117-
Y, mptgen
118-
Disable MPtable generation
119-
120-
The MultiProcessor Specification (MPS) for the x86 architecture is an
121-
open standard describing enhancements to both operating systems and
122-
firmware that allows them to work with x86-compatible processors in a
123-
multi-processor configuration. MPS covers Advanced Programmable
124-
Interrupt Controller (APIC) architectures.
125-
126-
By default, DM will create the MPtable for you. Use this option to
127-
disable it.
128-
129-
v, version
130-
Show DM version
131-
132-
enable_trusty
133-
Enable trusty for guest
134-
135-
For Android guest OS, ACRN provides a VM environment with two worlds:
136-
normal world and trusty world. The Android OS runs in the the normal
137-
world. The trusty OS and security sensitive applications runs in the
138-
trusty world. The trusty world can see the memory of normal world but
139-
not vice versa. See :ref:`trusty_tee` for more information.
140-
141-
By default, the trusty world is disabled. Use this option to enable it.
142-
143-
ptdev_no_reset
144-
Disable reset check for pci device
145-
146-
When assigning a PCI device as a passthrough device, we will reset it
147-
first to get it to a valid device state. So if the device doesn't have
148-
the reset capability, the passthrough will fail. The PCI device reset
149-
can be disabled using this option.
150-
151-
k, kernel <kernel_image_path>
152-
Set the kernel (full path) for the UOS kernel. The maximum length is
153-
1023. The DM handles bzImage image format.
154-
155-
usage: ``-k /path/to/your/kernel_image``
156-
157-
r, ramdisk <ramdisk_image_path>
158-
Set the ramdisk (full path) for the UOS. The maximum length is 1023.
159-
The supported ramdisk format depends on your UOS kernel configuration.
160-
161-
usage: ``-r /path/to/your/ramdisk_image``
162-
163-
B, bootargs <bootargs>
164-
Set the UOS kernel command-line arguments. The maximum length is 1023.
165-
The bootargs string will be passed to the kernel as its cmdline.
166-
167-
Example: ``-B "loglevel=7"``: it specifies the kernel log level at 7
168-
169-
c, ncpus <cpus>
170-
Set number of CPUs for UOS. This number is an integer and must not be
171-
more than the total number of CPUs in the system, minus one (which is
172-
used by the SOS).
173-
174-
p, pincpu <vcpu:hostcpu>
175-
Pin host CPU to appointed vCPU:
176-
177-
- vcpu is the ID of the CPU seen by the UOS, and
178-
- hostcpu is the physical CPU ID on the system.
179-
180-
Example: ``-p "1:2"`` means pin the 2nd physical cpu to 1st vcpu in UOS
181-
182-
s, pci_slot <slot_config>
183-
Setup PCI device configuration
184-
185-
slot_config format is::
186-
187-
<bus>:<slot>:<func>,<emul>[,<config>]
188-
<slot>[:<func>],<emul>[,<config>]
189-
190-
Where:
191-
192-
- ``slot`` is 0..31
193-
- ``func`` is 0..7
194-
- ``emul`` is a string describing the type of PCI device e.g. virtio-net
195-
- ``config`` is an optional device-dependent string, used for
196-
configuration.
197-
198-
Examples::
199-
200-
-s 7,xhci,1-2,2-2
201-
202-
This configuration means the virtual xHCI will appear in PCI slot 7
203-
in UOS. Any physical USB device attached on 1-2 (bus 1, port 2) or
204-
2-2 (bus 2, port 2) will be detected by UOS and be used as expected. To
205-
determine which bus and port a USB device is attached, you could run
206-
`lsusb -t` in SOS.
207-
208-
::
209-
210-
-s 9,virtio-blk,/root/test.img
211-
212-
This add virtual block in PCI slot 9 and use "/root/test.img" as the
213-
disk image
214-
215-
m, memsize <memory_size>
216-
Setup total memory size for UOS
217-
218-
memory_size format is: "<size>{K/k, B/b, M/m, G/g}", and size is an
219-
integer.
220-
221-
usage: ``-m 4g``: set UOS memory to 4 gigabytes.
222-
223-
U, uuid <uuid>
224-
Set UUID for a VM
225-
226-
Every VM is identified by a UUID. You can define that UUID with this
227-
option. If you don't use this option, a default one
228-
("d2795438-25d6-11e8-864e-cb7a18b34643") will be used.
229-
230-
usage::
231-
232-
-u "42795636-1d31-6512-7432-087d33b34756"
233-
234-
set the newly created VM's UUID to "42795636-1d31-6512-7432-087d33b34756"
235-
236-
i, ioc_node <ioc_mediator_parameters>
237-
(See **l, lpc** description)
238-
239-
l, lpc <lpc_device_configuration>
240-
IOC (IO Controller) is a bridge of an SoC to communicate with Vehicle Bus.
241-
It routes Vehicle Bus signals, for example extracted from CAN messages,
242-
from IOC to the SoC and back, as well as controlling the onboard
243-
peripherals from SoC. (These parameters are only available on a
244-
platform with IOC.)
245-
246-
IOC DM opens ``/dev/ptmx`` device to create a peer PTY devices, IOC DM uses
247-
these to communicate with UART DM since UART DM needs a TTY capable
248-
device as its backend.
249-
250-
The device model configuration command syntax for IOC mediator is::
251-
252-
-i,[ioc_channel_path],[wakeup_reason]
253-
-l,[lpc_port],[ioc_channel_path]
254-
255-
- ``ioc_channel_path`` is an absolute path for communication between IOC
256-
mediator and UART DM.
257-
- ``lpc_port`` is com1 or com2. IOC mediator needs one unassigned lpc
258-
port for data transfer between User OS and Service OS.
259-
- ``wakeup_reason`` is IOC mediator boot up reason, where each bit represents
260-
one wakeup reason.
261-
262-
Currently the wakeup reason bits supported by IOC firmware are:
263-
264-
- ``CBC_WK_RSN_BTN``(bit 5): ignition button.
265-
- ``CBC_WK_RSN_RTC``(bit 9): RTC timer.
266-
- CBC_WK_RSN_DOR(bit 11): Car door.
267-
- ``CBC_WK_RSN_SOC``(bit 23): SoC active/inactive.
268-
269-
As an example, the following commands are used to enable IOC feature, the
270-
initial wakeup reason is ignition button, and cbc_attach uses ttyS1 for
271-
TTY line discipline in UOS::
272-
273-
-i /run/acrn/ioc_$vm_name,0x20
274-
-l com2,/run/acrn/ioc_$vm_name
275-
276-
vsbl <vsbl_file_path>
277-
Virtual Slim bootloader (vSBL) is the virtual bootloader supporting
278-
booting of the UOS on the ACRN hypervisor platform. The vSBL design is
279-
derived from Slim Bootloader, which follows a staged design approach
280-
that provides hardware initialization and launching a payload that
281-
provides the boot logic.
282-
283-
The vSBL image is installed on the Service OS root filesystem by the
284-
service-os bundle, in ``/usr/share/acrn/bios/``. In the current design,
285-
the vSBL supports booting Android guest OS or Linux guest OS using the
286-
same vSBL image. For Android VM, the vSBL will load and verify trusty OS
287-
first, and trusty OS will then load and verify Android OS according to
288-
Android OS verification mechanism.
289-
290-
usage::
291-
292-
--vsbl /usr/share/acrn/bios/VSBL.bin
293-
294-
uses ``/usr/share/acrn/bios/VSBL.bin`` as the vSBL image
295-
296-
G, gvtargs <GVT_args>
297-
ACRN implements GVT-g for graphics virtualization (aka AcrnGT). This
298-
option allows you to set some of its parameters.
299-
300-
GVT_args format: ``gvt_high_gm_sz gvt_low_gm_sz gvt_fence_sz``
301-
302-
Where:
303-
304-
- ``gvt_high_gm_sz``: GVT-g aperture size, unit is MB
305-
- ``gvt_low_gm_sz``: GVT-g hidden gfx memory size, unit is MB
306-
- ``gvt_fence_sz``: the number of fence registers
307-
308-
Example::
309-
310-
-G "10 128 6"
311-
312-
sets up 10Mb for GVT-g aperture, 128M for GVT-g hidden
313-
memory, and 6 fence registers.
314-
93+
See :ref:`acrn-dm_parameters` for more detailed descriptions of these
94+
configuration options.
31595

31696
Here's an example showing how to run a VM with:
31797

0 commit comments

Comments
 (0)