From 38f79d986b1d1eec31f7311ef89bcd7b8838dd44 Mon Sep 17 00:00:00 2001 From: Weiyi Feng Date: Mon, 25 Apr 2022 21:55:52 +0800 Subject: [PATCH] config_tools: fix build issue fix build issue Tracked-On: #6691 Signed-off-by: Weiyi Feng --- misc/config_tools/configurator/README.md | 19 +- .../configurator/requirements.txt | 4 + .../configurator/src-tauri/Cargo.toml | 2 +- .../src/assets/schema/scenario.json | 1369 +++++++++-------- .../src/components/HelloWorld.vue | 21 - .../src/components/common/ControlBar.vue | 3 +- misc/config_tools/configurator/src/main.js | 4 +- .../src/pages/Config/Scenario.vue | 2 +- .../scenario_config/jsonschema/converter.py | 1 + 9 files changed, 778 insertions(+), 647 deletions(-) delete mode 100644 misc/config_tools/configurator/src/components/HelloWorld.vue diff --git a/misc/config_tools/configurator/README.md b/misc/config_tools/configurator/README.md index 1a20730c2..fcdc20618 100644 --- a/misc/config_tools/configurator/README.md +++ b/misc/config_tools/configurator/README.md @@ -8,7 +8,6 @@ This version is based on Tauri, WIP. - [x] Linux (.deb, AppImage) - [x] Windows 7,8,10 (.exe, .msi) -- [x] macOS (.app, .dmg) ## Setting Up @@ -18,6 +17,12 @@ This version is based on Tauri, WIP. Please follow [this guide](https://tauri.studio/docs/getting-started/prerequisites) to install system dependencies **(including yarn)**. +#### Linux + +In Linux, + +#### Windows + In Windows, [chocolatey](https://chocolatey.org/) is a Windows package manager, you can use `choco install xsltproc` to install `xsltproc` package, which provide `xmllint` command. @@ -29,17 +34,17 @@ which provide `xmllint` command. ```bash sudo apt install git git clone https://github.com/projectacrn/acrn-hypervisor -cd acrn-hypervisor/misc/config_tools/configurator +cd acrn-hypervisor/misc/config_tools +python3 -m pip install -r requirements.txt +cd configurator python3 -m pip install -r requirements.txt yarn ``` -#### Windows && macOS +#### Windows Similar to Linux. -On macOS, you may need to install git and python3 via `brew`. - In the Windows environment maybe you need to install git and python3 via chocolatey or manually, and replace the command line `python3` with `py -3`. @@ -53,7 +58,7 @@ Run this command in the acrn-hypervisor directory. make configurator ``` -#### Windows/macOS +#### Windows Run following command in the 'acrn-hypervisor' directory. @@ -81,7 +86,7 @@ sudo apt install ./build/acrn-configurator_*.deb acrn-configurator ``` -#### Windows/macOS +#### Windows You can find msi(Windows)/dmg(macOS) folder under the `misc/config_tools/configurator/src-tauri/target/release/bundle` diff --git a/misc/config_tools/configurator/requirements.txt b/misc/config_tools/configurator/requirements.txt index 404cda000..8d1a66a9e 100644 --- a/misc/config_tools/configurator/requirements.txt +++ b/misc/config_tools/configurator/requirements.txt @@ -1,3 +1,7 @@ build tqdm requests +lxml +xmltodict +sphinx +bs4 diff --git a/misc/config_tools/configurator/src-tauri/Cargo.toml b/misc/config_tools/configurator/src-tauri/Cargo.toml index 56e3c483b..e7206d0d6 100644 --- a/misc/config_tools/configurator/src-tauri/Cargo.toml +++ b/misc/config_tools/configurator/src-tauri/Cargo.toml @@ -17,7 +17,7 @@ tauri-build = { version = "1.0.0-rc.5", features = [] } [dependencies] serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } -tauri = { version = "1.0.0-rc.6", features = ["api-all"] } +tauri = { version = "1.0.0-rc.6", features = ["api-all", "devtools"] } log = "0.4" glob = "0.3" dirs = "4.0" diff --git a/misc/config_tools/configurator/src/assets/schema/scenario.json b/misc/config_tools/configurator/src/assets/schema/scenario.json index 31b7d86be..44634fa84 100644 --- a/misc/config_tools/configurator/src/assets/schema/scenario.json +++ b/misc/config_tools/configurator/src/assets/schema/scenario.json @@ -189,6 +189,14 @@ 512 ] }, + "CacheType": { + "type": "string", + "enum": [ + "Unified", + "Code", + "Data" + ] + }, "LoadOrderType": { "type": "string", "enum": [ @@ -242,6 +250,31 @@ "PCI" ] }, + "VirtioNetworkFrameworkType": { + "type": "string", + "enum": [ + "Kernel based (Virtual Host)", + "User space based (VBSU)" + ] + }, + "VirtioConsoleUseType": { + "type": "string", + "enum": [ + "Virtio console", + "Virtio serial port" + ] + }, + "VirtioConsoleBackendType": { + "type": "string", + "enum": [ + "pty", + "stdio", + "file", + "sock client", + "sock server", + "tty" + ] + }, "OSType": { "type": "string", "enum": [ @@ -260,6 +293,26 @@ "Standard" ] }, + "BasicVMKernelType": { + "type": "string", + "enum": [ + "KERNEL_BZIMAGE", + "KERNEL_ELF" + ] + }, + "AdvancedSchedulerType": { + "type": "string", + "enum": [ + "SCHED_NOOP", + "SCHED_BVT", + "SCHED_PRIO" + ], + "enumNames": [ + "No-Operation (NOOP)", + "Borrowed Virtual Time", + "Priority Based Scheduling" + ] + }, "IVSHMEMVM": { "type": "object", "required": [ @@ -270,12 +323,12 @@ "VM_NAME": { "$ref": "#/definitions/VMNameType", "title": "Shared VMs", - "description": "
\n

\n Name of the VM that uses this shared memory region.\n

\n
\n" + "description": "

Name of the VM that uses this shared memory region.

" }, "VBDF": { "$ref": "#/definitions/VBDFType", "title": "Virtual BDF", - "description": "
\n

\n Virtual BDF (Bus Device Function) is automatically assigned and can be changed if needed. Set in Hex.\n

\n
\n" + "description": "

Virtual BDF (Bus Device Function) is automatically assigned and can be changed if needed. Set in Hex.

" } } }, @@ -291,7 +344,7 @@ }, "type": "array", "title": "IVSHMEM_VM", - "description": "
\n

\n Select all VMs that use the shared memory region.\n

\n
\n" + "description": "

Select all VMs that use the shared memory region.

" } } }, @@ -308,24 +361,24 @@ "type": "string", "pattern": "^\\w+$", "title": "Name", - "description": "
\n

\n Name of the shared memory region.\n

\n
\n" + "description": "

Name of the shared memory region.

" }, "PROVIDED_BY": { "$ref": "#/definitions/ProviderType", "default": "Hypervisor", "title": "Emulated by", - "description": "
\n

\n Whether the shared memory region is emulated by the hypervisor or Device Model.\n

\n
\n" + "description": "

Whether the shared memory region is emulated by the hypervisor or Device Model.

" }, "IVSHMEM_SIZE": { "$ref": "#/definitions/IVSHMEMSize", "default": 2, "title": "Size (MB)", - "description": "
\n

\n Select the size of the shared memory region\nin megabytes. The value should be a power of 2\nand no more than 512.\n

\n
\n" + "description": "

Select the size of the shared memory region\nin megabytes. The value should be a power of 2\nand no more than 512.

" }, "IVSHMEM_VMS": { "$ref": "#/definitions/IVSHMEMVMS", "title": "Shared VMs", - "description": "
\n

\n Select all VMs that use the shared memory region.\n

\n
\n" + "description": "

Select all VMs that use the shared memory region.

" } } }, @@ -338,7 +391,7 @@ }, "type": "array", "title": "IVSHMEM_REGION", - "description": "
\n

\n Create a memory region for VMs to share: specify its name, size, and associated VMs.\n

\n
\n" + "description": "

Create a memory region for VMs to share: specify its name, size, and associated VMs.

" } } }, @@ -354,35 +407,19 @@ "$ref": "#/definitions/Boolean", "default": "n", "title": "Intel Resource Director Tech", - "description": "
\n

\n Enable Intel Resource Director Technology (RDT). If\nthe board hardware does not support\nRDT, setting this option to\n \n y\n \n is ignored.\n

\n
\n" + "description": "

Enable Intel Resource Director Technology (RDT). If\nthe board hardware does not support\nRDT, setting this option to y is ignored.

" }, "CDP_ENABLED": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Code and Data Prioritization", - "description": "
\n

\n Enable Code and Data Prioritization (CDP). CDP provides control over code and data placement in cache to improve an application's real-time performance.\n

\n
\n" + "description": "

Enable Code and Data Prioritization (CDP). CDP provides control over code and data placement in cache to improve an application's real-time performance.

