config_tools: merge data in launch XMLs into scenario XMLs

Splitting the definitions of a post-launched VM into two files, namely the
scenario XML and launch XML, introduces duplicated field in both files and
leads to a high probability of having inconsistencies between them (see
issue #7156 as an example). Further more, this split has also adds much
complexity to the configurator which has to either hide some of the items
from user interfaces or synchronize different fields upon changes.

The advantage of the split, however, is not widely adopted. Having a
separate XML capturing the VM definition tweakable in the service VM at
runtime seems to give users more flexibility to redefine a VM without
recompiling the hypervisor. But that is not a common practice in the
industry segment; instead it is preferred to have a static scenario
definition to make sure that all resources are allocated carefully in a
fixed manner in order for better determinism.

As a result, this patch merges the fields in launch XMLs into the schema of
scenario XMLs. Some fields are post-launched VM specific and thus added,
while the others have similar items in scenario XMLs today.

The launch script generator is also updated accordingly to generate launch
scripts from the new scenario XMLs (which now contain the same amount of
information as previous launch XMLs).

Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
This commit is contained in:
Junjie Mao 2022-02-28 19:53:43 +08:00 committed by acrnsi-robot
parent 678879fd34
commit 0d84ecc4a1
38 changed files with 3113 additions and 3386 deletions

View File

@ -1,154 +0,0 @@
<acrn-config board="cfl-k700-i7" scenario="hybrid">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>SAFETY_VM0</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>PRE_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>SAFETY_VM0</name>
<cpu_affinity>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<epc_section>
<base>0</base>
<size>0</size>
</epc_section>
<memory>
<start_hpa>0x100000000</start_hpa>
<size>0x20000000</size>
<start_hpa2>0x0</start_hpa2>
<size_hpa2>0x0</size_hpa2>
</memory>
<os_config>
<kern_type>KERNEL_ELF</kern_type>
<kern_mod>Zephyr_ElfImage</kern_mod>
<ramdisk_mod/>
<bootargs/>
</os_config>
<console_vuart>COM Port 1</console_vuart>
<mmio_resources>
<TPM2>n</TPM2>
<p2sb>n</p2sb>
</mmio_resources>
<pt_intx> </pt_intx>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check
quiet loglevel=3 i915.nuclear_pageflip=1 swiotlb=131072
</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
hybrid_launch_2user_vm.xml

View File

@ -1,96 +1,183 @@
<acrn-config board="cfl-k700-i7" scenario="hybrid" user_vm_launcher="2">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<poweroff_channel desc="the method of power off User VM"/>
<allow_trigger_s5 desc="allow this vm to trigger s5 shutdown flow, this flag works with poweroff_channel 'vuart1(pty)' and 'vuart1(tty)' only.">n</allow_trigger_s5>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="cfl-k700-i7" scenario="hybrid">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>SAFETY_VM0</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>PRE_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>SAFETY_VM0</name>
<cpu_affinity>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memrory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, formated as hv:/shm_region_0,2097152"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] (rev 02)</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM2</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<poweroff_channel desc="the method of power off User VM"/>
<allow_trigger_s5 desc="allow this vm to trigger s5 shutdown flow, this flag works with poweroff_channel 'vuart1(pty)' and 'vuart1(tty)' only.">n</allow_trigger_s5>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<epc_section>
<base>0</base>
<size>0</size>
</epc_section>
<memory>
<start_hpa>0x100000000</start_hpa>
<size>0x20000000</size>
<start_hpa2>0x0</start_hpa2>
<size_hpa2>0x0</size_hpa2>
</memory>
<os_config>
<kern_type>KERNEL_ELF</kern_type>
<kern_mod>Zephyr_ElfImage</kern_mod>
<ramdisk_mod/>
<bootargs/>
</os_config>
<console_vuart>COM Port 1</console_vuart>
<mmio_resources>
<TPM2>n</TPM2>
<p2sb>n</p2sb>
</mmio_resources>
<pt_intx> </pt_intx>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check
quiet loglevel=3 i915.nuclear_pageflip=1 swiotlb=131072
</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] (rev 02)</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</acrn-config>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console>@stdio:stdio_port</console>
<network>YaaG</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
</vm>
</acrn-config>

View File

@ -101,7 +101,6 @@
<pci_devs>
<pci_dev>00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)</pci_dev>
<pci_dev>00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM (rev 10)</pci_dev>
<pci_dev/>
</pci_devs>
</vm>
<vm id="1">
@ -140,7 +139,6 @@
</mmio_resources>
<pci_devs>
<pci_dev>00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)</pci_dev>
<pci_dev/>
</pci_devs>
</vm>
</acrn-config>

View File

@ -1,169 +0,0 @@
<acrn-config board="cfl-k700-i7" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
shared_launch_6user_vm.xml

View File

@ -1,284 +1,252 @@
<acrn-config board="cfl-k700-i7" scenario="shared" user_vm_launcher="6">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<poweroff_channel desc="the method of power off User VM"/>
<allow_trigger_s5 desc="allow this vm to trigger s5 shutdown flow, this flag works with poweroff_channel 'vuart1(pty)' and 'vuart1(tty)' only.">n</allow_trigger_s5>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="cfl-k700-i7" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] (rev 02)</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] (rev 02)</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">PREEMPT-RT LINUX</user_vm_type>
<vm_name>POST_RT_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">Hard RT</rtos_type>
<mem_size desc="User VM memory size in MByte">1024</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<poweroff_channel desc="the method of power off User VM"/>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<allow_trigger_s5 desc="allow this vm to trigger s5 shutdown flow, this flag works with poweroff_channel 'vuart1(pty)' and 'vuart1(tty)' only.">n</allow_trigger_s5>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>1024</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">RT</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./core-image-weston-intel-corei7-64.wic</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>RT</network>
<input/>
<block>./core-image-weston-intel-corei7-64.wic</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="3">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM2</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<poweroff_channel desc="the method of power off User VM"/>
<allow_trigger_s5 desc="allow this vm to trigger s5 shutdown flow, this flag works with poweroff_channel 'vuart1(pty)' and 'vuart1(tty)' only.">n</allow_trigger_s5>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG3</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG3</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="4">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM3</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<poweroff_channel desc="the method of power off User VM"/>
<allow_trigger_s5 desc="allow this vm to trigger s5 shutdown flow, this flag works with poweroff_channel 'vuart1(pty)' and 'vuart1(tty)' only.">n</allow_trigger_s5>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG4</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG4</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="5">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM4</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<poweroff_channel desc="the method of power off User VM"/>
<allow_trigger_s5 desc="allow this vm to trigger s5 shutdown flow, this flag works with poweroff_channel 'vuart1(pty)' and 'vuart1(tty)' only.">n</allow_trigger_s5>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG5</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG5</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="6">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM5</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<poweroff_channel desc="the method of power off User VM"/>
<allow_trigger_s5 desc="allow this vm to trigger s5 shutdown flow, this flag works with poweroff_channel 'vuart1(pty)' and 'vuart1(tty)' only.">n</allow_trigger_s5>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG6</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG6</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</acrn-config>
</vm>
</acrn-config>

View File

@ -1,156 +0,0 @@
<acrn-config board="generic_board" scenario="hybrid">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>SAFETY_VM0</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>PRE_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>SAFETY_VM0</name>
<cpu_affinity>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<epc_section>
<base>0</base>
<size>0</size>
</epc_section>
<memory>
<start_hpa>0x100000000</start_hpa>
<size>0x20000000</size>
<start_hpa2>0x0</start_hpa2>
<size_hpa2>0x0</size_hpa2>
</memory>
<os_config>
<kern_type>KERNEL_ELF</kern_type>
<kern_mod>Zephyr_ElfImage</kern_mod>
<ramdisk_mod/>
<bootargs/>
</os_config>
<console_vuart>COM Port 1</console_vuart>
<mmio_resources>
<TPM2>n</TPM2>
<p2sb>n</p2sb>
</mmio_resources>
<pt_intx> </pt_intx>
<pci_devs>
<pci_dev/>
</pci_devs>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
hybrid_launch_2user_vm.xml

View File

@ -1,92 +1,183 @@
<acrn-config board="generic_board" scenario="hybrid" user_vm_launcher="2">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="generic_board" scenario="hybrid">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>SAFETY_VM0</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>PRE_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>SAFETY_VM0</name>
<cpu_affinity>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memrory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, formated as hv:/shm_region_0,2097152"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation Device 9a49 (rev 01)</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM2</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<epc_section>
<base>0</base>
<size>0</size>
</epc_section>
<memory>
<start_hpa>0x100000000</start_hpa>
<size>0x20000000</size>
<start_hpa2>0x0</start_hpa2>
<size_hpa2>0x0</size_hpa2>
</memory>
<os_config>
<kern_type>KERNEL_ELF</kern_type>
<kern_mod>Zephyr_ElfImage</kern_mod>
<ramdisk_mod/>
<bootargs/>
</os_config>
<console_vuart>COM Port 1</console_vuart>
<mmio_resources>
<TPM2>n</TPM2>
<p2sb>n</p2sb>
</mmio_resources>
<pt_intx> </pt_intx>
<pci_devs/>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation Device 9a49 (rev 01)</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console>@stdio:stdio_port</console>
<network>YaaG</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
</vm>
</acrn-config>

View File