" }, "VCAT_ENABLED": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" - }, - "CLOS_MASK": { - "type": "array", - "items": { - "type": "string" - }, - "title": "CLOS_MASK", - "description": "
\n

\n Specify the cache capacity bitmask for the CLOS; only continuous '1' bits\nare allowed. The value will be ignored when hardware does not support RDT.\nThis option takes effect only if\n \n hv.FEATURES.RDT.RDT_ENABLED\n \n is set to\n \n y\n \n .\nAs\n \n vm.clos.vcpu_clos\n \n specifies the index of the CLOS to be associated with the given vCPU,\n \n hv.FEATURES.RDT.CLOS_MASK\n \n of that CLOS would impact the performance of the given vCPU.\n

\n
\n" - }, - "MBA_DELAY": { - "type": "array", - "items": { - "type": "string" - }, - "title": "MBA_DELAY", - "description": "
\n

\n Memory Bandwidth Allocation delay value.\n

\n
\n" + "description": "

Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.

" } } }, @@ -396,24 +433,107 @@ "$ref": "#/definitions/Boolean", "default": "n", "title": "Software SRAM", - "description": "
\n

\n Enable Software SRAM. This feature reserves memory buffers as always-cached memory to improve an application's real-time performance.\n

\n
\n" + "description": "

Enable Software SRAM. This feature reserves memory buffers as always-cached memory to improve an application's real-time performance.

" + } + } + }, + "CachePolicyType": { + "type": "object", + "required": [ + "VM", + "VCPU", + "TYPE", + "CLOS_MASK" + ], + "properties": { + "VM": { + "type": "string" + }, + "VCPU": { + "type": "integer" + }, + "TYPE": { + "$ref": "#/definitions/CacheType" + }, + "CLOS_MASK": { + "$ref": "#/definitions/HexFormat" + } + } + }, + "CacheAllocationType": { + "type": "object", + "required": [ + "CACHE_ID", + "CACHE_LEVEL", + "POLICY" + ], + "properties": { + "CACHE_ID": { + "type": "integer" + }, + "CACHE_LEVEL": { + "type": "integer" + }, + "POLICY": { + "items": { + "$ref": "#/definitions/CachePolicyType" + }, + "type": "array" + } + } + }, + "CacheRegionType": { + "type": "object", + "required": [ + "CACHE_ALLOCATION" + ], + "properties": { + "CACHE_ALLOCATION": { + "items": { + "$ref": "#/definitions/CacheAllocationType" + }, + "type": "array" } } }, "CPUAffinityConfiguration": { "type": "object", "required": [ - "pcpu_id" + "pcpu_id", + "real_time_vcpu" ], "properties": { "pcpu_id": { - "type": "array", + "type": "integer", + "default": 2, + "title": "pCPU ID", + "description": "

ID of the pCPU that this VM's vCPU is allowed to pin to.

", + "enum": { + "type": "dynamicEnum", + "function": "get_enum", + "source": "board_xml", + "selector": "//processors//thread/cpu_id/text()", + "sorted": "int" + } + }, + "real_time_vcpu": { + "$ref": "#/definitions/Boolean", + "default": "n", + "title": "Real-time vCPU", + "description": "

Whether this vCPU is used for real-time-critical workloads.

" + } + } + }, + "CPUAffinityConfigurations": { + "type": "object", + "properties": { + "pcpu": { "items": { - "type": "integer", - "default": 2 + "$ref": "#/definitions/CPUAffinityConfiguration" }, - "title": "pcpu_id", - "description": "
\n

\n A pCPU that this VM's vCPU is allowed to pin\nto.\n

\n
\n" + "type": "array", + "title": "pcpu", + "description": "

A pCPU that this VM's vCPU is allowed to pin to.

" } } }, @@ -424,13 +544,13 @@ ], "properties": { "vcpu_clos": { - "type": "array", "items": { "type": "integer", "default": 0 }, + "type": "array", "title": "vcpu_clos", - "description": "
\n

\n By default (\n \n virtual_cat_support\n \n is not specified):\nvcpu_clos is per-CPU and it configures each CPU in VMs to a desired CLOS ID in the\n \n VM\n \n section of the\nscenario file. Follow\n \n RDT Detection and Resource Capabilities\n \n to identify the maximum supported CLOS ID that can be used.\n

\n

\n If\n \n virtual_cat_support\n \n is specified:\nvcpu_clos is not per-CPU anymore, just a list of physical CLOSIDs (minimum 2) that are assigned to VMs\nfor vCAT use. Each vcpu_clos will be mapped to a virtual CLOSID, the first vcpu_clos is mapped to virtual\nCLOSID 0 and the second is mapped to virtual CLOSID 1, etc.\n

\n
\n" + "description": "

By default (virtual_cat_support is not specified):\nvcpu_clos is per-CPU and it configures each CPU in VMs to a desired CLOS ID in the VM section of the\nscenario file. Follow RDT Detection and Resource Capabilities to identify the maximum supported CLOS ID that can be used.

\n\n\n

If virtual_cat_support is specified:\nvcpu_clos is not per-CPU anymore, just a list of physical CLOSIDs (minimum 2) that are assigned to VMs\nfor vCAT use. Each vcpu_clos will be mapped to a virtual CLOSID, the first vcpu_clos is mapped to virtual\nCLOSID 0 and the second is mapped to virtual CLOSID 1, etc.

" } } }, @@ -445,91 +565,89 @@ "$ref": "#/definitions/HexFormat", "default": 0, "title": "EPC section base", - "description": "
\n

\n Specify the enclave page cache (EPC) section base for Intel Software Guard Extensions (SGX). Must be page aligned.\n

\n
\n" + "description": "

Specify the enclave page cache (EPC) section base for Intel Software Guard Extensions (SGX). Must be page aligned.

" }, "size": { "$ref": "#/definitions/HexFormat", "default": 0, "title": "EPC section size (bytes)", - "description": "
\n

\n Specify the enclave page cache (EPC) section size in bytes for Intel Software Guard Extensions (SGX). Must be page aligned.\n

\n
\n" + "description": "

Specify the enclave page cache (EPC) section size in bytes for Intel Software Guard Extensions (SGX). Must be page aligned.

" + } + } + }, + "HPARegionType": { + "type": "object", + "required": [ + "start_hpa", + "size_hpa" + ], + "properties": { + "start_hpa": { + "$ref": "#/definitions/HexFormat", + "title": "Start physical address", + "description": "

Specify the starting address for non-contiguous allocation.

" + }, + "size_hpa": { + "type": "integer", + "title": "Size (MB)", + "description": "

Specify the physical memory size for non-contiguous allocation in megabytes.\nThe size is a subset of the VM's total memory size specified on the Basic tab.

" } } }, "MemoryInfo": { "type": "object", - "required": [ - "whole", - "start_hpa" - ], "properties": { - "whole": { + "size": { "type": "integer", "default": 256, "title": "Memory size (MB)", - "description": "
\n

\n Specify the physical memory size allocated to this VM in megabytes.\n

\n
\n" + "description": "

Specify the physical memory size allocated to this VM in megabytes.

" }, - "start_hpa": { - "$ref": "#/definitions/HexFormat", - "default": "0x100000000", - "title": "start_hpa", - "description": "
\n

\n The starting physical address in host for the VM.\n

\n
\n" - }, - "size": { - "$ref": "#/definitions/MemorySizeType", - "default": "0x20000000", - "title": "size", - "description": "
\n

\n The memory size in bytes for the VM. Default value is\n \n 0x200000000\n \n .\n

\n
\n" - }, - "start_hpa2": { - "$ref": "#/definitions/HexFormat", - "default": "0x0", - "title": "start_hpa2", - "description": "
\n

\n Start of second HPA for non-contiguous allocations in host for the VM.\n

\n
\n" - }, - "size_hpa2": { - "$ref": "#/definitions/MemorySizeType", - "default": "0x0", - "title": "size_hpa2", - "description": "
\n

\n Memory size of second HPA for non-contiguous allocations in Bytes for the VM.\n

\n
\n" + "hpa_region": { + "items": { + "$ref": "#/definitions/HPARegionType" + }, + "type": "array", + "title": "Physical memory segmentation", + "description": "

Specify Physical memory information for Prelaunched VM

" } } }, "OSConfigurations": { "type": "object", "required": [ - "kern_type", - "kern_mod" + "kern_type" ], "properties": { "kern_type": { "$ref": "#/definitions/VMKernelType", "title": "Kernel image type", - "description": "
\n

\n Select the kernel image type so that the hypervisor can load it correctly.\n

\n
\n" + "description": "

Select the kernel image type so that the hypervisor can load it correctly.

" }, "kern_mod": { "type": "string", "title": "Kernel module tag", - "description": "
\n

\n Specify the tag for the kernel image that is used as a multiboot module. The tag's spelling must exactly match the module tag in the GRUB multiboot cmdline.\n

\n
\n" + "description": "

Specify the tag for the kernel image that is used as a multiboot module. The tag's spelling must exactly match the module tag in the GRUB multiboot cmdline.

" }, "ramdisk_mod": { "type": "string", "title": "RAMdisk module tag", - "description": "
\n

\n Specify the tag for the RAMdisk image that is used as a multiboot module. The tag's spelling must exactly match the module tag in the GRUB multiboot cmdline.\n

\n
\n" + "description": "

Specify the tag for the RAMdisk image that is used as a multiboot module. The tag's spelling must exactly match the module tag in the GRUB multiboot cmdline.

" }, "bootargs": { "type": "string", "title": "Kernel command-line parameters", - "description": "
\n

\n Specify the command-line parameters that will be used to boot the kernel for this VM. See\n \n Linux documentation\n \n for a list of parameters.\n

\n
\n" + "description": "

Specify the command-line parameters that will be used to boot the kernel for this VM. See Linux documentation for a list of parameters.

" }, "kern_load_addr": { "$ref": "#/definitions/KernLoadAddr", "title": "kern_load_addr", - "description": "
\n

\n The loading address in host memory for the VM kernel.\n

\n
\n" + "description": "

The loading address in host memory for the VM kernel.

" }, "kern_entry_addr": { "$ref": "#/definitions/KernEntryAddr", "title": "kern_entry_addr", - "description": "
\n

\n The entry address in host memory for the VM kernel.\n

\n
\n" + "description": "

The entry address in host memory for the VM kernel.

" } } }, @@ -537,28 +655,25 @@ "type": "object", "required": [ "vm_name", - "io_port" + "io_port", + "vbdf" ], "properties": { "vm_name": { "type": "string", "title": "Virtual UART port", - "description": "
\n

\n Virtual UART port\n

\n
\n" + "description": "

Virtual UART port

" }, "io_port": { "$ref": "#/definitions/HexFormat", "default": "0x3F", "title": "Virtual I/O address", - "description": "
\n

\n Specify the COM base for each legacy virtual UART.\n

\n
\n" + "description": "

Specify the COM base for each legacy virtual UART.

" }, "vbdf": { - "items": { - "$ref": "#/definitions/VBDFType" - }, - "type": "array", - "maxItems": 1, + "$ref": "#/definitions/VBDFType", "title": "Virtual BDF", - "description": "
\n

\n Specify the virtual Bus:Device.Function (BDF) for each PCI virtual UART. Virtual BDF is automatically assigned when the configuration is saved and can be changed if needed.\n

\n
\n" + "description": "

Specify the virtual Bus:Device.Function (BDF) for each PCI virtual UART. Virtual BDF is automatically assigned when the configuration is saved and can be changed if needed.

" } } }, @@ -571,13 +686,15 @@ ], "properties": { "name": { - "type": "string" + "type": "string", + "title": "name", + "description": "

Specify the vUART name.

" }, "type": { "$ref": "#/definitions/VuartType", "default": "legacy", "title": "Type", - "description": "
\n

\n Select the communication virtual UART (vUART) type.\n

\n
\n" + "description": "

Select the communication virtual UART (vUART) type.

" }, "endpoint": { "minItems": 2, @@ -607,13 +724,13 @@ "$ref": "#/definitions/Boolean", "default": "n", "title": "TPM2 passthrough", - "description": "
\n

\n Enable passthrough of the trusted platform module (TPM2) device to this VM.\n

\n
\n" + "description": "

Enable passthrough of the trusted platform module (TPM2) device to this VM.

" }, "p2sb": { "$ref": "#/definitions/Boolean", "default": "n", "title": "P2SB bridge passthrough", - "description": "
\n

\n Enable passthrough of the Primary-to-Sideband (P2SB) bridge register access BAR to this VM.\n

\n
\n" + "description": "

Enable passthrough of the Primary-to-Sideband (P2SB) bridge register access BAR to this VM.

" } } }, @@ -621,12 +738,12 @@ "type": "object", "properties": { "pci_dev": { - "type": "array", "items": { "type": "string" }, + "type": "array", "title": "PCI device assignment", - "description": "
\n

\n Select the PCI devices you want to assign to this virtual machine.\n

\n
\n", + "description": "

Select the PCI devices you want to assign to this virtual machine.

", "enum": { "type": "dynamicEnum", "function": "get_enum", @@ -637,6 +754,81 @@ } } }, + "VirtioNetworkConfiguration": { + "type": "object", + "properties": { + "virtio_framework": { + "$ref": "#/definitions/VirtioNetworkFrameworkType", + "default": "User space based (VBSU)", + "title": "Virtio framework", + "description": "

Specify the virtio framework for specific virtio network device implemented in the Service VM.

" + }, + "interface_name": { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-]+$", + "title": "Network interface name", + "description": "

Specify the network interface name that will appear in the Service VM. Use the ip a command in the Service VM to display the network interface names.

" + } + } + }, + "VirtioConsoleConfiguration": { + "type": "object", + "properties": { + "use_type": { + "$ref": "#/definitions/VirtioConsoleUseType", + "title": "Use type", + "description": "

Specify device type in guest, ether HVC console when user config it as virtio console or /dev/vportXpY\ndevice file when user config it as virtio serial port, which can be read and written from the user space.

" + }, + "backend_type": { + "$ref": "#/definitions/VirtioConsoleBackendType", + "title": "Backend type", + "description": "

Specify backend device type in service VM.

" + }, + "output_file_path": { + "items": { + "type": "string" + }, + "type": "array", + "maxItems": 1, + "title": "Output file path", + "description": "

The output file path for the file backend type.

" + }, + "sock_file_path": { + "items": { + "type": "string" + }, + "type": "array", + "maxItems": 1, + "title": "Sock file path", + "description": "

The sock file path for the sock server or client backend type.

" + }, + "tty_device_path": { + "items": { + "type": "string" + }, + "type": "array", + "maxItems": 1, + "title": "TTY device path", + "description": "

The device path for the tty backend type.

" + } + } + }, + "VirtioInputConfiguration": { + "type": "object", + "properties": { + "backend_device_file": { + "type": "string", + "title": "Backend device file", + "description": "

Specifying backend device in service vm with device description.

" + }, + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-]*$", + "title": "Guest virtio input device unique identifier", + "description": "

Specifying unique identifier to distinguish same devices in guest.

" + } + } + }, "DebugOptionsType": { "type": "object", "required": [ @@ -651,12 +843,12 @@ "$ref": "#/definitions/BuildType", "default": "debug", "title": "Build type", - "description": "
\n

\n Select the build type:\n

\n
    \n
  • \n

    \n \n Debug\n \n enables the debug shell, prints, and logs.\n

    \n
  • \n
  • \n

    \n \n Release\n \n optimizes the ACRN binary for deployment and turns off all debug infrastructure.\n

    \n
  • \n
\n

\n These settings can only be changed at build time.\n

\n
\n" + "description": "

Select the build type:

\n\n\n\n\n\n

These settings can only be changed at build time.

" }, "SERIAL_CONSOLE": { "$ref": "#/definitions/SerialConsoleOptions", "title": "Serial console port", - "description": "
\n

\n Select the host serial device used for hypervisor debugging.\n

\n
\n", + "description": "

Select the host serial device used for hypervisor debugging.

", "enum": { "type": "dynamicEnum", "function": "get_enum", @@ -669,28 +861,28 @@ "$ref": "#/definitions/LogLevelType", "default": 0, "title": "ACRN log level", - "description": "
\n

\n Select the default log level for log messages stored in memory. Value can be changed at runtime. Log messages with the selected value or lower are displayed.\n

\n
\n" + "description": "

Select the default log level for log messages stored in memory. Value can be changed at runtime. Log messages with the selected value or lower are displayed.

" }, "NPK_LOGLEVEL": { "$ref": "#/definitions/LogLevelType", "default": 0, "title": "Intel Trace Hub log level", - "description": "
\n

\n Select the default log level for the hypervisor via Intel Trace Hub log. Use the Intel Trace Hub's memory to record log messages. Value can be changed at runtime. Log messages with the selected value or lower are displayed.\n

\n
\n" + "description": "

Select the default log level for the hypervisor via Intel Trace Hub log. Use the Intel Trace Hub's memory to record log messages. Value can be changed at runtime. Log messages with the selected value or lower are displayed.

" }, "CONSOLE_LOGLEVEL": { "$ref": "#/definitions/LogLevelType", "default": 0, "title": "Serial console log level", - "description": "
\n

\n Select the default log level for log messages written to the serial console. Log messages with the selected value or lower are displayed.\n

\n
\n" + "description": "

Select the default log level for log messages written to the serial console. Log messages with the selected value or lower are displayed.

" } } }, "FeatureOptionsType": { "type": "object", "required": [ - "RELOC", + "RELOC_ENABLED", "SCHEDULER", - "MULTIBOOT2", + "MULTIBOOT2_ENABLED", "ENFORCE_TURNOFF_AC", "ENFORCE_TURNOFF_GP", "SECURITY_VM_FIXUP", @@ -704,92 +896,92 @@ "IVSHMEM" ], "properties": { - "RELOC": { + "RELOC_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Hypervisor relocation", - "description": "
\n

\n Enable hypervisor relocation in memory. The bootloader may need to change the location of the hypervisor because of other firmware.\n

\n
\n" + "description": "

Enable hypervisor relocation in memory. The bootloader may need to change the location of the hypervisor because of other firmware.

" }, "SCHEDULER": { "$ref": "#/definitions/SchedulerType", "default": "SCHED_BVT", "title": "Virtual CPU scheduler", - "description": "
\n

\n Select the scheduling algorithm for determining the priority of User VMs running on a shared virtual CPU.\n

\n
\n" + "description": "

Select the scheduling algorithm for determining the priority of User VMs running on a shared virtual CPU.

" }, - "MULTIBOOT2": { + "MULTIBOOT2_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Multiboot2", - "description": "
\n

\n Enable multiboot2 protocol support (with multiboot1 downward compatibility). If multiboot1 meets your requirements, disable this feature to reduce hypervisor code size.\n

\n
\n" + "description": "

Enable multiboot2 protocol support (with multiboot1 downward compatibility). If multiboot1 meets your requirements, disable this feature to reduce hypervisor code size.

" }, "ENFORCE_TURNOFF_AC": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Split lock detection", - "description": "
\n

\n Enable detection of split locks. A split lock can negatively affect an application's real-time performance. If a lock is detected, an alignment check exception #AC occurs.\n

\n
\n" + "description": "

Enable detection of split locks. A split lock can negatively affect an application's real-time performance. If a lock is detected, an alignment check exception #AC occurs.

" }, "ENFORCE_TURNOFF_GP": { "$ref": "#/definitions/Boolean", "default": "n", "title": "UC lock detection", - "description": "
\n

\n Enable detection of uncacheable-memory (UC) locks. A UC lock can negatively affect an application's real-time performance. If a lock is detected, a general-protection exception #GP occurs.\n

\n
\n" + "description": "

Enable detection of uncacheable-memory (UC) locks. A UC lock can negatively affect an application's real-time performance. If a lock is detected, a general-protection exception #GP occurs.

" }, "SECURITY_VM_FIXUP": { "$ref": "#/definitions/Boolean", "default": "n", "title": "SECURITY_VM_FIXUP", - "description": "
\n

\n Enable to do fixup for TPM2 and SMBIOS for Security VM. If no Security VM, setting this option to\n \n n\n \n

\n
\n" + "description": "

Enable to do fixup for TPM2 and SMBIOS for Security VM. If no Security VM, setting this option to n

" }, "KEEP_IRQ_DISABLED": { "$ref": "#/definitions/Boolean", "default": "n", "title": "KEEP_IRQ_DISABLED", - "description": "
\n

\n If\n \n y\n \n , permanently disables all interrupts in HV root mode.\n

\n
\n" + "description": "

If y, permanently disables all interrupts in HV root mode.

" }, "RDT": { "$ref": "#/definitions/RDTType", "title": "Intel Resource Director Tech", - "description": "
\n

\n Intel Resource Director Technology (RDT) provides cache and memory bandwidth allocation features. The features can be used to improve an application's real-time performance.\n

\n
\n" + "description": "

Intel Resource Director Technology (RDT) provides cache and memory bandwidth allocation features. The features can be used to improve an application's real-time performance.

" }, "HYPERV_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Hyper-V", - "description": "
\n

\n Enable Microsoft Hyper-V Hypervisor Top-Level Functional Specification (TFLS) for User VMs running Windows.\n

\n
\n" + "description": "

Enable Microsoft Hyper-V Hypervisor Top-Level Functional Specification (TFLS) for User VMs running Windows.

" }, "IOMMU_ENFORCE_SNP": { "$ref": "#/definitions/Boolean", "default": "n", "title": "IOMMU_ENFORCE_SNP", - "description": "
\n

\n Specify if the IOMMU enforces snoop behavior of DMA operations.\n

\n
\n" + "description": "

Specify if the IOMMU enforces snoop behavior of DMA operations.

" }, "ACPI_PARSE_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Parse ACPI tables", - "description": "
\n

\n Enable ACPI runtime parsing to get DMAR (DMA remapping) configuration data from the APCI tables. Otherwise, use existing, static information from the associated board configuration file.\n

\n
\n" + "description": "

Enable ACPI runtime parsing to get DMAR (DMA remapping) configuration data from the APCI tables. Otherwise, use existing, static information from the associated board configuration file.

" }, "L1D_VMENTRY_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Mitigate L1 terminal fault", - "description": "
\n

\n Enable L1 cache flush before VM entry to prevent L1 terminal fault. L1 terminal fault is a hardware vulnerability that could allow unauthorized disclosure of information residing in the L1 data cache.\n

\n
\n" + "description": "

Enable L1 cache flush before VM entry to prevent L1 terminal fault. L1 terminal fault is a hardware vulnerability that could allow unauthorized disclosure of information residing in the L1 data cache.

" }, "MCE_ON_PSC_DISABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "MCE workaround", - "description": "
\n

\n Enable the software workaround for Machine Check Error on Page Size Change (erratum in some processor families).\n

\n
\n" + "description": "

Enable the software workaround for Machine Check Error on Page Size Change (erratum in some processor families).

" }, "IVSHMEM": { "$ref": "#/definitions/IVSHMEMInfo", "title": "Inter-VM shared memory", - "description": "
\n

\n Configure shared memory regions for inter-VM communication.\n

\n
\n" + "description": "

Configure shared memory regions for inter-VM communication.

" }, "SSRAM": { "$ref": "#/definitions/SSRAMInfo", "title": "Software SRAM", - "description": "
\n

\n Configure Software SRAM. This feature reserves memory buffers as always-cached memory to improve an application's real-time performance.\n

\n
\n" + "description": "

Configure Software SRAM. This feature reserves memory buffers as always-cached memory to improve an application's real-time performance.

" } } }, @@ -804,13 +996,13 @@ "$ref": "#/definitions/HexFormat", "default": "0x2000", "title": "CPU memory stack size (bytes)", - "description": "
\n

\n Specify the size of the memory stack in bytes for each physical CPU. For example, if you specify 8 kilobytes, each CPU will get its own 8-kilobyte stack.\n

\n
\n" + "description": "

Specify the size of the memory stack in bytes for each physical CPU. For example, if you specify 8 kilobytes, each CPU will get its own 8-kilobyte stack.

" }, "HV_RAM_START": { "$ref": "#/definitions/HexFormat", "default": "0x00400000", "title": "HV_RAM_START", - "description": "
\n

\n The 2MB-aligned starting physical address of the RAM region used by the hypervisor.\n

\n
\n" + "description": "

The 2MB-aligned starting physical address of the RAM region used by the hypervisor.

" } } }, @@ -830,7 +1022,7 @@ "type": "integer", "default": 16, "title": "MAX_VM_NUM", - "description": "
\n

\n Maximum number of User VMs allowed.\n

\n
\n" + "description": "

Maximum number of User VMs allowed.

" }, "MAX_IOAPIC_NUM": { "type": "integer", @@ -838,7 +1030,7 @@ "maximum": 10, "default": 1, "title": "MAX_IOAPIC_NUM", - "description": "
\n

\n Maximum number of IOAPICs.\n

\n
\n" + "description": "

Maximum number of IOAPICs.

" }, "MAX_PCI_DEV_NUM": { "type": "integer", @@ -846,7 +1038,7 @@ "maximum": 1024, "default": 96, "title": "Max PCI devices", - "description": "
\n

\n Specify the maximum number of PCI devices. This impacts the amount of memory used to maintain information about these PCI devices. The default value is calculated from the board configuration file. If you have PCI devices that were not detected by the Board Inspector, you may need to change this maximum value.\n

\n
\n" + "description": "

Specify the maximum number of PCI devices. This impacts the amount of memory used to maintain information about these PCI devices. The default value is calculated from the board configuration file. If you have PCI devices that were not detected by the Board Inspector, you may need to change this maximum value.

" }, "MAX_IOAPIC_LINES": { "type": "integer", @@ -854,13 +1046,13 @@ "maximum": 120, "default": 120, "title": "MAX_IOAPIC_LINES", - "description": "
\n

\n Maximum number of interrupt lines per IOAPIC.\n

\n
\n" + "description": "

Maximum number of interrupt lines per IOAPIC.

" }, "MAX_PT_IRQ_ENTRIES": { "type": "integer", "default": 256, "title": "Max passthrough IRQ entries", - "description": "
\n

\n Specify the maximum number of interrupt request (IRQ) entries from all passthrough devices.\n

\n
\n" + "description": "

Specify the maximum number of interrupt request (IRQ) entries from all passthrough devices.

" }, "MAX_MSIX_TABLE_NUM": { "type": "integer", @@ -868,7 +1060,7 @@ "maximum": 2048, "default": 64, "title": "Max MSI-X tables", - "description": "
\n

\n Specify the maximum number of Message Signaled Interrupt MSI-X tables per device. The default value is calculated from the board configuration file.\n

\n
\n" + "description": "

Specify the maximum number of Message Signaled Interrupt MSI-X tables per device. The default value is calculated from the board configuration file.

" }, "MAX_EMULATED_MMIO": { "type": "integer", @@ -876,7 +1068,7 @@ "maximum": 128, "default": 16, "title": "Max emulated MMIO regions", - "description": "
\n

\n Specify the maximum number of emulated MMIO regions for device virtualization. The default value is calculated from the board configuration file.\n

\n
\n" + "description": "

Specify the maximum number of emulated MMIO regions for device virtualization. The default value is calculated from the board configuration file.

" } } }, @@ -890,7 +1082,7 @@ "$ref": "#/definitions/HexFormat", "default": "0x00000010", "title": "GPU_SBDF", - "description": "
\n

\n Segment, Bus, Device, and function of the GPU.\n

\n
\n" + "description": "

Segment, Bus, Device, and function of the GPU.

" } } }, @@ -908,32 +1100,41 @@ "DEBUG_OPTIONS": { "$ref": "#/definitions/DebugOptionsType", "title": "Debug options", - "description": "
\n

\n Configure the debug facilities.\n

\n
\n" + "description": "

Configure the debug facilities.

" }, "FEATURES": { "$ref": "#/definitions/FeatureOptionsType", "title": "Hypervisor features", - "description": "
\n

\n Enable hypervisor features.\n

\n
\n" + "description": "

Enable hypervisor features.

" }, "MEMORY": { "$ref": "#/definitions/MemoryOptionsType", "title": "Memory options", - "description": "
\n

\n Configure memory used by the hypervisor.\n

\n
\n" + "description": "

Configure memory used by the hypervisor.

" }, "CAPACITIES": { "$ref": "#/definitions/CapacitiesOptionsType", "title": "Hypervisor capacities", - "description": "
\n

\n Configure the capacities of the hypervisor.\n

\n
\n" + "description": "

Configure the capacities of the hypervisor.

" }, "MISC_CFG": { "$ref": "#/definitions/MiscCfgOptionsType", "title": "MISC_CFG", - "description": "
\n

\n Miscellaneous options for workarounds.\n

\n
\n" + "description": "

Miscellaneous options for workarounds.

" }, "vuart_connections": { "$ref": "#/definitions/VuartConnectionsType", "title": "Inter-VM virtual UART connection", - "description": "
\n

\n Specify the vUART connection settings.\nRefer to\n \n Enable vUART Configurations\n \n for detailed vUART settings.\n

\n
\n" + "description": "

Specify the vUART connection settings.\nRefer to Enable vUART Configurations for detailed vUART settings.

" + }, + "CACHE_REGION": { + "items": { + "$ref": "#/definitions/CacheRegionType" + }, + "type": "array", + "maxItems": 1, + "title": "CACHE_REGION", + "description": "

Specify the cache setting.

" } } }, @@ -941,10 +1142,8 @@ "type": "object", "required": [ "load_order", - "vm_type", "name", "clos", - "memory", "priority", "companion_vmid", "console_vuart", @@ -957,12 +1156,12 @@ "load_order": { "$ref": "#/definitions/LoadOrderType", "title": "Load order", - "description": "
\n

\n Specify the load_order.\n

\n
\n" + "description": "

Specify the load_order.

" }, "vm_type": { "$ref": "#/definitions/VMType", "title": "VM type", - "description": "
\n

\n Select the VM type. A standard VM (\n \n STANDARD_VM\n \n ) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (\n \n RTVM\n \n ) offers special features for time-sensitive applications.\n

\n
\n" + "description": "

Select the VM type. A standard VM (STANDARD_VM) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (RTVM) offers special features for time-sensitive applications.

" }, "name": { "type": "string", @@ -970,102 +1169,102 @@ "maxLength": 15, "pattern": "^\\S+$", "title": "VM name", - "description": "
\n

\n Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.\n

\n
\n" + "description": "

Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.

" }, "lapic_passthrough": { "$ref": "#/definitions/Boolean", "default": "n", "title": "LAPIC passthrough", - "description": "
\n

\n Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "io_completion_polling": { "$ref": "#/definitions/Boolean", "default": "n", "title": "I/O completion polling", - "description": "
\n

\n Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "nested_virtualization_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Nested virtualization", - "description": "
\n

\n Enable nested virtualization for KVM.\n

\n
\n" + "description": "

Enable nested virtualization for KVM.

" }, "virtual_cat_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" + "description": "

Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.

" }, "secure_world_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "secure_world_support", - "description": "
\n

\n Specify secure world support for trusty OS.\n

\n
\n" + "description": "

Specify secure world support for trusty OS.

" }, "hide_mtrr_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "hide_mtrr_support", - "description": "
\n

\n Specify MTRR capability to hide for VM.\n

\n
\n" + "description": "

Specify MTRR capability to hide for VM.

" }, "security_vm": { "$ref": "#/definitions/Boolean", "default": "n", "title": "security_vm", - "description": "
\n

\n Specify TPM2 FIXUP for VM.\n

\n
\n" + "description": "

Specify TPM2 FIXUP for VM.

" }, "cpu_affinity": { - "$ref": "#/definitions/CPUAffinityConfiguration", + "$ref": "#/definitions/CPUAffinityConfigurations", "title": "Physical CPU affinity", - "description": "
\n

\n Select a subset of physical CPUs that this VM can use. More than one can be selected.\n

\n
\n" + "description": "

Select a subset of physical CPUs that this VM can use. More than one can be selected.

" }, "clos": { "$ref": "#/definitions/CLOSConfiguration", "title": "clos", - "description": "
\n

\n Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.\n

\n
\n" + "description": "

Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.

" }, "epc_section": { "$ref": "#/definitions/EPCSection", "title": "epc_section", - "description": "
\n

\n Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.\n

\n
\n" + "description": "

Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.

" }, "memory": { "$ref": "#/definitions/MemoryInfo", "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" + "description": "

Specify memory information for User VMs.

" }, "priority": { "$ref": "#/definitions/PriorityType", "default": "PRIO_LOW", "title": "priority", - "description": "
\n

\n Specify the VM vCPU priority for scheduling.\n

\n
\n" + "description": "

Specify the VM vCPU priority for scheduling.

" }, "companion_vmid": { "type": "integer", "default": 65535, "title": "companion_vmid", - "description": "
\n

\n Specify the companion VM id of this VM.\n

\n
\n" + "description": "

Specify the companion VM id of this VM.

" }, "os_config": { "$ref": "#/definitions/OSConfigurations", - "title": "os_config", - "description": "
\n

\n General information for host kernel, boot\nargument and memory.\n

\n
\n" + "title": "OS Configuration", + "description": "

General information for host kernel, boot\nargument and memory.

" }, "console_vuart": { "$ref": "#/definitions/ConsoleVuartConfiguration", "default": "None", "title": "Console virtual UART type", - "description": "
\n

\n Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).\n

\n
\n" + "description": "

Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).

" }, "mmio_resources": { "$ref": "#/definitions/MMIOResourcesConfiguration", "title": "mmio_resources", - "description": "
\n

\n MMIO resources to passthrough.\n

\n
\n" + "description": "

MMIO resources to passthrough.

" }, "pt_intx": { "type": "string", "title": "pt_intx", - "description": "
\n

\n Specify the pre-launched VM owned IOAPIC pins and the corresponding mapping between physical GSI and virtual GSI.\n

\n
\n" + "description": "

Specify the pre-launched VM owned IOAPIC pins and the corresponding mapping between physical GSI and virtual GSI.

" }, "pci_devs": { "$ref": "#/definitions/PCIDevsConfiguration", @@ -1076,103 +1275,134 @@ "$ref": "#/definitions/Boolean", "default": "y", "title": "Precision Time Measurement", - "description": "
\n

\n Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.\n

\n
\n" + "description": "

Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.

" }, "os_type": { "$ref": "#/definitions/OSType", "default": "Non-Windows OS", "title": "OS type", - "description": "
\n

\n Select the OS type for this VM. This is required to run Windows in a User VM. See\n \n Device Model Parameters\n \n for how to include this in the Device Model arguments.\n

\n
\n" + "description": "

Select the OS type for this VM. This is required to run Windows in a User VM. See Device Model Parameters for how to include this in the Device Model arguments.