@ -101,7 +101,6 @@
<pci_devs>
<pci_dev>00:17.0 SATA controller: Intel Corporation Device a0d3 (rev 20)</pci_dev>
<pci_dev>58:00.0 Ethernet controller: Intel Corporation Device 15f2 (rev 03)</pci_dev>
<pci_dev/>
</pci_devs>
</vm>
<vm id="1">
@ -140,7 +139,6 @@
</mmio_resources>
<pci_devs>
<pci_dev>00:14.0 USB controller: Intel Corporation Device a0ed (rev 20)</pci_dev>
<pci_dev/>
</pci_devs>
</vm>
</acrn-config>

View File

@ -1,179 +0,0 @@
<acrn-config board="generic_board" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>y</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
shared_launch_6user_vm.xml

View File

@ -1,272 +1,260 @@
<acrn-config board="generic_board" scenario="shared" user_vm_launcher="6">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="generic_board" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>y</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation Device 9a49 (rev 01)</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation Device 9a49 (rev 01)</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">PREEMPT-RT LINUX</user_vm_type>
<vm_name>POST_RT_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">Hard RT</rtos_type>
<mem_size desc="User VM memory size in MByte">1024</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>1024</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">RT</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./core-image-weston-intel-corei7-64.wic</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>RT</network>
<input/>
<block>./core-image-weston-intel-corei7-64.wic</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="3">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM2</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG3</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG3</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="4">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM3</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG4</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG4</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="5">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM4</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG5</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG5</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="6">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM5</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG6</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG6</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
</acrn-config>

View File

@ -1,156 +0,0 @@
<acrn-config board="nuc11tnbi5" scenario="hybrid">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>SAFETY_VM0</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>PRE_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>SAFETY_VM0</name>
<cpu_affinity>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<epc_section>
<base>0</base>
<size>0</size>
</epc_section>
<memory>
<start_hpa>0x100000000</start_hpa>
<size>0x20000000</size>
<start_hpa2>0x0</start_hpa2>
<size_hpa2>0x0</size_hpa2>
</memory>
<os_config>
<kern_type>KERNEL_ELF</kern_type>
<kern_mod>Zephyr_ElfImage</kern_mod>
<ramdisk_mod/>
<bootargs/>
</os_config>
<console_vuart>COM Port 1</console_vuart>
<mmio_resources>
<TPM2>n</TPM2>
<p2sb>n</p2sb>
</mmio_resources>
<pt_intx> </pt_intx>
<pci_devs>
<pci_dev/>
</pci_devs>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
hybrid_launch_2user_vm.xml

View File

@ -1,92 +1,183 @@
<acrn-config board="nuc11tnbi5" scenario="hybrid" user_vm_launcher="2">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="nuc11tnbi5" scenario="hybrid">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>SAFETY_VM0</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>PRE_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>SAFETY_VM0</name>
<cpu_affinity>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memrory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, formated as hv:/shm_region_0,2097152"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation Device 9a49 (rev 01)</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM2</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<epc_section>
<base>0</base>
<size>0</size>
</epc_section>
<memory>
<start_hpa>0x100000000</start_hpa>
<size>0x20000000</size>
<start_hpa2>0x0</start_hpa2>
<size_hpa2>0x0</size_hpa2>
</memory>
<os_config>
<kern_type>KERNEL_ELF</kern_type>
<kern_mod>Zephyr_ElfImage</kern_mod>
<ramdisk_mod/>
<bootargs/>
</os_config>
<console_vuart>COM Port 1</console_vuart>
<mmio_resources>
<TPM2>n</TPM2>
<p2sb>n</p2sb>
</mmio_resources>
<pt_intx> </pt_intx>
<pci_devs/>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation Device 9a49 (rev 01)</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console>@stdio:stdio_port</console>
<network>YaaG</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
</vm>
</acrn-config>

View File

@ -101,7 +101,6 @@
<pci_devs>
<pci_dev>00:17.0 SATA controller: Intel Corporation Device a0d3 (rev 20)</pci_dev>
<pci_dev>58:00.0 Ethernet controller: Intel Corporation Device 15f2 (rev 03)</pci_dev>
<pci_dev/>
</pci_devs>
</vm>
<vm id="1">
@ -140,7 +139,6 @@
</mmio_resources>
<pci_devs>
<pci_dev>00:14.0 USB controller: Intel Corporation Device a0ed (rev 20)</pci_dev>
<pci_dev/>
</pci_devs>
</vm>
</acrn-config>

View File

@ -1,191 +0,0 @@
<acrn-config board="nuc11tnbi5" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>y</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>Connection_1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x3F</io_port>
</endpoint>
<endpoint>
<vm_name>POST_STD_VM1</vm_name>
<io_port>0x3F</io_port>
</endpoint>
</vuart_connection>
<vuart_connection>
<name>Connection_2</name>
<type>pci</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<vbdf>00:10.0</vbdf>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<vbdf>00:10.0</vbdf>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>rw rootwait root=/dev/nvme0n1p3 console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
shared_launch_6user_vm.xml

View File

@ -1,272 +1,272 @@
<acrn-config board="nuc11tnbi5" scenario="shared" user_vm_launcher="6">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="nuc11tnbi5" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>y</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>Connection_1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x3F</io_port>
</endpoint>
<endpoint>
<vm_name>POST_STD_VM1</vm_name>
<io_port>0x3F</io_port>
</endpoint>
</vuart_connection>
<vuart_connection>
<name>Connection_2</name>
<type>pci</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<vbdf>00:10.0</vbdf>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<vbdf>00:10.0</vbdf>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>rw rootwait root=/dev/nvme0n1p3 console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation Device 9a49 (rev 01)</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation Device 9a49 (rev 01)</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">PREEMPT-RT LINUX</user_vm_type>
<vm_name>POST_RT_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">Hard RT</rtos_type>
<mem_size desc="User VM memory size in MByte">1024</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>1024</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">RT</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./core-image-weston-intel-corei7-64.wic</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>RT</network>
<input/>
<block>./core-image-weston-intel-corei7-64.wic</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="3">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM2</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG3</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG3</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="4">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM3</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG4</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG4</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="5">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM4</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG5</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG5</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="6">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM5</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">YaaG6</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./YaaG.img</block>
<console>@stdio:stdio_port</console>
<network>YaaG6</network>
<input/>
<block>./YaaG.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
</acrn-config>

View File

@ -97,9 +97,7 @@
<p2sb>n</p2sb>
</mmio_resources>
<pt_intx> </pt_intx>
<pci_devs>
<pci_dev/>
</pci_devs>
<pci_devs/>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>

View File

@ -101,7 +101,6 @@
<pci_devs>
<pci_dev>00:17.0 SATA controller: Intel Corporation Device a0d3 (rev 20)</pci_dev>
<pci_dev>00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (13) I219-LM (rev 20)</pci_dev>
<pci_dev/>
</pci_devs>
</vm>
<vm id="1">
@ -140,7 +139,6 @@
</mmio_resources>
<pci_devs>
<pci_dev>00:14.0 USB controller: Intel Corporation Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller (rev 20)</pci_dev>
<pci_dev/>
</pci_devs>
</vm>
</acrn-config>

View File

@ -1,134 +0,0 @@
<acrn-config board="tgl-vecow-spc-7100-Corei7" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_STD_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
<vuart_connection>
<name>vUART connection 2</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x3E8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x3E8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs> rw rootwait root=/dev/sda3 console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072
</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<priority>PRIO_LOW</priority>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<priority>PRIO_LOW</priority>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
shared_launch_2user_vm.xml

View File

@ -1,94 +1,163 @@
<acrn-config board="tgl-vecow-spc-7100-Corei7" scenario="shared" user_vm_launcher="2">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<acrn-config board="tgl-vecow-spc-7100-Corei7" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
<CLOS_MASK>0xfffff</CLOS_MASK>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>256</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_STD_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
<vuart_connection>
<name>vUART connection 2</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x3E8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x3E8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs> rw rootwait root=/dev/sda3 console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1 swiotlb=131072
</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] (rev 01)</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<priority>PRIO_LOW</priority>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] (rev 01)</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">PREEMPT-RT LINUX</user_vm_type>
<vm_name>POST_RT_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">Hard RT</rtos_type>
<mem_size desc="User VM memory size in MByte">1024</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>1024</whole>
</memory>
<priority>PRIO_LOW</priority>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">RT</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./core-image-weston-intel-corei7-64.wic</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>RT</network>
<input/>
<block>./core-image-weston-intel-corei7-64.wic</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
</acrn-config>

View File

@ -87,9 +87,7 @@
<mmio_resources>
<TPM2>n</TPM2>
</mmio_resources>
<pci_devs>
<pci_dev/>
</pci_devs>
<pci_devs/>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>

View File