" }, "vbootloader": { - "$ref": "#/definitions/EnablementType", - "default": "Enable", - "title": "Open Virtual Machine Firmware", - "description": "
\n

\n Use virtual bootloader OVMF (Open Virtual Machine Firmware) to boot this VM.\n

\n
\n" + "$ref": "#/definitions/Boolean", + "default": "y", + "title": "Enable Open Virtual Machine FW", + "description": "

Use virtual bootloader OVMF (Open Virtual Machine Firmware) to boot this VM.

" }, "vuart0": { - "$ref": "#/definitions/EnablementType", - "default": "Enable", + "$ref": "#/definitions/Boolean", + "default": "y", "title": "Emulate COM1 as stdio I/O", - "description": "
\n

\n Enable the ACRN Device Model to emulate COM1 as a User VM stdio I/O. Hypervisor global emulation will take priority over this VM setting.\n

\n
\n" + "description": "

Enable the ACRN Device Model to emulate COM1 as a User VM stdio I/O. Hypervisor global emulation will take priority over this VM setting.

" }, "usb_xhci": { "type": "string", "pattern": "^([\\d]+-[\\d]+){0,1}(:[\\d]+-[\\d]+)*$", "title": "Virtual USB HCI", - "description": "
\n

\n Select the USB physical bus and port number that will be emulated by the ACRN Device Model for this VM. USB 3.0, 2.0, and 1.0 are supported.\n

\n
\n" + "description": "

Select the USB physical bus and port number that will be emulated by the ACRN Device Model for this VM. USB 3.0, 2.0, and 1.0 are supported.

" }, "virtio_devices": { "type": "object", "properties": { "console": { - "type": "string", - "title": "console", - "description": "
\n

\n The virtio console device setting. Input format:\n \n \n [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]\n \n \n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioConsoleConfiguration" + }, + "type": "array", + "title": "Virtio console device", + "description": "

Virtio console device for data input and output.\nThe virtio console BE driver copies data from the frontend's transmitting virtqueue when it receives a kick on virtqueue (implemented as a vmexit).\nThe BE driver then writes the data to backend, and can be implemented as PTY, TTY, STDIO, and regular file.\nFor details, see Virtio-Console.

" }, "network": { - "type": "string", - "title": "network", - "description": "
\n

\n The virtio network device setting.\nInput format:\n \n \n device_name[,vhost][,mac=XX:XX:XX:XX:XX:XX]\n \n \n .\nThe\n \n device_name\n \n is the name of the TAP (or MacVTap) device.\nIt must include the keyword\n \n tap\n \n .\n \n vhost\n \n specifies the\nvhost backend; otherwise, the VBSU backend is used. The\n \n mac\n \n address is optional.\n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioNetworkConfiguration" + }, + "type": "array", + "title": "Virtio network device", + "description": "

The virtio network device emulates a virtual network interface card (NIC) for the VM. The frontend\nis the virtio network driver, simulating the virtual NIC. The backend could be: tap device /dev/net/tun,\nMacVTap device /dev/tapx, or vhost device /dev/vhost-net

" }, "input": { - "type": "string", - "title": "input", - "description": "
\n

\n The virtio input device setting.\n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioInputConfiguration" + }, + "type": "array", + "title": "Virtio input device", + "description": "

The virtio input device creates a virtual human interface device such as a keyboard,\nmouse, and tablet. It sends Linux input layer events over virtio.

" }, "block": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Virtio block device", + "description": "

The virtio-blk device presents a block device to the VM. Each virtio-blk device appears as a disk inside the VM.

" + }, + "gpu": { "type": "string", - "title": "block", - "description": "
\n

\n The virtio block device setting.\nFormat:\n \n [blk\n \n partition:][img\n \n path]\n \n . Example:\n \n \n /dev/sda3:./a/b.img\n \n \n .\n

\n
\n" + "title": "Virtio GPU device", + "description": "
\n
The virtio GPU device presents a GPU device to the VM.
\n

This feature enables you to view the VM's GPU output in the Service VM.

\n
\n
" } }, "title": "Virt-IO devices", - "description": "
\n

\n Enable virt-IO devices in post-launched VMs.\n

\n
\n" + "description": "

Enable virt-IO devices in post-launched VMs.

" } } }, "ACRNConfigType": { "type": "object", "required": [ - "hv" + "hv", + "vm" ], "properties": { "hv": { "$ref": "#/definitions/HVConfigType", - "title": "hv", - "description": "
\n

\n The hypervisor configuration defines a working scenario and target\nboard by configuring the hypervisor image features and capabilities such as\nsetting up the log and the serial port.\n

\n
\n" - } - } - }, - "PreLaunchedMemoryInfo": { - "type": "object", - "required": [ - "start_hpa" - ], - "properties": { - "start_hpa": { - "$ref": "#/definitions/HexFormat", - "default": "0x100000000", - "title": "start_hpa", - "description": "
\n

\n The starting physical address in host for the VM.\n

\n
\n" + "title": "Hypervisor Options", + "description": "

The hypervisor configuration defines a working scenario and target\nboard by configuring the hypervisor image features and capabilities such as\nsetting up the log and the serial port.

" }, - "size": { - "$ref": "#/definitions/MemorySizeType", - "default": "0x20000000", - "title": "size", - "description": "
\n

\n The memory size in bytes for the VM. Default value is\n \n 0x200000000\n \n .\n

\n
\n" - }, - "start_hpa2": { - "$ref": "#/definitions/HexFormat", - "default": "0x0", - "title": "start_hpa2", - "description": "
\n

\n Start of second HPA for non-contiguous allocations in host for the VM.\n

\n
\n" - }, - "size_hpa2": { - "$ref": "#/definitions/MemorySizeType", - "default": "0x0", - "title": "size_hpa2", - "description": "
\n

\n Memory size of second HPA for non-contiguous allocations in Bytes for the VM.\n

\n
\n" + "vm": { + "items": { + "oneOf": [ + { + "$ref": "#/definitions/PreLaunchedVMConfigType", + "if": { + "properties": { + "load_order": { + "const": "PRE_LAUNCHED_VM" + } + } + }, + "then": true, + "else": false + }, + { + "$ref": "#/definitions/ServiceVMConfigType", + "if": { + "properties": { + "load_order": { + "const": "SERVICE_VM" + } + } + }, + "then": true, + "else": false + }, + { + "$ref": "#/definitions/PostLaunchedVMConfigType", + "if": { + "properties": { + "load_order": { + "const": "POST_LAUNCHED_VM" + } + } + }, + "then": true, + "else": false + } + ] + }, + "type": "array", + "title": "Virtual Machine Options", + "description": "

VM configuration includes scenario-based VM configuration\ninformation that is used to describe the characteristics and attributes for\nall VMs in a user scenario. It also includes launch script-based VM\nconfiguration information, where parameters are passed to the device model\nto launch post-launched User VMs.

" } } }, @@ -1180,10 +1410,8 @@ "type": "object", "required": [ "load_order", - "vm_type", "name", "clos", - "memory", "priority", "companion_vmid", "console_vuart" @@ -1192,12 +1420,12 @@ "load_order": { "$ref": "#/definitions/LoadOrderType", "title": "Load order", - "description": "
\n

\n Specify the load_order.\n

\n
\n" + "description": "

Specify the load_order.

" }, "vm_type": { "$ref": "#/definitions/VMType", "title": "VM type", - "description": "
\n

\n Select the VM type. A standard VM (\n \n STANDARD_VM\n \n ) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (\n \n RTVM\n \n ) offers special features for time-sensitive applications.\n

\n
\n" + "description": "

Select the VM type. A standard VM (STANDARD_VM) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (RTVM) offers special features for time-sensitive applications.

" }, "name": { "type": "string", @@ -1205,102 +1433,96 @@ "maxLength": 15, "pattern": "^\\S+$", "title": "VM name", - "description": "
\n

\n Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.\n

\n
\n" + "description": "

Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.

" }, "lapic_passthrough": { "$ref": "#/definitions/Boolean", "default": "n", "title": "LAPIC passthrough", - "description": "
\n

\n Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "io_completion_polling": { "$ref": "#/definitions/Boolean", "default": "n", "title": "I/O completion polling", - "description": "
\n

\n Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" - }, - "nested_virtualization_support": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "Nested virtualization", - "description": "
\n

\n Enable nested virtualization for KVM.\n

\n
\n" + "description": "

Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "virtual_cat_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" + "description": "

Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.

" }, "secure_world_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "secure_world_support", - "description": "
\n

\n Specify secure world support for trusty OS.\n

\n
\n" + "description": "

Specify secure world support for trusty OS.

" }, "hide_mtrr_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "hide_mtrr_support", - "description": "
\n

\n Specify MTRR capability to hide for VM.\n

\n
\n" + "description": "

Specify MTRR capability to hide for VM.

" }, "security_vm": { "$ref": "#/definitions/Boolean", "default": "n", "title": "security_vm", - "description": "
\n

\n Specify TPM2 FIXUP for VM.\n

\n
\n" + "description": "

Specify TPM2 FIXUP for VM.

" }, "cpu_affinity": { - "$ref": "#/definitions/CPUAffinityConfiguration", + "$ref": "#/definitions/CPUAffinityConfigurations", "title": "Physical CPU affinity", - "description": "
\n

\n Select a subset of physical CPUs that this VM can use. More than one can be selected.\n

\n
\n" + "description": "

Select a subset of physical CPUs that this VM can use. More than one can be selected.

" }, "clos": { "$ref": "#/definitions/CLOSConfiguration", "title": "clos", - "description": "
\n

\n Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.\n

\n
\n" + "description": "

Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.

" }, "epc_section": { "$ref": "#/definitions/EPCSection", "title": "epc_section", - "description": "
\n

\n Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.\n

\n
\n" + "description": "

Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.

" }, "memory": { - "$ref": "#/definitions/PreLaunchedMemoryInfo", + "$ref": "#/definitions/MemoryInfo", "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" + "description": "

Specify memory information for User VMs.

" }, "priority": { "$ref": "#/definitions/PriorityType", "default": "PRIO_LOW", "title": "priority", - "description": "
\n

\n Specify the VM vCPU priority for scheduling.\n

\n
\n" + "description": "

Specify the VM vCPU priority for scheduling.

" }, "companion_vmid": { "type": "integer", "default": 65535, "title": "companion_vmid", - "description": "
\n

\n Specify the companion VM id of this VM.\n

\n
\n" + "description": "

Specify the companion VM id of this VM.

" }, "os_config": { "$ref": "#/definitions/OSConfigurations", - "title": "os_config", - "description": "
\n

\n General information for host kernel, boot\nargument and memory.\n

\n
\n" + "title": "OS Configuration", + "description": "

General information for host kernel, boot\nargument and memory.

" }, "console_vuart": { "$ref": "#/definitions/ConsoleVuartConfiguration", "default": "None", "title": "Console virtual UART type", - "description": "
\n

\n Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).\n

\n
\n" + "description": "

Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).

" }, "mmio_resources": { "$ref": "#/definitions/MMIOResourcesConfiguration", "title": "mmio_resources", - "description": "
\n

\n MMIO resources to passthrough.\n

\n
\n" + "description": "

MMIO resources to passthrough.

" }, "pt_intx": { "type": "string", "title": "pt_intx", - "description": "
\n

\n Specify the pre-launched VM owned IOAPIC pins and the corresponding mapping between physical GSI and virtual GSI.\n

\n
\n" + "description": "

Specify the pre-launched VM owned IOAPIC pins and the corresponding mapping between physical GSI and virtual GSI.

" }, "pci_devs": { "$ref": "#/definitions/PCIDevsConfiguration", @@ -1311,39 +1533,7 @@ "$ref": "#/definitions/Boolean", "default": "y", "title": "Precision Time Measurement", - "description": "
\n

\n Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.\n

\n
\n" - } - } - }, - "ServiceMemoryInfo": { - "type": "object", - "required": [ - "start_hpa" - ], - "properties": { - "start_hpa": { - "$ref": "#/definitions/HexFormat", - "default": "0x100000000", - "title": "start_hpa", - "description": "
\n

\n The starting physical address in host for the VM.\n

\n
\n" - }, - "size": { - "$ref": "#/definitions/MemorySizeType", - "default": "0x20000000", - "title": "size", - "description": "
\n

\n The memory size in bytes for the VM. Default value is\n \n 0x200000000\n \n .\n

\n
\n" - }, - "start_hpa2": { - "$ref": "#/definitions/HexFormat", - "default": "0x0", - "title": "start_hpa2", - "description": "
\n

\n Start of second HPA for non-contiguous allocations in host for the VM.\n

\n
\n" - }, - "size_hpa2": { - "$ref": "#/definitions/MemorySizeType", - "default": "0x0", - "title": "size_hpa2", - "description": "
\n

\n Memory size of second HPA for non-contiguous allocations in Bytes for the VM.\n

\n
\n" + "description": "

Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.

" } } }, @@ -1351,10 +1541,8 @@ "type": "object", "required": [ "load_order", - "vm_type", "name", "clos", - "memory", "priority", "companion_vmid", "console_vuart" @@ -1363,12 +1551,12 @@ "load_order": { "$ref": "#/definitions/LoadOrderType", "title": "Load order", - "description": "
\n

\n Specify the load_order.\n

\n
\n" + "description": "

Specify the load_order.

" }, "vm_type": { "$ref": "#/definitions/VMType", "title": "VM type", - "description": "
\n

\n Select the VM type. A standard VM (\n \n STANDARD_VM\n \n ) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (\n \n RTVM\n \n ) offers special features for time-sensitive applications.\n

\n
\n" + "description": "

Select the VM type. A standard VM (STANDARD_VM) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (RTVM) offers special features for time-sensitive applications.

" }, "name": { "type": "string", @@ -1376,112 +1564,75 @@ "maxLength": 15, "pattern": "^\\S+$", "title": "VM name", - "description": "
\n

\n Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.\n

\n
\n" - }, - "lapic_passthrough": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "LAPIC passthrough", - "description": "
\n

\n Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" - }, - "io_completion_polling": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "I/O completion polling", - "description": "
\n

\n Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.

" }, "nested_virtualization_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Nested virtualization", - "description": "
\n

\n Enable nested virtualization for KVM.\n

\n
\n" - }, - "virtual_cat_support": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" + "description": "

Enable nested virtualization for KVM.

" }, "secure_world_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "secure_world_support", - "description": "
\n

\n Specify secure world support for trusty OS.\n

\n
\n" + "description": "

Specify secure world support for trusty OS.

" }, "hide_mtrr_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "hide_mtrr_support", - "description": "
\n

\n Specify MTRR capability to hide for VM.\n

\n
\n" + "description": "

Specify MTRR capability to hide for VM.

" }, "security_vm": { "$ref": "#/definitions/Boolean", "default": "n", "title": "security_vm", - "description": "
\n

\n Specify TPM2 FIXUP for VM.\n

\n
\n" + "description": "

Specify TPM2 FIXUP for VM.

" }, "cpu_affinity": { - "$ref": "#/definitions/CPUAffinityConfiguration", + "$ref": "#/definitions/CPUAffinityConfigurations", "title": "Physical CPU affinity", - "description": "
\n

\n Select a subset of physical CPUs that this VM can use. More than one can be selected.\n

\n
\n" + "description": "

Select a subset of physical CPUs that this VM can use. More than one can be selected.

" }, "clos": { "$ref": "#/definitions/CLOSConfiguration", "title": "clos", - "description": "
\n

\n Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.\n

\n
\n" - }, - "memory": { - "$ref": "#/definitions/ServiceMemoryInfo", - "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" + "description": "

Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.

" }, "priority": { "$ref": "#/definitions/PriorityType", "default": "PRIO_LOW", "title": "priority", - "description": "
\n

\n Specify the VM vCPU priority for scheduling.\n

\n
\n" + "description": "

Specify the VM vCPU priority for scheduling.

" }, "companion_vmid": { "type": "integer", "default": 65535, "title": "companion_vmid", - "description": "
\n

\n Specify the companion VM id of this VM.\n

\n
\n" + "description": "

Specify the companion VM id of this VM.

" }, "os_config": { "$ref": "#/definitions/OSConfigurations", - "title": "os_config", - "description": "
\n

\n General information for host kernel, boot\nargument and memory.\n

\n
\n" + "title": "OS Configuration", + "description": "

General information for host kernel, boot\nargument and memory.

" }, "console_vuart": { "$ref": "#/definitions/ConsoleVuartConfiguration", "default": "None", "title": "Console virtual UART type", - "description": "
\n

\n Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).\n

\n
\n" + "description": "

Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).

" } } }, "PostLaunchedMemoryInfo": { "type": "object", - "required": [ - "whole" - ], "properties": { - "whole": { + "size": { "type": "integer", "default": 256, "title": "Memory size (MB)", - "description": "
\n

\n Specify the physical memory size allocated to this VM in megabytes.\n

\n
\n" - } - } - }, - "PostLaunchedMMIOResourcesConfiguration": { - "type": "object", - "properties": { - "TPM2": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "TPM2 passthrough", - "description": "
\n

\n Enable passthrough of the trusted platform module (TPM2) device to this VM.\n

\n
\n" + "description": "

Specify the physical memory size allocated to this VM in megabytes.

" } } }, @@ -1489,10 +1640,8 @@ "type": "object", "required": [ "load_order", - "vm_type", "name", "clos", - "memory", "priority", "companion_vmid", "console_vuart", @@ -1505,12 +1654,12 @@ "load_order": { "$ref": "#/definitions/LoadOrderType", "title": "Load order", - "description": "
\n

\n Specify the load_order.\n

\n
\n" + "description": "

Specify the load_order.

" }, "vm_type": { "$ref": "#/definitions/VMType", "title": "VM type", - "description": "
\n

\n Select the VM type. A standard VM (\n \n STANDARD_VM\n \n ) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (\n \n RTVM\n \n ) offers special features for time-sensitive applications.\n

\n
\n" + "description": "

Select the VM type. A standard VM (STANDARD_VM) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (RTVM) offers special features for time-sensitive applications.

" }, "name": { "type": "string", @@ -1518,87 +1667,76 @@ "maxLength": 15, "pattern": "^\\S+$", "title": "VM name", - "description": "
\n

\n Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.\n

\n
\n" + "description": "

Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.

" }, "lapic_passthrough": { "$ref": "#/definitions/Boolean", "default": "n", "title": "LAPIC passthrough", - "description": "
\n

\n Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "io_completion_polling": { "$ref": "#/definitions/Boolean", "default": "n", "title": "I/O completion polling", - "description": "
\n

\n Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" - }, - "nested_virtualization_support": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "Nested virtualization", - "description": "
\n

\n Enable nested virtualization for KVM.\n

\n
\n" + "description": "

Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "virtual_cat_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" + "description": "

Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.

" }, "secure_world_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "secure_world_support", - "description": "
\n

\n Specify secure world support for trusty OS.\n

\n
\n" + "description": "

Specify secure world support for trusty OS.

" }, "hide_mtrr_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "hide_mtrr_support", - "description": "
\n

\n Specify MTRR capability to hide for VM.\n

\n
\n" + "description": "

Specify MTRR capability to hide for VM.

" }, "security_vm": { "$ref": "#/definitions/Boolean", "default": "n", "title": "security_vm", - "description": "
\n

\n Specify TPM2 FIXUP for VM.\n

\n
\n" + "description": "

Specify TPM2 FIXUP for VM.

" }, "cpu_affinity": { - "$ref": "#/definitions/CPUAffinityConfiguration", + "$ref": "#/definitions/CPUAffinityConfigurations", "title": "Physical CPU affinity", - "description": "
\n

\n Select a subset of physical CPUs that this VM can use. More than one can be selected.\n

\n
\n" + "description": "

Select a subset of physical CPUs that this VM can use. More than one can be selected.

" }, "clos": { "$ref": "#/definitions/CLOSConfiguration", "title": "clos", - "description": "
\n

\n Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.\n

\n
\n" + "description": "

Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.

" }, "memory": { "$ref": "#/definitions/PostLaunchedMemoryInfo", "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" + "description": "

Specify memory information for User VMs.

" }, "priority": { "$ref": "#/definitions/PriorityType", "default": "PRIO_LOW", "title": "priority", - "description": "
\n

\n Specify the VM vCPU priority for scheduling.\n

\n
\n" + "description": "

Specify the VM vCPU priority for scheduling.

" }, "companion_vmid": { "type": "integer", "default": 65535, "title": "companion_vmid", - "description": "
\n

\n Specify the companion VM id of this VM.\n

\n
\n" + "description": "

Specify the companion VM id of this VM.

" }, "console_vuart": { "$ref": "#/definitions/ConsoleVuartConfiguration", "default": "None", "title": "Console virtual UART type", - "description": "
\n

\n Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).\n

\n
\n" - }, - "mmio_resources": { - "$ref": "#/definitions/PostLaunchedMMIOResourcesConfiguration", - "title": "mmio_resources", - "description": "
\n

\n MMIO resources to passthrough.\n

\n
\n" + "description": "

Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).

" }, "pci_devs": { "$ref": "#/definitions/PCIDevsConfiguration", @@ -1609,81 +1747,121 @@ "$ref": "#/definitions/Boolean", "default": "y", "title": "Precision Time Measurement", - "description": "
\n

\n Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.\n

\n
\n" + "description": "

Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.

" }, "os_type": { "$ref": "#/definitions/OSType", "default": "Non-Windows OS", "title": "OS type", - "description": "
\n

\n Select the OS type for this VM. This is required to run Windows in a User VM. See\n \n Device Model Parameters\n \n for how to include this in the Device Model arguments.\n

\n
\n" + "description": "

Select the OS type for this VM. This is required to run Windows in a User VM. See Device Model Parameters for how to include this in the Device Model arguments.

" }, "vbootloader": { - "$ref": "#/definitions/EnablementType", - "default": "Enable", - "title": "Open Virtual Machine Firmware", - "description": "
\n

\n Use virtual bootloader OVMF (Open Virtual Machine Firmware) to boot this VM.\n

\n
\n" + "$ref": "#/definitions/Boolean", + "default": "y", + "title": "Enable Open Virtual Machine FW", + "description": "

Use virtual bootloader OVMF (Open Virtual Machine Firmware) to boot this VM.

" }, "vuart0": { - "$ref": "#/definitions/EnablementType", - "default": "Enable", + "$ref": "#/definitions/Boolean", + "default": "y", "title": "Emulate COM1 as stdio I/O", - "description": "
\n

\n Enable the ACRN Device Model to emulate COM1 as a User VM stdio I/O. Hypervisor global emulation will take priority over this VM setting.\n

\n
\n" + "description": "

Enable the ACRN Device Model to emulate COM1 as a User VM stdio I/O. Hypervisor global emulation will take priority over this VM setting.

" }, "usb_xhci": { "type": "string", "pattern": "^([\\d]+-[\\d]+){0,1}(:[\\d]+-[\\d]+)*$", "title": "Virtual USB HCI", - "description": "
\n

\n Select the USB physical bus and port number that will be emulated by the ACRN Device Model for this VM. USB 3.0, 2.0, and 1.0 are supported.\n

\n
\n" + "description": "

Select the USB physical bus and port number that will be emulated by the ACRN Device Model for this VM. USB 3.0, 2.0, and 1.0 are supported.

" }, "virtio_devices": { "type": "object", "properties": { "console": { - "type": "string", - "title": "console", - "description": "
\n

\n The virtio console device setting. Input format:\n \n \n [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]\n \n \n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioConsoleConfiguration" + }, + "type": "array", + "title": "Virtio console device", + "description": "

Virtio console device for data input and output.\nThe virtio console BE driver copies data from the frontend's transmitting virtqueue when it receives a kick on virtqueue (implemented as a vmexit).\nThe BE driver then writes the data to backend, and can be implemented as PTY, TTY, STDIO, and regular file.\nFor details, see Virtio-Console.