@ -1,169 +0,0 @@
<acrn-config board="whl-ipc-i5" scenario="hybrid_rt">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM>
<IVSHMEM_REGION>
<NAME>shm_region_0</NAME>
<PROVIDED_BY>Hypervisor</PROVIDED_BY>
<IVSHMEM_SIZE>2</IVSHMEM_SIZE>
<IVSHMEM_VMS>
<IVSHMEM_VM>
<VM_NAME>PRE_RT_VM0</VM_NAME>
<VBDF>00:08.0</VBDF>
</IVSHMEM_VM>
<IVSHMEM_VM>
<VM_NAME>POST_STD_VM1</VM_NAME>
<VBDF>00:08.0</VBDF>
</IVSHMEM_VM>
</IVSHMEM_VMS>
</IVSHMEM_REGION>
</IVSHMEM>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>PRE_RT_VM0</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>PRE_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>PRE_RT_VM0</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<epc_section>
<base>0</base>
<size>0</size>
</epc_section>
<memory>
<start_hpa>0x100000000</start_hpa>
<size>0x40000000</size>
<start_hpa2>0x0</start_hpa2>
<size_hpa2>0x0</size_hpa2>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>RT_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>rw rootwait root=/dev/sda3 rootfstype=ext4 console=ttyS0,115200 console=tty0 console=ttyS0 rw nohpet console=hvc0 no_timer_check ignore_loglevel log_buf_len=16M consoleblank=0 tsc=reliable
clocksource=tsc x2apic_phys processor.max_cstate=0 intel_idle.max_cstate=0 intel_pstate=disable mce=ignore_ce audit=0 isolcpus=nohz,domain,1 nohz_full=1 rcu_nocbs=1 nosoftlockup idle=poll irqaffinity=0 no_ipi_broadcast=1
reboot=acpi
</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
<mmio_resources>
<TPM2>n</TPM2>
</mmio_resources>
<pci_devs>
<pci_dev>00:17.0 SATA controller: Intel Corporation Device 9dd3 (rev 30)</pci_dev>
<pci_dev>03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)</pci_dev>
</pci_devs>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
hybrid_rt_launch_1user_vm_waag.xml

View File

@ -1,47 +1,186 @@
<acrn-config board="whl-ipc-i5" scenario="hybrid_rt" user_vm_launcher="1">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Enable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="whl-ipc-i5" scenario="hybrid_rt">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM>
<IVSHMEM_REGION>
<NAME>shm_region_0</NAME>
<PROVIDED_BY>Hypervisor</PROVIDED_BY>
<IVSHMEM_SIZE>2</IVSHMEM_SIZE>
<IVSHMEM_VMS>
<IVSHMEM_VM>
<VM_NAME>PRE_RT_VM0</VM_NAME>
<VBDF>00:08.0</VBDF>
</IVSHMEM_VM>
<IVSHMEM_VM>
<VM_NAME>POST_STD_VM1</VM_NAME>
<VBDF>00:08.0</VBDF>
</IVSHMEM_VM>
</IVSHMEM_VMS>
</IVSHMEM_REGION>
</IVSHMEM>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>PRE_RT_VM0</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>PRE_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>PRE_RT_VM0</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memrory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, formated as hv:/shm_region_0,2097152"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device">00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)</audio>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<epc_section>
<base>0</base>
<size>0</size>
</epc_section>
<memory>
<start_hpa>0x100000000</start_hpa>
<size>0x40000000</size>
<start_hpa2>0x0</start_hpa2>
<size_hpa2>0x0</size_hpa2>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>RT_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>rw rootwait root=/dev/sda3 rootfstype=ext4 console=ttyS0,115200 console=tty0 console=ttyS0 rw nohpet console=hvc0 no_timer_check ignore_loglevel log_buf_len=16M consoleblank=0 tsc=reliable
clocksource=tsc x2apic_phys processor.max_cstate=0 intel_idle.max_cstate=0 intel_pstate=disable mce=ignore_ce audit=0 isolcpus=nohz,domain,1 nohz_full=1 rcu_nocbs=1 nosoftlockup idle=poll irqaffinity=0 no_ipi_broadcast=1
reboot=acpi
</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
<mmio_resources>
<TPM2>n</TPM2>
</mmio_resources>
<pci_devs>
<pci_dev>00:17.0 SATA controller: Intel Corporation Device 9dd3 (rev 30)</pci_dev>
<pci_dev>03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)</pci_dev>
</pci_devs>
</vm>
<vm id="1">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)</pci_dev>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Enable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -1,81 +0,0 @@
<acrn-config board="whl-ipc-i5" scenario="sdc">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections/>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/sda3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>None</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
sdc_launch_1user_vm_zephyr.xml

View File

@ -1,47 +1,97 @@
<acrn-config board="whl-ipc-i5" scenario="sdc" user_vm_launcher="1">
<user_vm id="1">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">2048</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="whl-ipc-i5" scenario="sdc">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections/>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/sda3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>2048</whole>
</memory>
<console_vuart>None</console_vuart>
<pci_devs>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">LaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">/home/clear/uos/uos.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>LaaG</network>
<input/>
<block>/home/clear/uos/uos.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
</acrn-config>

View File

@ -1,47 +1,94 @@
<acrn-config board="whl-ipc-i5" scenario="sdc" user_vm_launcher="1">
<user_vm id="1">
<user_vm_type desc="User VM type">ZEPHYR</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">128</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Enable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="whl-ipc-i5" scenario="sdc">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections/>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/sda3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>1</pcpu_id>
<pcpu_id>2</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>128</whole>
</memory>
<console_vuart>None</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Enable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX]."/>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./zephyr.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@pty:pty_port</console>
</virtio_devices>
<sriov>
<gpu/>
<console>@pty:pty_port</console>
<network/>
</sriov>
</user_vm>
<input/>
<block>./zephyr.img</block>
</virtio_devices>
</vm>
</acrn-config>

View File

@ -1,169 +0,0 @@
<acrn-config board="whl-ipc-i5" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -0,0 +1 @@
shared_launch_6user_vm.xml

View File

@ -1,47 +1,183 @@
<acrn-config board="whl-ipc-i5" scenario="shared" user_vm_launcher="1">
<user_vm id="2">
<user_vm_type desc="User VM type">PREEMPT-RT LINUX</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">Hard RT</rtos_type>
<mem_size desc="User VM memory size in MByte">1024</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="whl-ipc-i5" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_STD_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>1024</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">RT</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./core-image-weston-intel-corei7-64.wic</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>RT</network>
<input/>
<block>./core-image-weston-intel-corei7-64.wic</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -1,47 +1,184 @@
<acrn-config board="whl-ipc-i5" scenario="shared" user_vm_launcher="1">
<user_vm id="1">
<user_vm_type desc="User VM type">VXWORKS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">Hard RT</rtos_type>
<mem_size desc="User VM memory size in MByte">2048</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="whl-ipc-i5" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_STD_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>2048</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX]."/>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./VxWorks.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
</virtio_devices>
<sriov>
<gpu/>
<console>@stdio:stdio_port</console>
<network/>
</sriov>
</user_vm>
<input/>
<block>./VxWorks.img</block>
</virtio_devices>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -1,47 +1,187 @@
<acrn-config board="whl-ipc-i5" scenario="shared" user_vm_launcher="1">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Enable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="whl-ipc-i5" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device">00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)</audio>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)</pci_dev>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Enable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -1,92 +1,201 @@
<acrn-config board="whl-ipc-i5" scenario="shared" user_vm_launcher="2">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Enable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="whl-ipc-i5" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device">00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)</audio>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)</pci_dev>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Enable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">PREEMPT-RT LINUX</user_vm_type>
<vm_name>POST_RT_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">Hard RT</rtos_type>
<mem_size desc="User VM memory size in MByte">1024</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>1024</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">RT</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./core-image-weston-intel-corei7-64.wic</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>RT</network>
<input/>
<block>./core-image-weston-intel-corei7-64.wic</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
</vm>
</acrn-config>

View File