" }, "network": { - "type": "string", - "title": "network", - "description": "
\n

\n The virtio network device setting.\nInput format:\n \n \n device_name[,vhost][,mac=XX:XX:XX:XX:XX:XX]\n \n \n .\nThe\n \n device_name\n \n is the name of the TAP (or MacVTap) device.\nIt must include the keyword\n \n tap\n \n .\n \n vhost\n \n specifies the\nvhost backend; otherwise, the VBSU backend is used. The\n \n mac\n \n address is optional.\n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioNetworkConfiguration" + }, + "type": "array", + "title": "Virtio network device", + "description": "

The virtio network device emulates a virtual network interface card (NIC) for the VM. The frontend\nis the virtio network driver, simulating the virtual NIC. The backend could be: tap device /dev/net/tun,\nMacVTap device /dev/tapx, or vhost device /dev/vhost-net

" }, "input": { - "type": "string", - "title": "input", - "description": "
\n

\n The virtio input device setting.\n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioInputConfiguration" + }, + "type": "array", + "title": "Virtio input device", + "description": "

The virtio input device creates a virtual human interface device such as a keyboard,\nmouse, and tablet. It sends Linux input layer events over virtio.

" }, "block": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Virtio block device", + "description": "

The virtio-blk device presents a block device to the VM. Each virtio-blk device appears as a disk inside the VM.

" + }, + "gpu": { "type": "string", - "title": "block", - "description": "
\n

\n The virtio block device setting.\nFormat:\n \n [blk\n \n partition:][img\n \n path]\n \n . Example:\n \n \n /dev/sda3:./a/b.img\n \n \n .\n

\n
\n" + "title": "Virtio GPU device", + "description": "
\n
The virtio GPU device presents a GPU device to the VM.
\n

This feature enables you to view the VM's GPU output in the Service VM.

\n
\n
" } }, "title": "Virt-IO devices", - "description": "
\n

\n Enable virt-IO devices in post-launched VMs.\n

\n
\n" + "description": "

Enable virt-IO devices in post-launched VMs.

" } } }, "BasicMemoryInfo": { "type": "object", - "required": [ - "whole" - ], "properties": { - "whole": { + "size": { "type": "integer", "default": 256, "title": "Memory size (MB)", - "description": "
\n

\n Specify the physical memory size allocated to this VM in megabytes.\n

\n
\n" + "description": "

Specify the physical memory size allocated to this VM in megabytes.

" + } + } + }, + "BasicOSConfigurations": { + "type": "object", + "required": [ + "kern_type" + ], + "properties": { + "kern_type": { + "$ref": "#/definitions/BasicVMKernelType", + "title": "Kernel image type", + "description": "

Select the kernel image type so that the hypervisor can load it correctly.

" + }, + "kern_mod": { + "type": "string", + "title": "Kernel module tag", + "description": "

Specify the tag for the kernel image that is used as a multiboot module. The tag's spelling must exactly match the module tag in the GRUB multiboot cmdline.

" + }, + "ramdisk_mod": { + "type": "string", + "title": "RAMdisk module tag", + "description": "

Specify the tag for the RAMdisk image that is used as a multiboot module. The tag's spelling must exactly match the module tag in the GRUB multiboot cmdline.

" + }, + "bootargs": { + "type": "string", + "title": "Kernel command-line parameters", + "description": "

Specify the command-line parameters that will be used to boot the kernel for this VM. See Linux documentation for a list of parameters.

" } } }, "VMBasicConfigType": { "type": "object", "required": [ - "vm_type", "name", - "memory", "console_vuart", "os_type", "vbootloader", @@ -1694,7 +1872,7 @@ "vm_type": { "$ref": "#/definitions/BasicVMType", "title": "VM type", - "description": "
\n

\n Select the VM type. A standard VM (\n \n STANDARD_VM\n \n ) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (\n \n RTVM\n \n ) offers special features for time-sensitive applications.\n

\n
\n" + "description": "

Select the VM type. A standard VM (STANDARD_VM) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (RTVM) offers special features for time-sensitive applications.

" }, "name": { "type": "string", @@ -1702,33 +1880,33 @@ "maxLength": 15, "pattern": "^\\S+$", "title": "VM name", - "description": "
\n

\n Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.\n

\n
\n" + "description": "

Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.

" }, "cpu_affinity": { - "$ref": "#/definitions/CPUAffinityConfiguration", + "$ref": "#/definitions/CPUAffinityConfigurations", "title": "Physical CPU affinity", - "description": "
\n

\n Select a subset of physical CPUs that this VM can use. More than one can be selected.\n

\n
\n" + "description": "

Select a subset of physical CPUs that this VM can use. More than one can be selected.

" }, "memory": { "$ref": "#/definitions/BasicMemoryInfo", "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" + "description": "

Specify memory information for User VMs.

" }, "os_config": { - "$ref": "#/definitions/OSConfigurations", - "title": "os_config", - "description": "
\n

\n General information for host kernel, boot\nargument and memory.\n

\n
\n" + "$ref": "#/definitions/BasicOSConfigurations", + "title": "OS Configuration", + "description": "

General information for host kernel, boot\nargument and memory.

" }, "console_vuart": { "$ref": "#/definitions/ConsoleVuartConfiguration", "default": "None", "title": "Console virtual UART type", - "description": "
\n

\n Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).\n

\n
\n" + "description": "

Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).

" }, "mmio_resources": { "$ref": "#/definitions/MMIOResourcesConfiguration", "title": "mmio_resources", - "description": "
\n

\n MMIO resources to passthrough.\n

\n
\n" + "description": "

MMIO resources to passthrough.

" }, "pci_devs": { "$ref": "#/definitions/PCIDevsConfiguration", @@ -1739,59 +1917,75 @@ "$ref": "#/definitions/OSType", "default": "Non-Windows OS", "title": "OS type", - "description": "
\n

\n Select the OS type for this VM. This is required to run Windows in a User VM. See\n \n Device Model Parameters\n \n for how to include this in the Device Model arguments.\n

\n
\n" + "description": "

Select the OS type for this VM. This is required to run Windows in a User VM. See Device Model Parameters for how to include this in the Device Model arguments.

" }, "vbootloader": { - "$ref": "#/definitions/EnablementType", - "default": "Enable", - "title": "Open Virtual Machine Firmware", - "description": "
\n

\n Use virtual bootloader OVMF (Open Virtual Machine Firmware) to boot this VM.\n

\n
\n" + "$ref": "#/definitions/Boolean", + "default": "y", + "title": "Enable Open Virtual Machine FW", + "description": "

Use virtual bootloader OVMF (Open Virtual Machine Firmware) to boot this VM.

" }, "vuart0": { - "$ref": "#/definitions/EnablementType", - "default": "Enable", + "$ref": "#/definitions/Boolean", + "default": "y", "title": "Emulate COM1 as stdio I/O", - "description": "
\n

\n Enable the ACRN Device Model to emulate COM1 as a User VM stdio I/O. Hypervisor global emulation will take priority over this VM setting.\n

\n
\n" + "description": "

Enable the ACRN Device Model to emulate COM1 as a User VM stdio I/O. Hypervisor global emulation will take priority over this VM setting.

" }, "usb_xhci": { "type": "string", "pattern": "^([\\d]+-[\\d]+){0,1}(:[\\d]+-[\\d]+)*$", "title": "Virtual USB HCI", - "description": "
\n

\n Select the USB physical bus and port number that will be emulated by the ACRN Device Model for this VM. USB 3.0, 2.0, and 1.0 are supported.\n

\n
\n" + "description": "

Select the USB physical bus and port number that will be emulated by the ACRN Device Model for this VM. USB 3.0, 2.0, and 1.0 are supported.

" }, "virtio_devices": { "type": "object", "properties": { "console": { - "type": "string", - "title": "console", - "description": "
\n

\n The virtio console device setting. Input format:\n \n \n [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]\n \n \n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioConsoleConfiguration" + }, + "type": "array", + "title": "Virtio console device", + "description": "

Virtio console device for data input and output.\nThe virtio console BE driver copies data from the frontend's transmitting virtqueue when it receives a kick on virtqueue (implemented as a vmexit).\nThe BE driver then writes the data to backend, and can be implemented as PTY, TTY, STDIO, and regular file.\nFor details, see Virtio-Console.

" }, "network": { - "type": "string", - "title": "network", - "description": "
\n

\n The virtio network device setting.\nInput format:\n \n \n device_name[,vhost][,mac=XX:XX:XX:XX:XX:XX]\n \n \n .\nThe\n \n device_name\n \n is the name of the TAP (or MacVTap) device.\nIt must include the keyword\n \n tap\n \n .\n \n vhost\n \n specifies the\nvhost backend; otherwise, the VBSU backend is used. The\n \n mac\n \n address is optional.\n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioNetworkConfiguration" + }, + "type": "array", + "title": "Virtio network device", + "description": "

The virtio network device emulates a virtual network interface card (NIC) for the VM. The frontend\nis the virtio network driver, simulating the virtual NIC. The backend could be: tap device /dev/net/tun,\nMacVTap device /dev/tapx, or vhost device /dev/vhost-net

" }, "input": { - "type": "string", - "title": "input", - "description": "
\n

\n The virtio input device setting.\n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioInputConfiguration" + }, + "type": "array", + "title": "Virtio input device", + "description": "

The virtio input device creates a virtual human interface device such as a keyboard,\nmouse, and tablet. It sends Linux input layer events over virtio.

" }, "block": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Virtio block device", + "description": "

The virtio-blk device presents a block device to the VM. Each virtio-blk device appears as a disk inside the VM.

" + }, + "gpu": { "type": "string", - "title": "block", - "description": "
\n

\n The virtio block device setting.\nFormat:\n \n [blk\n \n partition:][img\n \n path]\n \n . Example:\n \n \n /dev/sda3:./a/b.img\n \n \n .\n

\n
\n" + "title": "Virtio GPU device", + "description": "
\n
The virtio GPU device presents a GPU device to the VM.
\n

This feature enables you to view the VM's GPU output in the Service VM.

\n
\n
" } }, "title": "Virt-IO devices", - "description": "
\n

\n Enable virt-IO devices in post-launched VMs.\n

\n
\n" + "description": "

Enable virt-IO devices in post-launched VMs.

" } } }, "PreLaunchedVMBasicConfigType": { "type": "object", "required": [ - "vm_type", "name", "console_vuart" ], @@ -1799,7 +1993,7 @@ "vm_type": { "$ref": "#/definitions/BasicVMType", "title": "VM type", - "description": "
\n

\n Select the VM type. A standard VM (\n \n STANDARD_VM\n \n ) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (\n \n RTVM\n \n ) offers special features for time-sensitive applications.\n

\n
\n" + "description": "

Select the VM type. A standard VM (STANDARD_VM) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (RTVM) offers special features for time-sensitive applications.

" }, "name": { "type": "string", @@ -1807,28 +2001,33 @@ "maxLength": 15, "pattern": "^\\S+$", "title": "VM name", - "description": "
\n

\n Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.\n

\n
\n" + "description": "

Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.

" }, "cpu_affinity": { - "$ref": "#/definitions/CPUAffinityConfiguration", + "$ref": "#/definitions/CPUAffinityConfigurations", "title": "Physical CPU affinity", - "description": "
\n

\n Select a subset of physical CPUs that this VM can use. More than one can be selected.\n

\n
\n" + "description": "

Select a subset of physical CPUs that this VM can use. More than one can be selected.

" + }, + "memory": { + "$ref": "#/definitions/BasicMemoryInfo", + "title": "memory", + "description": "

Specify memory information for User VMs.

" }, "os_config": { - "$ref": "#/definitions/OSConfigurations", - "title": "os_config", - "description": "
\n

\n General information for host kernel, boot\nargument and memory.\n

\n
\n" + "$ref": "#/definitions/BasicOSConfigurations", + "title": "OS Configuration", + "description": "

General information for host kernel, boot\nargument and memory.

" }, "console_vuart": { "$ref": "#/definitions/ConsoleVuartConfiguration", "default": "None", "title": "Console virtual UART type", - "description": "
\n

\n Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).\n

\n
\n" + "description": "

Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).

" }, "mmio_resources": { "$ref": "#/definitions/MMIOResourcesConfiguration", "title": "mmio_resources", - "description": "
\n

\n MMIO resources to passthrough.\n

\n
\n" + "description": "

MMIO resources to passthrough.

" }, "pci_devs": { "$ref": "#/definitions/PCIDevsConfiguration", @@ -1840,7 +2039,6 @@ "ServiceVMBasicConfigType": { "type": "object", "required": [ - "vm_type", "name", "console_vuart" ], @@ -1848,7 +2046,7 @@ "vm_type": { "$ref": "#/definitions/BasicVMType", "title": "VM type", - "description": "
\n

\n Select the VM type. A standard VM (\n \n STANDARD_VM\n \n ) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (\n \n RTVM\n \n ) offers special features for time-sensitive applications.\n

\n
\n" + "description": "

Select the VM type. A standard VM (STANDARD_VM) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (RTVM) offers special features for time-sensitive applications.

" }, "name": { "type": "string", @@ -1856,32 +2054,30 @@ "maxLength": 15, "pattern": "^\\S+$", "title": "VM name", - "description": "
\n

\n Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.\n

\n
\n" + "description": "

Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.

" }, "cpu_affinity": { - "$ref": "#/definitions/CPUAffinityConfiguration", + "$ref": "#/definitions/CPUAffinityConfigurations", "title": "Physical CPU affinity", - "description": "
\n

\n Select a subset of physical CPUs that this VM can use. More than one can be selected.\n

\n
\n" + "description": "

Select a subset of physical CPUs that this VM can use. More than one can be selected.

" }, "os_config": { - "$ref": "#/definitions/OSConfigurations", - "title": "os_config", - "description": "
\n

\n General information for host kernel, boot\nargument and memory.\n

\n
\n" + "$ref": "#/definitions/BasicOSConfigurations", + "title": "OS Configuration", + "description": "

General information for host kernel, boot\nargument and memory.

" }, "console_vuart": { "$ref": "#/definitions/ConsoleVuartConfiguration", "default": "None", "title": "Console virtual UART type", - "description": "
\n

\n Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).\n

\n
\n" + "description": "

Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).

" } } }, "PostLaunchedVMBasicConfigType": { "type": "object", "required": [ - "vm_type", "name", - "memory", "console_vuart", "os_type", "vbootloader", @@ -1892,7 +2088,7 @@ "vm_type": { "$ref": "#/definitions/BasicVMType", "title": "VM type", - "description": "
\n

\n Select the VM type. A standard VM (\n \n STANDARD_VM\n \n ) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (\n \n RTVM\n \n ) offers special features for time-sensitive applications.\n

\n
\n" + "description": "

Select the VM type. A standard VM (STANDARD_VM) is for general-purpose applications, such as human-machine interface (HMI). A real-time VM (RTVM) offers special features for time-sensitive applications.

" }, "name": { "type": "string", @@ -1900,28 +2096,23 @@ "maxLength": 15, "pattern": "^\\S+$", "title": "VM name", - "description": "
\n

\n Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.\n

\n
\n" + "description": "

Specify the name used to identify this VM. The VM name will be shown in the hypervisor console vm_list command.

" }, "cpu_affinity": { - "$ref": "#/definitions/CPUAffinityConfiguration", + "$ref": "#/definitions/CPUAffinityConfigurations", "title": "Physical CPU affinity", - "description": "
\n

\n Select a subset of physical CPUs that this VM can use. More than one can be selected.\n

\n
\n" + "description": "

Select a subset of physical CPUs that this VM can use. More than one can be selected.

" }, "memory": { "$ref": "#/definitions/PostLaunchedMemoryInfo", "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" + "description": "

Specify memory information for User VMs.

" }, "console_vuart": { "$ref": "#/definitions/ConsoleVuartConfiguration", "default": "None", "title": "Console virtual UART type", - "description": "
\n

\n Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).\n

\n
\n" - }, - "mmio_resources": { - "$ref": "#/definitions/PostLaunchedMMIOResourcesConfiguration", - "title": "mmio_resources", - "description": "
\n

\n MMIO resources to passthrough.\n

\n
\n" + "description": "

Select the console virtual UART (vUART) type. Add the console settings to the kernel command line by typing them in the \"Linux kernel command-line parameters\" text box (for example, console=ttyS0 for COM port 1).

" }, "pci_devs": { "$ref": "#/definitions/PCIDevsConfiguration", @@ -1932,52 +2123,69 @@ "$ref": "#/definitions/OSType", "default": "Non-Windows OS", "title": "OS type", - "description": "
\n

\n Select the OS type for this VM. This is required to run Windows in a User VM. See\n \n Device Model Parameters\n \n for how to include this in the Device Model arguments.\n

\n
\n" + "description": "

Select the OS type for this VM. This is required to run Windows in a User VM. See Device Model Parameters for how to include this in the Device Model arguments.

" }, "vbootloader": { - "$ref": "#/definitions/EnablementType", - "default": "Enable", - "title": "Open Virtual Machine Firmware", - "description": "
\n

\n Use virtual bootloader OVMF (Open Virtual Machine Firmware) to boot this VM.\n

\n
\n" + "$ref": "#/definitions/Boolean", + "default": "y", + "title": "Enable Open Virtual Machine FW", + "description": "

Use virtual bootloader OVMF (Open Virtual Machine Firmware) to boot this VM.

" }, "vuart0": { - "$ref": "#/definitions/EnablementType", - "default": "Enable", + "$ref": "#/definitions/Boolean", + "default": "y", "title": "Emulate COM1 as stdio I/O", - "description": "
\n

\n Enable the ACRN Device Model to emulate COM1 as a User VM stdio I/O. Hypervisor global emulation will take priority over this VM setting.\n

\n
\n" + "description": "

Enable the ACRN Device Model to emulate COM1 as a User VM stdio I/O. Hypervisor global emulation will take priority over this VM setting.

" }, "usb_xhci": { "type": "string", "pattern": "^([\\d]+-[\\d]+){0,1}(:[\\d]+-[\\d]+)*$", "title": "Virtual USB HCI", - "description": "
\n

\n Select the USB physical bus and port number that will be emulated by the ACRN Device Model for this VM. USB 3.0, 2.0, and 1.0 are supported.\n

\n
\n" + "description": "

Select the USB physical bus and port number that will be emulated by the ACRN Device Model for this VM. USB 3.0, 2.0, and 1.0 are supported.

" }, "virtio_devices": { "type": "object", "properties": { "console": { - "type": "string", - "title": "console", - "description": "
\n

\n The virtio console device setting. Input format:\n \n \n [@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]\n \n \n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioConsoleConfiguration" + }, + "type": "array", + "title": "Virtio console device", + "description": "

Virtio console device for data input and output.\nThe virtio console BE driver copies data from the frontend's transmitting virtqueue when it receives a kick on virtqueue (implemented as a vmexit).\nThe BE driver then writes the data to backend, and can be implemented as PTY, TTY, STDIO, and regular file.\nFor details, see Virtio-Console.

" }, "network": { - "type": "string", - "title": "network", - "description": "
\n

\n The virtio network device setting.\nInput format:\n \n \n device_name[,vhost][,mac=XX:XX:XX:XX:XX:XX]\n \n \n .\nThe\n \n device_name\n \n is the name of the TAP (or MacVTap) device.\nIt must include the keyword\n \n tap\n \n .\n \n vhost\n \n specifies the\nvhost backend; otherwise, the VBSU backend is used. The\n \n mac\n \n address is optional.\n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioNetworkConfiguration" + }, + "type": "array", + "title": "Virtio network device", + "description": "

The virtio network device emulates a virtual network interface card (NIC) for the VM. The frontend\nis the virtio network driver, simulating the virtual NIC. The backend could be: tap device /dev/net/tun,\nMacVTap device /dev/tapx, or vhost device /dev/vhost-net

" }, "input": { - "type": "string", - "title": "input", - "description": "
\n

\n The virtio input device setting.\n

\n
\n" + "items": { + "$ref": "#/definitions/VirtioInputConfiguration" + }, + "type": "array", + "title": "Virtio input device", + "description": "

The virtio input device creates a virtual human interface device such as a keyboard,\nmouse, and tablet. It sends Linux input layer events over virtio.

" }, "block": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Virtio block device", + "description": "

The virtio-blk device presents a block device to the VM. Each virtio-blk device appears as a disk inside the VM.

" + }, + "gpu": { "type": "string", - "title": "block", - "description": "
\n

\n The virtio block device setting.\nFormat:\n \n [blk\n \n partition:][img\n \n path]\n \n . Example:\n \n \n /dev/sda3:./a/b.img\n \n \n .\n

\n
\n" + "title": "Virtio GPU device", + "description": "
\n
The virtio GPU device presents a GPU device to the VM.
\n

This feature enables you to view the VM's GPU output in the Service VM.

\n
\n
" } }, "title": "Virt-IO devices", - "description": "
\n

\n Enable virt-IO devices in post-launched VMs.\n

\n
\n" + "description": "

Enable virt-IO devices in post-launched VMs.

" } } }, @@ -1990,7 +2198,7 @@ "IVSHMEM": { "$ref": "#/definitions/IVSHMEMInfo", "title": "Inter-VM shared memory", - "description": "
\n

\n Configure shared memory regions for inter-VM communication.\n

\n
\n" + "description": "

Configure shared memory regions for inter-VM communication.

" } } }, @@ -2005,210 +2213,146 @@ "DEBUG_OPTIONS": { "$ref": "#/definitions/DebugOptionsType", "title": "Debug options", - "description": "
\n

\n Configure the debug facilities.\n

\n
\n" + "description": "

Configure the debug facilities.

" }, "FEATURES": { "$ref": "#/definitions/BasicFeatureOptionsType", "title": "Hypervisor features", - "description": "
\n

\n Enable hypervisor features.\n

\n
\n" + "description": "

Enable hypervisor features.

" }, "vuart_connections": { "$ref": "#/definitions/VuartConnectionsType", "title": "Inter-VM virtual UART connection", - "description": "
\n

\n Specify the vUART connection settings.\nRefer to\n \n Enable vUART Configurations\n \n for detailed vUART settings.\n

\n
\n" + "description": "

Specify the vUART connection settings.\nRefer to Enable vUART Configurations for detailed vUART settings.

" + }, + "CACHE_REGION": { + "items": { + "$ref": "#/definitions/CacheRegionType" + }, + "type": "array", + "maxItems": 1, + "title": "CACHE_REGION", + "description": "

Specify the cache setting.

" } } }, "AdvancedMemoryInfo": { "type": "object", - "required": [ - "start_hpa" - ], "properties": { - "start_hpa": { - "$ref": "#/definitions/HexFormat", - "default": "0x100000000", - "title": "start_hpa", - "description": "
\n

\n The starting physical address in host for the VM.\n

\n
\n" - }, - "size": { - "$ref": "#/definitions/MemorySizeType", - "default": "0x20000000", - "title": "size", - "description": "
\n

\n The memory size in bytes for the VM. Default value is\n \n 0x200000000\n \n .\n

\n
\n" - }, - "start_hpa2": { - "$ref": "#/definitions/HexFormat", - "default": "0x0", - "title": "start_hpa2", - "description": "
\n

\n Start of second HPA for non-contiguous allocations in host for the VM.\n

\n
\n" - }, - "size_hpa2": { - "$ref": "#/definitions/MemorySizeType", - "default": "0x0", - "title": "size_hpa2", - "description": "
\n

\n Memory size of second HPA for non-contiguous allocations in Bytes for the VM.\n

\n
\n" + "hpa_region": { + "items": { + "$ref": "#/definitions/HPARegionType" + }, + "type": "array", + "title": "Physical memory segmentation", + "description": "

Specify Physical memory information for Prelaunched VM

" } } }, "VMAdvancedConfigType": { "type": "object", "required": [ - "clos", - "memory" + "clos" ], "properties": { "lapic_passthrough": { "$ref": "#/definitions/Boolean", "default": "n", "title": "LAPIC passthrough", - "description": "
\n