@ -1,272 +1,253 @@
<acrn-config board="whl-ipc-i5" scenario="shared" user_vm_launcher="6">
<user_vm id="1">
<user_vm_type desc="User VM type">WINDOWS</user_vm_type>
<vm_name>POST_STD_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">4096</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Enable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<acrn-config board="whl-ipc-i5" scenario="shared">
<hv>
<DEBUG_OPTIONS>
<BUILD_TYPE>debug</BUILD_TYPE>
<SERIAL_CONSOLE>/dev/ttyS0</SERIAL_CONSOLE>
<MEM_LOGLEVEL>5</MEM_LOGLEVEL>
<NPK_LOGLEVEL>5</NPK_LOGLEVEL>
<CONSOLE_LOGLEVEL>3</CONSOLE_LOGLEVEL>
</DEBUG_OPTIONS>
<FEATURES>
<RELOC>y</RELOC>
<SCHEDULER>SCHED_BVT</SCHEDULER>
<MULTIBOOT2>y</MULTIBOOT2>
<ENFORCE_TURNOFF_AC>y</ENFORCE_TURNOFF_AC>
<ENFORCE_TURNOFF_GP>n</ENFORCE_TURNOFF_GP>
<SECURITY_VM_FIXUP>n</SECURITY_VM_FIXUP>
<RDT>
<RDT_ENABLED>n</RDT_ENABLED>
<CDP_ENABLED>n</CDP_ENABLED>
<VCAT_ENABLED>n</VCAT_ENABLED>
</RDT>
<HYPERV_ENABLED>y</HYPERV_ENABLED>
<IOMMU_ENFORCE_SNP>n</IOMMU_ENFORCE_SNP>
<ACPI_PARSE_ENABLED>y</ACPI_PARSE_ENABLED>
<L1D_VMENTRY_ENABLED>n</L1D_VMENTRY_ENABLED>
<MCE_ON_PSC_DISABLED>n</MCE_ON_PSC_DISABLED>
<IVSHMEM/>
</FEATURES>
<MEMORY>
<STACK_SIZE>0x2000</STACK_SIZE>
</MEMORY>
<CAPACITIES>
<MAX_VM_NUM>16</MAX_VM_NUM>
<IOMMU_BUS_NUM>0x100</IOMMU_BUS_NUM>
<MAX_IOAPIC_NUM>1</MAX_IOAPIC_NUM>
<MAX_PCI_DEV_NUM>96</MAX_PCI_DEV_NUM>
<MAX_IOAPIC_LINES>120</MAX_IOAPIC_LINES>
<MAX_PT_IRQ_ENTRIES>64</MAX_PT_IRQ_ENTRIES>
<MAX_MSIX_TABLE_NUM/>
<MAX_EMULATED_MMIO>16</MAX_EMULATED_MMIO>
</CAPACITIES>
<MISC_CFG>
<GPU_SBDF>0x00000010</GPU_SBDF>
</MISC_CFG>
<vuart_connections>
<vuart_connection>
<name>vUART connection 1</name>
<type>legacy</type>
<endpoint>
<vm_name>ACRN_Service_VM</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
<endpoint>
<vm_name>POST_RT_VM1</vm_name>
<io_port>0x2F8</io_port>
</endpoint>
</vuart_connection>
</vuart_connections>
</hv>
<vm id="0">
<load_order>SERVICE_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>ACRN_Service_VM</name>
<clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<start_hpa>0</start_hpa>
<size>0x20000000</size>
</memory>
<os_config>
<kern_type>KERNEL_BZIMAGE</kern_type>
<kern_mod>Linux_bzImage</kern_mod>
<ramdisk_mod/>
<bootargs>root=/dev/nvme0n1p3 rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check quiet loglevel=3
i915.nuclear_pageflip=1</bootargs>
</os_config>
<console_vuart>COM Port 1</console_vuart>
</vm>
<vm id="1">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM1</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device">00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)</audio>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device">00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</gpu>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>4096</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<pci_devs>
<pci_dev>00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)</pci_dev>
<pci_dev>00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]</pci_dev>
</pci_devs>
<PTM>n</PTM>
<os_type>Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Enable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">WaaG</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./win10-ltsc.img</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<console/>
<network>WaaG</network>
<input/>
<block>./win10-ltsc.img</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="2">
<user_vm_type desc="User VM type">PREEMPT-RT LINUX</user_vm_type>
<vm_name>POST_RT_VM1</vm_name>
<rtos_type desc="User VM Realtime capability">Hard RT</rtos_type>
<mem_size desc="User VM memory size in MByte">1024</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="2">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>RTVM</vm_type>
<name>POST_RT_VM1</name>
<lapic_passthrough>y</lapic_passthrough>
<cpu_affinity>
<pcpu_id>2</pcpu_id>
<pcpu_id>3</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>1024</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX].">RT</network>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img">./core-image-weston-intel-corei7-64.wic</block>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]">@stdio:stdio_port</console>
<console>@stdio:stdio_port</console>
<network>RT</network>
<input/>
<block>./core-image-weston-intel-corei7-64.wic</block>
</virtio_devices>
<sriov>
<gpu/>
<network/>
</sriov>
</user_vm>
<user_vm id="3">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM2</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
</vm>
<vm id="3">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM2</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX]."/>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img"/>
</virtio_devices>
<sriov>
<gpu/>
<console/>
<network/>
</sriov>
</user_vm>
<user_vm id="4">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM3</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<input/>
<block/>
</virtio_devices>
</vm>
<vm id="4">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM3</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX]."/>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img"/>
</virtio_devices>
<sriov>
<gpu/>
<console/>
<network/>
</sriov>
</user_vm>
<user_vm id="5">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM4</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<input/>
<block/>
</virtio_devices>
</vm>
<vm id="5">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM4</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX]."/>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img"/>
</virtio_devices>
<sriov>
<gpu/>
<console/>
<network/>
</sriov>
</user_vm>
<user_vm id="6">
<user_vm_type desc="User VM type">YOCTO</user_vm_type>
<vm_name>POST_STD_VM5</vm_name>
<rtos_type desc="User VM Realtime capability">no</rtos_type>
<mem_size desc="User VM memory size in MByte">512</mem_size>
<vbootloader desc="virtual bootloader method" readonly="true">ovmf</vbootloader>
<vuart0 desc="vUART0 which emulated by device model">Disable</vuart0>
<enable_ptm desc="enable ptm of User VM">n</enable_ptm>
<usb_xhci desc="USB xHCI mediator configuration. input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4"/>
<cpu_affinity desc="List of pCPU that this VM's vCPUs are pinned to.">
<pcpu_id/>
<input/>
<block/>
</virtio_devices>
</vm>
<vm id="6">
<load_order>POST_LAUNCHED_VM</load_order>
<vm_type>STANDARD_VM</vm_type>
<name>POST_STD_VM5</name>
<cpu_affinity>
<pcpu_id>0</pcpu_id>
<pcpu_id>1</pcpu_id>
</cpu_affinity>
<shm_regions desc="List of shared memory regions for inter-VM communication.">
<shm_region desc="configure the shm regions for current VM, for example hv:/sharename,2"/>
</shm_regions>
<console_vuart desc="A PCI based console vuart which is emulated by device model">Disable</console_vuart>
<communication_vuarts desc="List of PCI based communication vuarts which are emulated by device model">
<communication_vuart/>
</communication_vuarts>
<passthrough_devices>
<usb_xdci desc="vm usb_xdci device"/>
<audio desc="vm audio device"/>
<audio_codec desc="vm audio codec device"/>
<gpu desc="vm gpu device"/>
<ipu desc="vm ipu device"/>
<ipu_i2c desc="vm ipu_i2c device"/>
<cse desc="vm cse device"/>
<wifi desc="vm wifi device"/>
<bluetooth desc="vm bluetooth"/>
<sd_card desc="vm sd card device"/>
<ethernet desc="vm ethernet device"/>
<sata desc="vm sata device"/>
<nvme desc="vm nvme device"/>
</passthrough_devices>
<clos>
<vcpu_clos>0</vcpu_clos>
<vcpu_clos>0</vcpu_clos>
</clos>
<memory>
<whole>512</whole>
</memory>
<console_vuart>COM Port 1</console_vuart>
<PTM>n</PTM>
<os_type>Non-Windows OS</os_type>
<vbootloader>Enable</vbootloader>
<vuart0>Disable</vuart0>
<usb_xhci/>
<virtio_devices>
<console desc="virtio console device,input format: [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]"/>
<network desc="virtio network devices setting. Input format: tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX]."/>
<input desc="virtio input device"/>
<block desc="virtio block device setting. format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img"/>
</virtio_devices>
<sriov>
<gpu/>
<console/>
<network/>
</sriov>
</user_vm>
<input/>
<block/>
</virtio_devices>
</vm>
</acrn-config>

View File

@ -15,6 +15,9 @@ import copy
def eval_xpath(element, xpath, default_value=None):
return next(iter(element.xpath(xpath)), default_value)
def eval_xpath_all(element, xpath):
return element.xpath(xpath)
class LaunchScript:
script_template_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "launch_script_template.sh")
@ -53,9 +56,9 @@ class LaunchScript:
current_option = self._options.setdefault(class_code, [])
self._options[class_code] = current_option.append("enable_ptm")
def __init__(self, vm_launch_etree):
def __init__(self, vm_scenario_etree):
self._options = copy.copy(self.passthru_device_options)
if eval_xpath(vm_launch_etree, ".//enable_ptm/text()") == "y":
if eval_xpath(vm_scenario_etree, ".//PTM/text()") == "y":
self._add_option("0x0200", "enable_ptm")
def get_option(self, device_etree):
@ -67,9 +70,9 @@ class LaunchScript:
passthru_options.extend(v)
return ",".join(passthru_options)
def __init__(self, board_etree, vm_name, vm_launch_etree):
def __init__(self, board_etree, vm_name, vm_scenario_etree):
self._board_etree = board_etree
self._vm_launch_etree = vm_launch_etree
self._vm_scenario_etree = vm_scenario_etree
self._vm_name = vm_name
self._vm_descriptors = {}
@ -78,7 +81,7 @@ class LaunchScript:
self._deinit_commands = []
self._vbdf_allocator = self.VirtualBDFAllocator()
self._passthru_options = self.PassThruDeviceOptions(vm_launch_etree)
self._passthru_options = self.PassThruDeviceOptions(vm_scenario_etree)
def add_vm_descriptor(self, name, value):
self._vm_descriptors[name] = value
@ -146,7 +149,7 @@ class LaunchScript:
logging.info(f"Successfully generated launch script {path} for VM '{self._vm_name}'.")
def add_virtual_device(self, kind, vbdf=None, options=""):
if "virtio" in kind and eval_xpath(self._vm_launch_etree, ".//rtos_type/text()", "no") != "no":
if "virtio" in kind and eval_xpath(self._vm_scenario_etree, ".//vm_type/text()") == "RTVM":
self.add_plain_dm_parameter("--virtio_poll 1000000")
if vbdf is None:
@ -185,9 +188,9 @@ def cpu_id_to_lapic_id(board_etree, vm_name, cpus):
return ret
def generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_launch_etree, vm_id):
vm_name = eval_xpath(vm_launch_etree, ".//vm_name/text()", f"ACRN Post-Launched VM")
script = LaunchScript(board_etree, vm_name, vm_launch_etree)
def generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_id):
vm_name = eval_xpath(vm_scenario_etree, "./name/text()", f"ACRN Post-Launched VM")
script = LaunchScript(board_etree, vm_name, vm_scenario_etree)
script.add_init_command("probe_modules")
@ -195,38 +198,29 @@ def generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_la
# VM types and guest OSes
###
if eval_xpath(vm_launch_etree, ".//user_vm_type/text()") == "WINDOWS":
if eval_xpath(vm_scenario_etree, ".//os_type/text()") == "Windows OS":
script.add_plain_dm_parameter("--windows")
script.add_vm_descriptor("rtos_type", f"'{eval_xpath(vm_launch_etree, './/rtos_type/text()', 'no')}'")
script.add_vm_descriptor("vm_type", f"'{eval_xpath(vm_scenario_etree, './/vm_type/text()', 'STANDARD_VM')}'")
script.add_vm_descriptor("scheduler", f"'{eval_xpath(hv_scenario_etree, './/SCHEDULER/text()')}'")
###
# CPU and memory resources
###
cpus_in_launch_xml = set(vm_launch_etree.xpath(".//cpu_affinity/pcpu_id[text() != '']/text()"))
cpus_in_scenario_xml = set(vm_scenario_etree.xpath(".//cpu_affinity/pcpu_id[text() != '']/text()"))
if cpus_in_launch_xml:
cpus = cpus_in_scenario_xml & cpus_in_launch_xml
if not cpus:
logging.error(f"CPUs assigned to VM '{vm_name}' in the launch XML are outside of those allowed by the scenario XML.")
else:
cpus = cpus_in_scenario_xml
if not cpus:
logging.error(f"VM '{vm_name}' has no CPU assigned in either the scenario or the launch XML.")
cpus = set(eval_xpath_all(vm_scenario_etree, ".//cpu_affinity/pcpu_id[text() != '']/text()"))
lapic_ids = cpu_id_to_lapic_id(board_etree, vm_name, cpus)
if lapic_ids:
script.add_dynamic_dm_parameter("add_cpus", f"{' '.join([str(x) for x in sorted(lapic_ids)])}")
script.add_plain_dm_parameter(f"-m {eval_xpath(vm_launch_etree, './/mem_size/text()')}M")
script.add_plain_dm_parameter(f"-m {eval_xpath(vm_scenario_etree, './/memory/whole/text()')}M")
if eval_xpath(vm_scenario_etree, "//SSRAM_ENABLED") == "y" and \
eval_xpath(vm_launch_etree, ".//user_vm_type/text()") == "PREEMPT-RT LINUX":
eval_xpath(vm_scenario_etree, ".//vm_type/text()") == "RTVM":
script.add_plain_dm_parameter("--ssram")
###
# Guest BIOS
###
if eval_xpath(vm_launch_etree, ".//vbootloader/text()") == "ovmf":
if eval_xpath(vm_scenario_etree, ".//vbootloader/text()") == "Enable":
script.add_plain_dm_parameter("--ovmf /usr/share/acrn/bios/OVMF.fd")
###
@ -234,36 +228,36 @@ def generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_la
###
# Emulated platform devices
if eval_xpath(vm_launch_etree, ".//user_vm_type/text()") != "PREEMPT-RT LINUX":
if eval_xpath(vm_scenario_etree, ".//vm_type/text()") != "RTVM":
script.add_virtual_device("lpc", vbdf="1:0")
if eval_xpath(vm_launch_etree, ".//vuart0/text()") == "Enable":
if eval_xpath(vm_scenario_etree, ".//vuart0/text()") == "Enable":
script.add_plain_dm_parameter("-l com1,stdio")
# Emulated PCI devices
script.add_virtual_device("hostbridge", vbdf="0:0")
if eval_xpath(vm_scenario_etree, "//IVSHMEM_ENABLED/text()") == "y":
for ivshmem in vm_launch_etree.xpath("//shm_region[text() != '']/text()"):
script.add_virtual_device("ivshmem", options=ivshmem)
for ivshmem in eval_xpath_all(vm_scenario_etree, "//IVSHMEM_REGION[PROVIDED_BY = 'Device model' and .//VM_NAME = 'vm_name']"):
script.add_virtual_device("ivshmem", options=f"dm:/{ivshmem.find('NAME').text},{ivshmem.find('IVSHMEM_SIZE').text}")
if eval_xpath(vm_launch_etree, ".//console_vuart/text()") == "Enable":
if eval_xpath(vm_scenario_etree, ".//console_vuart/text()") == "PCI":
script.add_virtual_device("uart", options="vuart_idx:0")
for comm_vuart in vm_launch_etree.xpath(".//communication_vuart/@id"):
script.add_virtual_device("uart", options=f"vuart_idx:{comm_vuart}")
for idx, conn in enumerate(eval_xpath_all(hv_scenario_etree, f".//vuart_connection[endpoint/vm_name = '{vm_name}']"), start=1):
if eval_xpath(conn, "./type") == "pci":
script.add_virtual_device("uart", options="vuart_idx:{idx}")
# Mediated PCI devices, including virtio
for usb_xhci in vm_launch_etree.xpath(".//usb_xhci[text() != '']/text()"):
for usb_xhci in eval_xpath_all(vm_scenario_etree, ".//usb_xhci[text() != '']/text()"):
script.add_virtual_device("xhci", options=usb_xhci)
for virtio_input in vm_launch_etree.xpath(".//virtio_devices/input[text() != '']/text()"):
for virtio_input in eval_xpath_all(vm_scenario_etree, ".//virtio_devices/input[text() != '']/text()"):
script.add_virtual_device("virtio-input", options=virtio_input)
for virtio_console in vm_launch_etree.xpath(".//virtio_devices/console[text() != '']/text()"):
for virtio_console in eval_xpath_all(vm_scenario_etree, ".//virtio_devices/console[text() != '']/text()"):
script.add_virtual_device("virtio-console", options=virtio_console)
for virtio_network in vm_launch_etree.xpath(".//virtio_devices/network[text() != '']/text()"):
for virtio_network in eval_xpath_all(vm_scenario_etree, ".//virtio_devices/network[text() != '']/text()"):
params = virtio_network.split(",", maxsplit=1)
tap_conf = f"tap={params[0]}"
params = [tap_conf] + params[1:]
@ -271,7 +265,7 @@ def generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_la
params.append(f"mac_seed=${{mac:0:17}}-{vm_name}")
script.add_virtual_device("virtio-net", options=",".join(params))
for virtio_block in vm_launch_etree.xpath(".//virtio_devices/block[text() != '']/text()"):
for virtio_block in eval_xpath_all(vm_scenario_etree, ".//virtio_devices/block[text() != '']/text()"):
params = virtio_block.split(":", maxsplit=1)
if len(params) == 1:
script.add_virtual_device("virtio-blk", options=virtio_block)
@ -285,22 +279,28 @@ def generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_la
# Passthrough PCI devices
bdf_regex = re.compile("([0-9a-f]{2}):([0-1][0-9a-f]).([0-7])")
for passthru_device in vm_launch_etree.xpath(".//passthrough_devices/*/text()"):
for passthru_device in eval_xpath_all(vm_scenario_etree, ".//pci_devs/*/text()"):
m = bdf_regex.match(passthru_device)
if not m:
continue
script.add_passthru_device(int(m.group(1), 16), int(m.group(2), 16), int(m.group(3), 16))
for sriov_gpu_device in vm_launch_etree.xpath(".//sriov/gpu/text()"):
m = bdf_regex.match(sriov_gpu_device)
if not m:
continue
script.add_passthru_device(int(m.group(1), 16), int(m.group(2), 16), int(m.group(3), 16), options="igd-vf")
bus = int(m.group(1), 16)
dev = int(m.group(2), 16)
func = int(m.group(3), 16)
device_node = eval_xpath(board_etree, f"//bus[@type='pci' and @address='{hex(bus)}']/device[@address='hex((dev << 16) | func)']")
if device_node and \
eval_xpath(device_node, "class/text()") == "0x030000" and \
eval_xpath(device_node, "resource[@type='memory'") is None:
script.add_passthru_device(bus, dev, func, options="igd-vf")
else:
script.add_passthru_device(bus, dev, func)
###
# Miscellaneous
###
script.add_dynamic_dm_parameter("add_rtvm_options")
if eval_xpath(vm_scenario_etree, ".//vm_type/text()") == "RTVM":
script.add_plain_dm_parameter("--rtvm")
if eval_xpath(vm_scenario_etree, ".//lapic_passthrough/text()") == "y":
script.add_plain_dm_parameter("--lapic_pt")
script.add_dynamic_dm_parameter("add_logger_settings", "console=4 kmsg=3 disk=5")
###
@ -310,14 +310,13 @@ def generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_la
return script
def main(board_xml, scenario_xml, launch_xml, user_vm_id, out_dir):
def main(board_xml, scenario_xml, user_vm_id, out_dir):
board_etree = etree.parse(board_xml)
scenario_etree = etree.parse(scenario_xml)
launch_etree = etree.parse(launch_xml)
service_vm_id = eval_xpath(scenario_etree, "//vm[load_order='SERVICE_VM']/@id")
service_vm_id = eval_xpath(scenario_etree, "//vm[load_order = 'SERVICE_VM']/@id")
hv_scenario_etree = eval_xpath(scenario_etree, "//hv")
post_vms = scenario_etree.xpath("//vm[starts-with(load_order, 'POST_')]")
post_vms = eval_xpath_all(scenario_etree, "//vm[load_order = 'POST_LAUNCHED_VM']")
if service_vm_id is None and len(post_vms) > 0:
logging.error("The scenario does not define a service VM so no launch scripts will be generated for the post-launched VMs in the scenario.")
return 1
@ -334,23 +333,17 @@ def main(board_xml, scenario_xml, launch_xml, user_vm_id, out_dir):
return 1
if user_vm_id == 0:
post_vm_ids = [int(vm_scenario_etree.get("id")) - service_vm_id for vm_scenario_etree in post_vms]
post_vm_ids = [int(vm_scenario_etree.get("id")) for vm_scenario_etree in post_vms]
else:
post_vm_ids = [user_vm_id]
post_vm_ids = [user_vm_id + service_vm_id]
for post_vm_id in post_vm_ids:
vm_scenario_etree = eval_xpath(scenario_etree, f"//vm[@id = {service_vm_id + post_vm_id}]")
vm_launch_etree = eval_xpath(launch_etree, f"//user_vm[@id='{post_vm_id}']")
if vm_scenario_etree is None:
logging.warning(f"Post-launched VM {post_vm_id} is not specified in the scenario XML, so no launch script will be generated.")
for post_vm in post_vms:
post_vm_id = int(post_vm.get("id"))
if post_vm_id not in post_vm_ids:
continue
if vm_launch_etree is None:
logging.warning(f"Post-launched VM {post_vm_id} is not specified in the launch XML, so no launch script will be generated.")
continue
script = generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_launch_etree, post_vm_id)
script.write_to_file(os.path.join(out_dir, f"launch_user_vm_id{post_vm_id}.sh"))
script = generate_for_one_vm(board_etree, hv_scenario_etree, post_vm, post_vm_id)
script.write_to_file(os.path.join(out_dir, f"launch_user_vm_id{post_vm_id - service_vm_id}.sh"))
return 0
@ -358,11 +351,11 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--board", help="the XML file summarizing characteristics of the target board")
parser.add_argument("--scenario", help="the XML file specifying the scenario to be set up")
parser.add_argument("--launch", help="the XML file specifying the parameters of post-launched VMs")
parser.add_argument("--launch", default=None, help="(obsoleted. DO NOT USE)")
parser.add_argument("--user_vmid", type=int, default=0, help="the post-launched VM ID (as is specified in the launch XML) whose launch script is to be generated, or 0 if all post-launched VMs shall be processed")
parser.add_argument("--out", default="output", help="path to the directory where generated scripts are placed")
args = parser.parse_args()
logging.basicConfig(level="INFO")
sys.exit(main(args.board, args.scenario, args.launch, args.user_vmid, args.out))
sys.exit(main(args.board, args.scenario, args.user_vmid, args.out))