\n Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "io_completion_polling": { "$ref": "#/definitions/Boolean", "default": "n", "title": "I/O completion polling", - "description": "
\n

\n Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "nested_virtualization_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Nested virtualization", - "description": "
\n

\n Enable nested virtualization for KVM.\n

\n
\n" + "description": "

Enable nested virtualization for KVM.

" }, "virtual_cat_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" + "description": "

Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.

" }, "clos": { "$ref": "#/definitions/CLOSConfiguration", "title": "clos", - "description": "
\n

\n Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.\n

\n
\n" + "description": "

Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.

" }, "epc_section": { "$ref": "#/definitions/EPCSection", "title": "epc_section", - "description": "
\n

\n Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.\n

\n
\n" + "description": "

Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.

" }, "memory": { "$ref": "#/definitions/AdvancedMemoryInfo", "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" - }, - "pt_intx": { - "type": "string", - "title": "pt_intx", - "description": "
\n

\n Specify the pre-launched VM owned IOAPIC pins and the corresponding mapping between physical GSI and virtual GSI.\n

\n
\n" - }, - "PTM": { - "$ref": "#/definitions/Boolean", - "default": "y", - "title": "Precision Time Measurement", - "description": "
\n

\n Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.\n

\n
\n" + "description": "

Specify memory information for User VMs.

" } } }, "PreLaunchedVMAdvancedConfigType": { "type": "object", "required": [ - "clos", - "memory" + "clos" ], "properties": { "lapic_passthrough": { "$ref": "#/definitions/Boolean", "default": "n", "title": "LAPIC passthrough", - "description": "
\n

\n Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "io_completion_polling": { "$ref": "#/definitions/Boolean", "default": "n", "title": "I/O completion polling", - "description": "
\n

\n Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" - }, - "nested_virtualization_support": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "Nested virtualization", - "description": "
\n

\n Enable nested virtualization for KVM.\n

\n
\n" + "description": "

Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "virtual_cat_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" + "description": "

Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.

" }, "clos": { "$ref": "#/definitions/CLOSConfiguration", "title": "clos", - "description": "
\n

\n Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.\n

\n
\n" + "description": "

Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.

" }, "epc_section": { "$ref": "#/definitions/EPCSection", "title": "epc_section", - "description": "
\n

\n Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.\n

\n
\n" + "description": "

Specify the Intel Software Guard Extensions (SGX) enclave page cache (EPC) section settings.

" }, "memory": { - "$ref": "#/definitions/PreLaunchedMemoryInfo", + "$ref": "#/definitions/AdvancedMemoryInfo", "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" - }, - "pt_intx": { - "type": "string", - "title": "pt_intx", - "description": "
\n

\n Specify the pre-launched VM owned IOAPIC pins and the corresponding mapping between physical GSI and virtual GSI.\n

\n
\n" - }, - "PTM": { - "$ref": "#/definitions/Boolean", - "default": "y", - "title": "Precision Time Measurement", - "description": "
\n

\n Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.\n

\n
\n" + "description": "

Specify memory information for User VMs.

" } } }, "ServiceVMAdvancedConfigType": { "type": "object", "required": [ - "clos", - "memory" + "clos" ], "properties": { - "lapic_passthrough": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "LAPIC passthrough", - "description": "
\n

\n Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" - }, - "io_completion_polling": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "I/O completion polling", - "description": "
\n

\n Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" - }, "nested_virtualization_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Nested virtualization", - "description": "
\n

\n Enable nested virtualization for KVM.\n

\n
\n" - }, - "virtual_cat_support": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" + "description": "

Enable nested virtualization for KVM.

" }, "clos": { "$ref": "#/definitions/CLOSConfiguration", "title": "clos", - "description": "
\n

\n Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.\n

\n
\n" - }, - "memory": { - "$ref": "#/definitions/ServiceMemoryInfo", - "title": "memory", - "description": "
\n

\n Specify memory information for Service and User VMs.\n

\n
\n" + "description": "

Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.

" } } }, @@ -2222,45 +2366,33 @@ "$ref": "#/definitions/Boolean", "default": "n", "title": "LAPIC passthrough", - "description": "
\n

\n Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" + "description": "

Enable LAPIC passthrough for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "io_completion_polling": { "$ref": "#/definitions/Boolean", "default": "n", "title": "I/O completion polling", - "description": "
\n

\n Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.\n

\n
\n" - }, - "nested_virtualization_support": { - "$ref": "#/definitions/Boolean", - "default": "n", - "title": "Nested virtualization", - "description": "
\n

\n Enable nested virtualization for KVM.\n

\n
\n" + "description": "

Enable polling mode for I/O completion for this VM. This feature is required for VMs with stringent real-time performance needs.

" }, "virtual_cat_support": { "$ref": "#/definitions/Boolean", "default": "n", "title": "Virtual Cache Allocation Tech", - "description": "
\n

\n Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.\n

\n
\n" + "description": "

Enable virtualization of the Cache Allocation Technology (CAT) feature in RDT. CAT enables you to allocate cache to VMs, providing isolation to avoid performance interference from other VMs.

" }, "clos": { "$ref": "#/definitions/CLOSConfiguration", "title": "clos", - "description": "
\n

\n Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.\n

\n
\n" - }, - "PTM": { - "$ref": "#/definitions/Boolean", - "default": "y", - "title": "Precision Time Measurement", - "description": "
\n

\n Enable virtualization of PCIe Precision Time Measurement (PTM) mechanism for devices with PTM capability and for real-time application. The hypervisor provides PCIe root port emulation instead of host bridge emulation for the VM. PTM coordinates timing between the device and root port with the device's local timebases without relying on software.\n

\n
\n" + "description": "

Class of Service for Cache Allocation Technology.\nRefer SDM 17.19.2 for details, and use with caution.

" } } }, "AdvancedFeatureOptionsType": { "type": "object", "required": [ - "RELOC", + "RELOC_ENABLED", "SCHEDULER", - "MULTIBOOT2", + "MULTIBOOT2_ENABLED", "ENFORCE_TURNOFF_AC", "ENFORCE_TURNOFF_GP", "RDT", @@ -2270,69 +2402,69 @@ "MCE_ON_PSC_DISABLED" ], "properties": { - "RELOC": { + "RELOC_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Hypervisor relocation", - "description": "
\n

\n Enable hypervisor relocation in memory. The bootloader may need to change the location of the hypervisor because of other firmware.\n

\n
\n" + "description": "

Enable hypervisor relocation in memory. The bootloader may need to change the location of the hypervisor because of other firmware.

" }, "SCHEDULER": { - "$ref": "#/definitions/SchedulerType", + "$ref": "#/definitions/AdvancedSchedulerType", "default": "SCHED_BVT", "title": "Virtual CPU scheduler", - "description": "
\n

\n Select the scheduling algorithm for determining the priority of User VMs running on a shared virtual CPU.\n

\n
\n" + "description": "

Select the scheduling algorithm for determining the priority of User VMs running on a shared virtual CPU.

" }, - "MULTIBOOT2": { + "MULTIBOOT2_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Multiboot2", - "description": "
\n

\n Enable multiboot2 protocol support (with multiboot1 downward compatibility). If multiboot1 meets your requirements, disable this feature to reduce hypervisor code size.\n

\n
\n" + "description": "

Enable multiboot2 protocol support (with multiboot1 downward compatibility). If multiboot1 meets your requirements, disable this feature to reduce hypervisor code size.

" }, "ENFORCE_TURNOFF_AC": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Split lock detection", - "description": "
\n

\n Enable detection of split locks. A split lock can negatively affect an application's real-time performance. If a lock is detected, an alignment check exception #AC occurs.\n

\n
\n" + "description": "

Enable detection of split locks. A split lock can negatively affect an application's real-time performance. If a lock is detected, an alignment check exception #AC occurs.

" }, "ENFORCE_TURNOFF_GP": { "$ref": "#/definitions/Boolean", "default": "n", "title": "UC lock detection", - "description": "
\n

\n Enable detection of uncacheable-memory (UC) locks. A UC lock can negatively affect an application's real-time performance. If a lock is detected, a general-protection exception #GP occurs.\n

\n
\n" + "description": "

Enable detection of uncacheable-memory (UC) locks. A UC lock can negatively affect an application's real-time performance. If a lock is detected, a general-protection exception #GP occurs.

" }, "RDT": { "$ref": "#/definitions/RDTType", "title": "Intel Resource Director Tech", - "description": "
\n

\n Intel Resource Director Technology (RDT) provides cache and memory bandwidth allocation features. The features can be used to improve an application's real-time performance.\n

\n
\n" + "description": "

Intel Resource Director Technology (RDT) provides cache and memory bandwidth allocation features. The features can be used to improve an application's real-time performance.

" }, "HYPERV_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Hyper-V", - "description": "
\n

\n Enable Microsoft Hyper-V Hypervisor Top-Level Functional Specification (TFLS) for User VMs running Windows.\n

\n
\n" + "description": "

Enable Microsoft Hyper-V Hypervisor Top-Level Functional Specification (TFLS) for User VMs running Windows.

" }, "ACPI_PARSE_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Parse ACPI tables", - "description": "
\n

\n Enable ACPI runtime parsing to get DMAR (DMA remapping) configuration data from the APCI tables. Otherwise, use existing, static information from the associated board configuration file.\n

\n
\n" + "description": "

Enable ACPI runtime parsing to get DMAR (DMA remapping) configuration data from the APCI tables. Otherwise, use existing, static information from the associated board configuration file.

" }, "L1D_VMENTRY_ENABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "Mitigate L1 terminal fault", - "description": "
\n

\n Enable L1 cache flush before VM entry to prevent L1 terminal fault. L1 terminal fault is a hardware vulnerability that could allow unauthorized disclosure of information residing in the L1 data cache.\n

\n
\n" + "description": "

Enable L1 cache flush before VM entry to prevent L1 terminal fault. L1 terminal fault is a hardware vulnerability that could allow unauthorized disclosure of information residing in the L1 data cache.

" }, "MCE_ON_PSC_DISABLED": { "$ref": "#/definitions/Boolean", "default": "y", "title": "MCE workaround", - "description": "
\n

\n Enable the software workaround for Machine Check Error on Page Size Change (erratum in some processor families).\n

\n
\n" + "description": "

Enable the software workaround for Machine Check Error on Page Size Change (erratum in some processor families).

" }, "SSRAM": { "$ref": "#/definitions/SSRAMInfo", "title": "Software SRAM", - "description": "
\n

\n Configure Software SRAM. This feature reserves memory buffers as always-cached memory to improve an application's real-time performance.\n

\n
\n" + "description": "

Configure Software SRAM. This feature reserves memory buffers as always-cached memory to improve an application's real-time performance.

" } } }, @@ -2346,7 +2478,7 @@ "$ref": "#/definitions/HexFormat", "default": "0x2000", "title": "CPU memory stack size (bytes)", - "description": "
\n

\n Specify the size of the memory stack in bytes for each physical CPU. For example, if you specify 8 kilobytes, each CPU will get its own 8-kilobyte stack.\n

\n
\n" + "description": "

Specify the size of the memory stack in bytes for each physical CPU. For example, if you specify 8 kilobytes, each CPU will get its own 8-kilobyte stack.

" } } }, @@ -2365,13 +2497,13 @@ "maximum": 1024, "default": 96, "title": "Max PCI devices", - "description": "
\n

\n Specify the maximum number of PCI devices. This impacts the amount of memory used to maintain information about these PCI devices. The default value is calculated from the board configuration file. If you have PCI devices that were not detected by the Board Inspector, you may need to change this maximum value.\n

\n
\n" + "description": "

Specify the maximum number of PCI devices. This impacts the amount of memory used to maintain information about these PCI devices. The default value is calculated from the board configuration file. If you have PCI devices that were not detected by the Board Inspector, you may need to change this maximum value.

" }, "MAX_PT_IRQ_ENTRIES": { "type": "integer", "default": 256, "title": "Max passthrough IRQ entries", - "description": "
\n

\n Specify the maximum number of interrupt request (IRQ) entries from all passthrough devices.\n

\n
\n" + "description": "

Specify the maximum number of interrupt request (IRQ) entries from all passthrough devices.

" }, "MAX_MSIX_TABLE_NUM": { "type": "integer", @@ -2379,7 +2511,7 @@ "maximum": 2048, "default": 64, "title": "Max MSI-X tables", - "description": "
\n

\n Specify the maximum number of Message Signaled Interrupt MSI-X tables per device. The default value is calculated from the board configuration file.\n

\n
\n" + "description": "

Specify the maximum number of Message Signaled Interrupt MSI-X tables per device. The default value is calculated from the board configuration file.

" }, "MAX_EMULATED_MMIO": { "type": "integer", @@ -2387,7 +2519,7 @@ "maximum": 128, "default": 16, "title": "Max emulated MMIO regions", - "description": "
\n

\n Specify the maximum number of emulated MMIO regions for device virtualization. The default value is calculated from the board configuration file.\n

\n
\n" + "description": "

Specify the maximum number of emulated MMIO regions for device virtualization. The default value is calculated from the board configuration file.

" } } }, @@ -2402,17 +2534,26 @@ "FEATURES": { "$ref": "#/definitions/AdvancedFeatureOptionsType", "title": "Hypervisor features", - "description": "
\n

\n Enable hypervisor features.\n

\n
\n" + "description": "

Enable hypervisor features.

" }, "MEMORY": { "$ref": "#/definitions/AdvancedMemoryOptionsType", "title": "Memory options", - "description": "
\n

\n Configure memory used by the hypervisor.\n

\n
\n" + "description": "

Configure memory used by the hypervisor.

" }, "CAPACITIES": { "$ref": "#/definitions/AdvancedCapacitiesOptionsType", "title": "Hypervisor capacities", - "description": "
\n

\n Configure the capacities of the hypervisor.\n

\n
\n" + "description": "

Configure the capacities of the hypervisor.

" + }, + "CACHE_REGION": { + "items": { + "$ref": "#/definitions/CacheRegionType" + }, + "type": "array", + "maxItems": 1, + "title": "CACHE_REGION", + "description": "

Specify the cache setting.

" } } } diff --git a/misc/config_tools/configurator/src/components/HelloWorld.vue b/misc/config_tools/configurator/src/components/HelloWorld.vue deleted file mode 100644 index dbe43f7db..000000000 --- a/misc/config_tools/configurator/src/components/HelloWorld.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/misc/config_tools/configurator/src/components/common/ControlBar.vue b/misc/config_tools/configurator/src/components/common/ControlBar.vue index b9dd7293c..e1f3b3a06 100644 --- a/misc/config_tools/configurator/src/components/common/ControlBar.vue +++ b/misc/config_tools/configurator/src/components/common/ControlBar.vue @@ -48,8 +48,7 @@ export default { }) }, close: () => { - console.log("close") - alert("close") + appWindow.close() } } } diff --git a/misc/config_tools/configurator/src/main.js b/misc/config_tools/configurator/src/main.js index 758bf82f9..96a8bbaff 100644 --- a/misc/config_tools/configurator/src/main.js +++ b/misc/config_tools/configurator/src/main.js @@ -58,7 +58,9 @@ if (!isTauri) { async function main() { console.log("Pyodide Load Begin") let t1 = Date.now(); - let pyodide = await loadPyodide(); + let pyodide = await loadPyodide({ + indexURL: '/thirdLib/pyodide/' + }); await pyodide.loadPackage(['micropip', 'lxml', 'beautifulsoup4']) await pyodide.runPythonAsync(` import micropip diff --git a/misc/config_tools/configurator/src/pages/Config/Scenario.vue b/misc/config_tools/configurator/src/pages/Config/Scenario.vue index 3b0942bd9..c02c80f14 100644 --- a/misc/config_tools/configurator/src/pages/Config/Scenario.vue +++ b/misc/config_tools/configurator/src/pages/Config/Scenario.vue @@ -67,7 +67,7 @@ export default { }, methods: { newScenario(data) { - this.$emit('update:scenario', data) + this.$emit('scenarioUpdate', data) }, loadScenario() { if (this.currentSelectedScenario.length > 0) { diff --git a/misc/config_tools/scenario_config/jsonschema/converter.py b/misc/config_tools/scenario_config/jsonschema/converter.py index 1062af406..e78b79d61 100644 --- a/misc/config_tools/scenario_config/jsonschema/converter.py +++ b/misc/config_tools/scenario_config/jsonschema/converter.py @@ -25,6 +25,7 @@ open(output_file, 'w', encoding='utf-8').write(json_schema) ``` """ +__package__ = 'scenario_config.jsonschema' import os import json import re