View File

@ -90,7 +90,7 @@ function add_cpus() {
# Each parameter of this function is considered the processor ID (as is reported in /proc/cpuinfo) of a CPU assigned
# to a post-launched RTVM.
if [ "${rtos_type}" != "no" ] || [ "${scheduler}" = "SCHED_NOOP" ]; then
if [ "${vm_type}" = "RTVM" ] || [ "${scheduler}" = "SCHED_NOOP" ]; then
offline_cpus $*
fi
@ -98,14 +98,6 @@ function add_cpus() {
echo -n "--cpu_affinity ${cpu_list}"
}
function add_rtvm_options() {
if [ "${rtos_type}" = "Soft RT" ]; then
echo -n "--rtvm"
elif [ "${rtos_type}" = "Hard RT" ]; then
echo -n "--rtvm --lapic_pt"
fi
}
function add_interrupt_storm_monitor() {
threshold_per_sec=$1
probe_period_in_sec=$2

View File

@ -151,6 +151,24 @@ class SharedMemoryRegions:
return cls(provided_by, name, size, shared_vms)
@classmethod
def from_launch_xml_node(cls, node):
text = node.text
provided_by = "Device Model"
parts = [p.strip() for p in text[text.find("/") + 1 :].split(",")]
name = parts[0]
size = parts[1]
shared_vms = []
vm_name = node.xpath("ancestor::user_vm/vm_name/text()")
if vm_name:
vm_name = vm_name[0]
dev = cls.next_dev[vm_name]
cls.next_dev[vm_name] += 1
shared_vms.append((vm_name, f"00:{dev:02x}.0"))
return cls(provided_by, name, size, shared_vms)
@classmethod
def from_xml_node(cls, node):
cls.nr_regions += 1
@ -166,6 +184,9 @@ class SharedMemoryRegions:
shared_vms.append((vm_name, vbdf))
return cls(provided_by, name, size, shared_vms)
def extend(self, region):
self.shared_vms.extend(region.shared_vms)
def format_xml_element(self):
node = etree.Element("IVSHMEM_REGION")
etree.SubElement(node, "NAME").text = self.name
@ -188,9 +209,18 @@ class SharedMemoryRegions:
"""Parse IVSHMEM_REGION nodes in either v2.x and v3.x format."""
if len(ivshmem_region_node) == 0:
# ACRN v2.x format
region = self.SharedMemoryRegion.from_encoding(ivshmem_region_node.text, self.old_xml_etree)
self.regions[region.name] = region
if ivshmem_region_node.tag == "IVSHMEM_REGION":
# ACRN v2.x scenario XML format
region = self.SharedMemoryRegion.from_encoding(ivshmem_region_node.text, self.old_xml_etree)
self.regions[region.name] = region
elif ivshmem_region_node.tag == "shm_region":
# ACRN v2.x launch XML format
if ivshmem_region_node.text:
region = self.SharedMemoryRegion.from_launch_xml_node(ivshmem_region_node)
if region.name in self.regions.keys():
self.regions[region.name].extend(region)
else:
self.regions[region.name] = region
else:
# ACRN v3.x format
region = self.SharedMemoryRegion.from_xml_node(ivshmem_region_node)
@ -207,15 +237,26 @@ class ScenarioUpgrader(ScenarioTransformer):
def get_node(cls, element, xpath):
return next(iter(element.xpath(xpath, namespaces=cls.xpath_ns)), None)
def __init__(self, xsd_etree, old_xml_etree):
def __init__(self, xsd_etree, old_xml_etree, old_launch_etree = None):
super().__init__(xsd_etree, visit_optional_node=True)
self.old_xml_etree = old_xml_etree
self.old_launch_etree = old_launch_etree
if old_launch_etree is not None:
service_vm_id = old_xml_etree.xpath("//vm[.//load_order = 'SERVICE_VM' or .//vm_type = 'SERVICE_VM']/@id")
if not service_vm_id:
self.old_launch_etree = None
else:
self.service_vm_id = int(service_vm_id[0])
# Collect all nodes in old_xml_etree which will be used to track data not moved
self.old_data_nodes = set()
for node in old_xml_etree.iter():
if node.text:
self.old_data_nodes.add(node)
if self.old_launch_etree is not None:
for node in self.old_launch_etree.iter():
if node.text:
self.old_data_nodes.add(node)
self.hv_vm_node_map = {}
@ -227,6 +268,22 @@ class ScenarioUpgrader(ScenarioTransformer):
old_data_node = old_hv_vm_node.xpath(xpath)
return old_data_node
def get_from_old_launch_data(self, new_parent_node, xpath):
if self.old_launch_etree is None:
return []
vm_node = new_parent_node
if vm_node.tag != "vm":
vm_node = next(new_parent_node.iterancestors("vm"), None)
if vm_node is None:
return []
old_vm_node = self.hv_vm_node_map[vm_node]
user_vm_id = int(old_vm_node.get("id")) - self.service_vm_id
user_vm_node = self.old_launch_etree.xpath(f"//user_vm[@id = '{user_vm_id}']")
old_data_node = user_vm_node[0].xpath(xpath) if user_vm_node else []
return old_data_node
def move_build_type(self, xsd_element_node, xml_parent_node, new_nodes):
old_data_node = self.get_node(self.old_xml_etree, f"//hv//RELEASE")
if old_data_node is not None:
@ -248,8 +305,10 @@ class ScenarioUpgrader(ScenarioTransformer):
legacy_vuart = legacy_vuart[0] if legacy_vuart else None
console_vuart = self.get_from_old_data(xml_parent_node, ".//console_vuart")
console_vuart = console_vuart[0] if console_vuart else None
launch_console_vuart = self.get_from_old_launch_data(xml_parent_node, ".//console_vuart")
launch_console_vuart = launch_console_vuart[0] if launch_console_vuart else None
if legacy_vuart is None and console_vuart is None:
if legacy_vuart is None and console_vuart is None and launch_console_vuart is None:
return False
if console_vuart is not None and console_vuart.text:
@ -270,7 +329,12 @@ class ScenarioUpgrader(ScenarioTransformer):
if vm_load_order == "SERVICE_VM":
logging.info(f"The console virtual UART of the service VM is moved to {new_node.text}. Please double check the console= command line option in the OS bootargs of the service VM.")
elif console_vuart is not None and console_vuart.find("base") != "INVALID_PCI_BASE":
elif console_vuart is not None:
if console_vuart.find("base") == "PCI_VUART":
new_node.text = "PCI"
else:
new_node.text = console_vuart.text
elif launch_console_vuart and launch_console_vuart.text != "Disable":
new_node.text = "PCI"
if legacy_vuart is not None:
@ -279,6 +343,9 @@ class ScenarioUpgrader(ScenarioTransformer):
if console_vuart is not None:
for n in console_vuart.iter():
self.old_data_nodes.discard(n)
if launch_console_vuart is not None:
for n in launch_console_vuart.iter():
self.old_data_nodes.discard(n)
return False
@ -315,6 +382,12 @@ class ScenarioUpgrader(ScenarioTransformer):
regions.add_ivshmem_region(old_region)
for child in old_region.iter():
self.old_data_nodes.discard(child)
if self.old_launch_etree:
for old_region in self.old_launch_etree.xpath("//shm_region"):
regions.add_ivshmem_region(old_region)
for child in old_region.iter():
self.old_data_nodes.discard(child)
new_nodes.append(regions.format_xml_element())
return False
@ -322,9 +395,12 @@ class ScenarioUpgrader(ScenarioTransformer):
def move_vm_type(self, xsd_element_node, xml_parent_node, new_nodes):
old_vm_type_node = self.get_from_old_data(xml_parent_node, ".//vm_type").pop()
old_guest_flag_nodes = self.get_from_old_data(xml_parent_node, ".//guest_flag[text() = 'GUEST_FLAG_RT']")
old_rtos_type_nodes = self.get_from_old_launch_data(xml_parent_node, ".//rtos_type")
new_node = etree.Element(xsd_element_node.get("name"))
if old_vm_type_node.text in ["PRE_RT_VM", "POST_RT_VM"] or old_guest_flag_nodes:
if old_vm_type_node.text in ["PRE_RT_VM", "POST_RT_VM"] or \
old_guest_flag_nodes or \
(old_rtos_type_nodes and old_rtos_type_nodes[0].text in ["Soft RT", "Hard RT"]):
new_node.text = "RTVM"
elif old_vm_type_node.text in ["SAFETY_VM", "PRE_STD_VM", "POST_STD_VM"]:
new_node.text = "STANDARD_VM"
@ -334,6 +410,25 @@ class ScenarioUpgrader(ScenarioTransformer):
self.old_data_nodes.discard(old_vm_type_node)
for n in old_guest_flag_nodes:
self.old_data_nodes.discard(n)
for n in old_rtos_type_nodes:
self.old_data_nodes.discard(n)
return False
def move_os_type(self, xsd_element_node, xml_parent_node, new_nodes):
old_os_type_nodes = self.get_from_old_launch_data(xml_parent_node, ".//user_vm_type")
if old_os_type_nodes:
new_node = etree.Element(xsd_element_node.get("name"))
if old_os_type_nodes[0].text == "WINDOWS":
new_node.text = "Windows OS"
else:
new_node.text = "Non-Windows OS"
new_nodes.append(new_node)
for n in old_os_type_nodes:
self.old_data_nodes.discard(n)
else:
self.move_data_by_same_tag(xsd_element_node, xml_parent_node, new_nodes)
return False
@ -350,10 +445,36 @@ class ScenarioUpgrader(ScenarioTransformer):
return False
def move_data_by_xpath(self, xpath, xsd_element_node, xml_parent_node, new_nodes):
def move_lapic_passthrough(self, xsd_element_node, xml_parent_node, new_nodes):
old_rtos_type_nodes = self.get_from_old_launch_data(xml_parent_node, ".//rtos_type")
if old_rtos_type_nodes and old_rtos_type_nodes[0].text == "Hard RT":
new_node = etree.Element(xsd_element_node.get("name"))
new_node.text = "y"
new_nodes.append(new_node)
# The rtos_type node will be consumed by the vm_type mover
else:
self.move_guest_flag("GUEST_FLAG_LAPIC_PASSTHROUGH", xsd_element_node, xml_parent_node, new_nodes)
return False
def move_enablement(self, xpath, xsd_element_node, xml_parent_node, new_nodes, values_as_enabled = ["y"], values_as_disabled = ["n"]):
ret = self.move_data_by_xpath(xpath, xsd_element_node, xml_parent_node, new_nodes)
for n in new_nodes:
if n.text in values_as_enabled:
n.text = "Enable"
elif n.text in values_as_disabled:
n.text = "Disable"
return ret
def move_data_by_xpath(self, xpath, xsd_element_node, xml_parent_node, new_nodes, scenario_xml_only = False, launch_xml_only = False):
element_tag = xsd_element_node.get("name")
old_data_nodes = self.get_from_old_data(xml_parent_node, xpath)
old_data_nodes = []
if not launch_xml_only:
old_data_nodes = self.get_from_old_data(xml_parent_node, xpath)
if not scenario_xml_only and not old_data_nodes and self.old_launch_etree is not None:
old_data_nodes = self.get_from_old_launch_data(xml_parent_node, xpath)
if self.complex_type_of_element(xsd_element_node) is None:
max_occurs_raw = xsd_element_node.get("maxOccurs")
@ -369,7 +490,8 @@ class ScenarioUpgrader(ScenarioTransformer):
new_node = etree.Element(element_tag)
new_node.text = n.text
for k, v in n.items():
new_node.set(k, v)
if k in ["id", "name"]:
new_node.set(k, v)
new_nodes.append(new_node)
self.old_data_nodes.discard(n)
@ -389,20 +511,53 @@ class ScenarioUpgrader(ScenarioTransformer):
element_tag = xsd_element_node.get("name")
return self.move_data_by_xpath(f".//{element_tag}", xsd_element_node, xml_parent_node, new_nodes)
def rename_data(self, old_xpath, new_xpath, xsd_element_node, xml_parent_node, new_nodes):
ret = self.move_data_by_xpath(old_xpath, xsd_element_node, xml_parent_node, new_nodes)
if not new_nodes:
ret = self.move_data_by_xpath(new_xpath, xsd_element_node, xml_parent_node, new_nodes)
return ret
def move_data_from_either_xml(self, scenario_xpath, launch_xpath, xsd_element_node, xml_parent_node, new_nodes):
# When moving data from either XML files, data in the launch XML take precedence.
ret = self.move_data_by_xpath(launch_xpath, xsd_element_node, xml_parent_node, new_nodes, launch_xml_only = True)
if not new_nodes:
ret = self.move_data_by_xpath(scenario_xpath, xsd_element_node, xml_parent_node, new_nodes, scenario_xml_only = True)
else:
self.move_data_by_xpath(scenario_xpath, xsd_element_node, xml_parent_node, list(), scenario_xml_only = True)
return ret
def move_data_from_both_xmls(self, scenario_xpath, launch_xpath, xsd_element_node, xml_parent_node, new_nodes):
ret_scenario = self.move_data_by_xpath(scenario_xpath, xsd_element_node, xml_parent_node, new_nodes, scenario_xml_only = True)
ret_launch = self.move_data_by_xpath(launch_xpath, xsd_element_node, xml_parent_node, new_nodes, launch_xml_only = True)
return ret_scenario or ret_launch
def create_node_if(self, scenario_xpath, launch_xpath, xsd_element_node, xml_parent_node, new_nodes):
if self.get_from_old_data(xml_parent_node, scenario_xpath) or \
self.get_from_old_launch_data(xml_parent_node, launch_xpath):
new_node = etree.Element(xsd_element_node.get("name"))
new_nodes.append(new_node)
return True
return False
def move_data_null(self, xsd_element_node, xml_parent_node, new_nodes):
return False
data_movers = {
"vm/name": partialmethod(move_data_from_either_xml, "name", "vm_name"),
"pcpu_id": partialmethod(move_data_from_either_xml, "cpu_affinity/pcpu_id[text() != '']", "cpu_affinity/pcpu_id[text() != '']"),
"pci_dev": partialmethod(move_data_from_both_xmls, ".//pci_devs/pci_dev[text()]", "passthrough_devices/*[text()] | sriov/*[text()]"),
"PTM": partialmethod(move_data_from_either_xml, ".//PTM", "enable_ptm"),
# Configuration items with the same name but under different parents
"vm/name": partialmethod(move_data_by_xpath, "./name"),
"os_config/name": partialmethod(move_data_by_xpath, ".//os_config/name"),
"epc_section/base": partialmethod(move_data_by_xpath, ".//epc_section/base"),
"console_vuart/base": partialmethod(move_data_by_xpath, ".//console_vuart/base"),
"epc_section/size": partialmethod(move_data_by_xpath, ".//epc_section/size"),
"memory/size": partialmethod(move_data_by_xpath, ".//memory/size"),
"virtio_devices/network": partialmethod(move_data_by_xpath, ".//virtio_devices/network"),
# Guest flags
"lapic_passthrough": partialmethod(move_guest_flag, "GUEST_FLAG_LAPIC_PASSTHROUGH"),
"lapic_passthrough": move_lapic_passthrough,
"io_completion_polling": partialmethod(move_guest_flag, "GUEST_FLAG_IO_COMPLETION_POLLING"),
"nested_virtualization_support": partialmethod(move_guest_flag, "GUEST_FLAG_NVMX_ENABLED"),
"virtual_cat_support": partialmethod(move_guest_flag, "GUEST_FLAG_VCAT_ENABLED"),
@ -410,11 +565,21 @@ class ScenarioUpgrader(ScenarioTransformer):
"hide_mtrr_support": partialmethod(move_guest_flag, "GUEST_FLAG_HIDE_MTRR"),
"security_vm": partialmethod(move_guest_flag, "GUEST_FLAG_SECURITY_VM"),
# Feature enabling or disabling
"vuart0": partialmethod(move_enablement, ".//vuart0"),
"vbootloader": partialmethod(move_enablement, ".//vbootloader", values_as_enabled = ["ovmf"], values_as_disabled = ["no"]),
# Intermediate nodes
"memory": partialmethod(create_node_if, ".//memory", ".//mem_size"),
"pci_devs": partialmethod(create_node_if, ".//pci_devs", ".//passthrough_devices/*[text() != ''] | .//sriov/*[text() != '']"),
"BUILD_TYPE": move_build_type,
"console_vuart": move_console_vuart,
"vuart_connections": move_vuart_connections,
"IVSHMEM": move_ivshmem,
"vm_type": move_vm_type,
"os_type": move_os_type,
"memory/whole": partialmethod(rename_data, "memory/whole", ".//mem_size"),
"default": move_data_by_same_tag,
}
@ -499,6 +664,11 @@ class UpgradingScenarioStage(PipelineStage):
uses = {"schema_etree", "scenario_etree"}
provides = {"scenario_etree"}
def __init__(self, has_launch_xml = False):
self.has_launch_xml = has_launch_xml
if has_launch_xml:
self.uses.add("launch_etree")
class DiscardedDataFilter(namedtuple("DiscardedDataFilter", ["path", "data", "info"])):
def filter(self, path, data):
simp_path = re.sub(r"\[[^\]]*\]", "", path)
@ -522,10 +692,13 @@ class UpgradingScenarioStage(PipelineStage):
]
def run(self, obj):
upgrader = ScenarioUpgrader(obj.get("schema_etree"), obj.get("scenario_etree"))
if self.has_launch_xml:
upgrader = ScenarioUpgrader(obj.get("schema_etree"), obj.get("scenario_etree"), obj.get("launch_etree"))
else:
upgrader = ScenarioUpgrader(obj.get("schema_etree"), obj.get("scenario_etree"))
new_scenario_etree = upgrader.upgraded_etree
discarded_data = [(obj.get("scenario_etree").getelementpath(n), n.text) for n in upgrader.old_data_nodes]
discarded_data = [(n.getroottree().getelementpath(n), n.text) for n in upgrader.old_data_nodes]
for path, data in sorted(discarded_data):
if not any(map(lambda x: x.filter(path, data), self.filters)):
escaped_data = data.replace("\n", "\\n")
@ -534,15 +707,25 @@ class UpgradingScenarioStage(PipelineStage):
obj.set("scenario_etree", new_scenario_etree)
def main(args):
pipeline = PipelineEngine(["schema_path", "scenario_path"])
pipeline.add_stages([
LXMLLoadStage("schema"),
LXMLLoadStage("scenario"),
SlicingSchemaByVMTypeStage(),
UpgradingScenarioStage(),
])
if args.launch:
pipeline = PipelineEngine(["schema_path", "scenario_path", "launch_path"])
pipeline.add_stages([
LXMLLoadStage("schema"),
LXMLLoadStage("scenario"),
LXMLLoadStage("launch"),
SlicingSchemaByVMTypeStage(),
UpgradingScenarioStage(has_launch_xml=True),
])
else:
pipeline = PipelineEngine(["schema_path", "scenario_path"])
pipeline.add_stages([
LXMLLoadStage("schema"),
LXMLLoadStage("scenario"),
SlicingSchemaByVMTypeStage(),
UpgradingScenarioStage(),
])
obj = PipelineObject(schema_path = args.schema, scenario_path = args.scenario)
obj = PipelineObject(schema_path = args.schema, scenario_path = args.scenario, launch_path=args.launch)
pipeline.run(obj)
# We know we are using lxml to parse the scenario XML, so it is ok to use lxml specific write options here.
obj.get("scenario_etree").write(args.out, pretty_print=True)
@ -555,6 +738,7 @@ if __name__ == "__main__":
parser.add_argument("scenario", help="Path to the scenario XML file from users")
parser.add_argument("out", nargs="?", default="out.xml", help="Path where the output is placed")
parser.add_argument("--schema", default=os.path.join(schema_dir, "config.xsd"), help="the XML schema that defines the syntax of scenario XMLs")
parser.add_argument("--launch", default=None, help="Path to the launch XML file")
args = parser.parse_args()
logging.basicConfig(level="INFO")

View File

@ -86,6 +86,11 @@ CLOSID 0 and the second is mapped to virtual CLOSID 1, etc.</xs:documentation>
<xs:complexType name="MemoryInfo">
<xs:all>
<xs:element name="whole" type="xs:integer" default="256">
<xs:annotation acrn:title="VM physical memory allocation (MB)" acrn:views="basic" acrn:applicable-vms="post-launched">
<xs:documentation>Specify the physical memory allocated to this VM in Megabytes.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="start_hpa" type="HexFormat" default="0x100000000">
<xs:annotation acrn:views="advanced" acrn:applicable-vms="pre-launched, service-vm">
<xs:documentation>The starting physical address in host for the VM.</xs:documentation>
@ -224,4 +229,11 @@ CLOSID 0 and the second is mapped to virtual CLOSID 1, etc.</xs:documentation>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="OSType">
<xs:restriction base="xs:string">
<xs:enumeration value="Non-Windows OS" />
<xs:enumeration value="Windows OS" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -404,6 +404,70 @@ its ``id`` attribute.</xs:documentation>
<xs:documentation>Enable virtualization of PCIE Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. HV provides PCIE root port emulation instead of host bridge emulation for VM , PTM could coordinate timing between device and root port with devices local timebases without relying on software.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="os_type" type="OSType" default="Non-Windows OS">
<xs:annotation acrn:title="OS type" acrn:applicable-vms="post-launched" acrn:views="basic">
<xs:documentation>Specify user VM OS type, for config tool to format the DM commandline. If it is windows, then add -windows to DM parameter. It supports Oracle virtio-blk, virtio-net and virtio-input devices for Windows guests with secure boot. For windows guest vm this option is mandatory for running Windows in a User VM. If it is not used, Windows will not recognize the virtual disk. When it is linux like OS , config tool also format the related parameters in the same way.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="vbootloader" type="EnablementType" default="Enable">
<xs:annotation acrn:title="OVMF (Open Virtual Machine Firmware)" acrn:applicable-vms="post-launched" acrn:views="basic">
<xs:documentation>Specify if to use virtual boot loader OVMF (Open Virtual Machine Firmware) to boot User VM, right now ovmf is the only virtual boot loader supported. User could also disable this to use another boot protocol with parameter -K set.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="vuart0" type="EnablementType" default="Enable">
<xs:annotation acrn:title="Emulate COM1 as standard I/O" acrn:applicable-vms="post-launched" acrn:views="basic">
<xs:documentation>Enable ACRN Device Model to emulate COM1 as a User VM standard IO.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="usb_xhci" minOccurs="0">
<xs:annotation acrn:views="basic" acrn:applicable-vms="post-launched">
<xs:documentation>Device model emulates USB controller used to support USB 3.0 devices, (also supports USB 2.0 and USB 1.0 devices). The physical USB devices attached on the specified bus and port in service VM will be detected by User VM and used as expected as parameters setting.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:annotation>
<xs:documentation>Input format: bus#-port#[:bus#-port#: ...]. e.g.: 1-2:2-4</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="([\d]+-[\d]+){0,1}(:[\d]+-[\d]+)*" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="virtio_devices">
<xs:annotation acrn:title="Virt-IO devices" acrn:views="basic" acrn:applicable-vms="post-launched">
<xs:documentation>Enable virt-IO devices in post-launched VMs.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element name="console" type="xs:string" minOccurs="0">
<xs:annotation acrn:views="basic">
<xs:documentation>The virtio console device setting.Input format:
``[@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]``</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="network" type="xs:string" minOccurs="0">
<xs:annotation acrn:views="basic">
<xs:documentation>The virtio network device setting.
Input format: ``device_name[,vhost][,mac=XX:XX:XX:XX:XX:XX]``.
The ``device_name`` is the name of the TAP (or MacVTap) device.
It must include the keyword ``tap``. ``vhost`` specifies the
vhost backend; otherwise, the VBSU backend is used. The ``mac``
address is optional.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="input" type="xs:string" minOccurs="0">
<xs:annotation acrn:views="basic">
<xs:documentation>The virtio input device setting.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="block" type="xs:string" minOccurs="0">
<xs:annotation acrn:views="basic">
<xs:documentation>The virtio block device setting.
Format: [blk partition:][img path] e.g.: /dev/sda3:./a/b.img</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="id" type="xs:integer" />
</xs:complexType>

View File

@ -13,6 +13,13 @@
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EnablementType">
<xs:restriction base="xs:string">
<xs:enumeration value="Enable" />
<xs:enumeration value="Disable" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexFormat">
<xs:annotation>
<xs:documentation>An Integer value in hexadecimal format.</xs:documentation>

View File

@ -47,7 +47,9 @@
<xsl:call-template name="ivshmem_shm_mem" />
<xsl:apply-templates select="console_vuart" />
<xsl:apply-templates select="communication_vuart" />
<xsl:apply-templates select="pci_devs" />
<xsl:if test="acrn:is-pre-launched-vm(load_order)">
<xsl:apply-templates select="pci_devs" />
</xsl:if>
<xsl:if test="acrn:is-post-launched-vm(load_order)">
<xsl:apply-templates select="PTM" />
</xsl:if>