diff --git a/doc/Makefile b/doc/Makefile index 652119de6..48ec8cf77 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -48,6 +48,9 @@ doxy: copy-to-sourcedir content: copy-to-sourcedir $(Q)scripts/extract_content.py $(SOURCEDIR) misc + $(Q)mkdir -p $(SOURCEDIR)/misc/config_tools/schema + $(Q)rsync -rt ../misc/config_tools/schema/*.xsd $(SOURCEDIR)/misc/config_tools/schema + $(Q)xsltproc -xinclude ./scripts/configdoc.xsl $(SOURCEDIR)/misc/config_tools/schema/config.xsd > $(SOURCEDIR)/reference/configdoc.txt kconfig: copy-to-sourcedir $(Q)srctree=../hypervisor \ diff --git a/doc/develop.rst b/doc/develop.rst index 359fb8025..faffa618a 100644 --- a/doc/develop.rst +++ b/doc/develop.rst @@ -14,6 +14,7 @@ Configuration and Tools :maxdepth: 1 tutorials/acrn_configuration_tool + reference/config-options reference/kconfig/index user-guides/hv-parameters user-guides/kernel-parameters diff --git a/doc/reference/config-options.rst b/doc/reference/config-options.rst new file mode 100644 index 000000000..8a3433520 --- /dev/null +++ b/doc/reference/config-options.rst @@ -0,0 +1,41 @@ +.. _scenario-config-options: + +Scenario Configuration Options +############################## + +As explained in :ref:`acrn_configuration_tool`, ACRN scenarios define +the hypervisor (hv) and VM settings for the execution environment of an +ACRN-based application. This document describes these option settings. + +.. contents:: + :local: + :depth: 2 + +Common option value types +************************* + +Within this option documentation, we refer to some common type +definitions: + +Boolean + A true or false value specified as either ``y`` or ``n``. Other + values such as ``t`` or ``f`` are not supported. + +Hexadecimal + A base-16 (integer) value represented by a leading ``0x`` or ``0X`` followed by + one or more characters ``0`` to ``9``, ``a`` to ``f``, or ``A`` to ``F``. + +Integer + A base-10 value represented by the characters ``0`` to ``9``. The + first character must not be a ``0``. Only positive values are + expected. + +String + A sequence of UTF-8 characters. String-length limits or specific + string value restrictions are defined in the option description. + + +.. comment This configdoc.txt is generated during the doc build process + from the acrn config schema files found in misc/config_tools/schema + +.. include:: configdoc.txt diff --git a/doc/scripts/configdoc.xsl b/doc/scripts/configdoc.xsl new file mode 100644 index 000000000..2bf7e654c --- /dev/null +++ b/doc/scripts/configdoc.xsl @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + 1 + + + + + + + + + 1 + + + + The ** + + ** option is + + + optional + + + required + + + and with + + + + + occurrence + + s + + + + + to + + occurrences + + + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .. option:: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/scripts/genrest.py b/doc/scripts/genrest.py index 2d7b2a4c1..576ed1a54 100644 --- a/doc/scripts/genrest.py +++ b/doc/scripts/genrest.py @@ -50,8 +50,8 @@ def expr_str(expr): INDEX_RST_HEADER = """.. _configuration: -Configuration Symbol Reference -############################## +Kconfig Symbol Reference +######################## Introduction ************ diff --git a/doc/tutorials/acrn-config-details.txt b/doc/tutorials/acrn-config-details.txt new file mode 100644 index 000000000..6eb5b94e1 --- /dev/null +++ b/doc/tutorials/acrn-config-details.txt @@ -0,0 +1,271 @@ +``hv``: + Specify the global attributes for all VMs. + +``RELEASE`` (a child node of ``DEBUG_OPTIONS``): + Specify the final build is for Release or Debug. + +``SERIAL_CONSOLE`` (a child node of ``DEBUG_OPTIONS``): + Specify the host serial device is used for hypervisor debugging. + This configuration is valid only if Service VM ``legacy_vuart0`` + is enabled. Leave this field empty if Service VM ``console_vuart`` + is enabled. Using ``bootargs`` for ``console_vuart`` configuration. + +``MEM_LOGLEVEL`` (a child node of ``DEBUG_OPTIONS``): + Specify the default log level in memory. + +``NPK_LOGLEVEL`` (a child node of ``DEBUG_OPTIONS``): + Specify the default log level for the hypervisor NPK log. + +``CONSOLE_LOGLEVEL`` (a child node of ``DEBUG_OPTIONS``): + Specify the default log level on the serial console. + +``LOG_DESTINATION`` (a child node of ``DEBUG_OPTIONS``): + Specify the bitmap of consoles where logs are printed. + +``LOG_BUF_SIZE`` (a child node of ``DEBUG_OPTIONS``): + Specify the capacity of the log buffer for each physical CPU. + +``RELOC`` (a child node of ``FEATURES``): + Specify whether the hypervisor image relocation is enabled on booting. + +``SCHEDULER`` (a child node of ``FEATURES``): + Specify the CPU scheduler used by the hypervisor. + Supported schedulers are: ``SCHED_NOOP``, ``SCHED_BVT`` and ``SCHED_IORR``. + +``MULTIBOOT2`` (a child node of ``FEATURES``): + Specify whether the ACRN hypervisor image can be booted using the + multiboot2 protocol. If not set, GRUB's multiboot2 is not available as a + boot option. + +``RDT_ENABLED`` (a child node of ``FEATURES/RDT``): + Specify whether to enable the Resource Director Technology (RDT) + allocation feature. Set to 'y' to enable the feature or 'n' to disable it. + The 'y' will be ignored when hardware does not support RDT. + +``CDP_ENABLED`` (a child node of ``FEATURES/RDT``): + Specify whether to enable Code and Data Prioritization (CDP). CDP is an + extension of CAT. Set to 'y' to enable the feature or 'n' to disable it. + The 'y' will be ignored when hardware does not support CDP. + +``CLOS_MASK`` (a child node of ``FEATURES/RDT``): + Specify the cache capacity bitmask for the CLOS; only continuous '1' bits + are allowed. The value will be ignored when hardware does not support RDT. + +``HYPERV_ENABLED`` (a child node of ``FEATURES``): + Specify whether Hyper-V is enabled. + +``IOMMU_ENFORCE_SNP`` (a child node of ``FEATURES``): + Specify whether IOMMU enforces snoop behavior of the DMA operation. + +``ACPI_PARSE_ENABLED`` (a child node of ``FEATURES``): + Specify whether ACPI runtime parsing is enabled. + +``L1D_VMENTRY_ENABLED`` (a child node of ``FEATURES``): + Specify whether the L1 cache flush before VM entry is enabled. + +``MCE_ON_PSC_DISABLED`` (a child node of ``FEATURE``): + Specify whether force to disable software workaround for Machine Check + Error on Page Size Change is enabled. + +``IVSHMEM`` (a child node of ``FEATURE``): + Specify the inter-VM shared memory configuration + +``IVSHMEM_ENABLED`` (a child node of ``FEATURE/IVSHMEM``): + Specify if the inter-VM shared memory feature is enabled. + +``IVSHMEM_REGION`` (a child node of ``FEATURE/IVSHMEM``): + Specify a comma-separated list of the inter-VM shared memory region name, + size, and VM IDs that may communicate using this shared region. + + * Prefix the region ``name`` with ``hv:/`` (for an hv-land solution). + (See :ref:`ivshmem-hld` for details.) + * Specify the region ``size`` in MB, and a power of 2 (e.g., 2, 4, 8, 16) + up to 512. + * Specify all VM IDs that may use this shared memory area, + separated by a ``:``, for example, ``0:2`` (to share this area between + VMs 0 and 2), or ``0:1:2`` (to let VMs 0, 1, and 2 share this area). + +``STACK_SIZE`` (a child node of ``MEMORY``): + Specify the size of stacks used by physical cores. Each core uses one stack + for normal operations and another three for specific exceptions. + +``HV_RAM_SIZE`` (a child node of ``MEMORY``): + Specify the size of the RAM region used by the hypervisor. + +``LOW_RAM_SIZE`` (a child node of ``MEMORY``): + Specify the size of the RAM region below address 0x10000, starting from address 0x0. + +``SOS_RAM_SIZE`` (a child node of ``MEMORY``): + Specify the size of the Service OS VM RAM region. + +``UOS_RAM_SIZE`` (a child node of ``MEMORY``): + Specify the size of the User OS VM RAM region. + +``PLATFORM_RAM_SIZE`` (a child node of ``MEMORY``): + Specify the size of the physical platform RAM region. + +``IOMMU_BUS_NUM`` (a child node of ``CAPACITIES``): + Specify the highest PCI bus ID used during IOMMU initialization. + +``MAX_IR_ENTRIES`` (a child node of ``CAPACITIES``): + Specify the maximum number of Interrupt Remapping Entries. + +``MAX_IOAPIC_NUM`` (a child node of ``CAPACITIES``): + Specify the maximum number of IOAPICs. + +``MAX_PCI_DEV_NUM`` (a child node of ``CAPACITIES``): + Specify the maximum number of PCI devices. + +``MAX_IOAPIC_LINES`` (a child node of ``CAPACITIES``): + Specify the maximum number of interrupt lines per IOAPIC. + +``MAX_PT_IRQ_ENTRIES`` (a child node of ``CAPACITIES``): + Specify the maximum number of interrupt sources for PT devices. + +``MAX_MSIX_TABLE_NUM`` (a child node of ``CAPACITIES``): + Specify the maximum number of MSI-X tables per device. + +``MAX_EMULATED_MMIO`` (a child node of ``CAPACITIES``): + Specify the maximum number of emulated MMIO regions. + +``GPU_SBDF`` (a child node of ``MISC_CFG``): + Specify the Segment, Bus, Device, and function of the GPU. + +``vm``: + Specify the VM with VMID by its ``id`` attribute. + +``vm_type``: + Current supported VM types are: + + - ``SAFETY_VM`` pre-launched Safety VM + - ``PRE_STD_VM`` pre-launched Standard VM + - ``SOS_VM`` pre-launched Service VM + - ``POST_STD_VM`` post-launched Standard VM + - ``POST_RT_VM`` post-launched real-time capable VM + - ``KATA_VM`` post-launched Kata Container VM + +``name`` (a child node of ``vm``): + Specify the VM name shown in the hypervisor console command: vm_list. + +``guest_flags``: + Select all applicable flags for the VM: + + - ``GUEST_FLAG_SECURE_WORLD_ENABLED`` specify whether the secure world is + enabled + - ``GUEST_FLAG_LAPIC_PASSTHROUGH`` specify whether LAPIC is passed through + - ``GUEST_FLAG_IO_COMPLETION_POLLING`` specify whether the hypervisor needs + IO polling to completion + - ``GUEST_FLAG_HIDE_MTRR`` specify whether to hide MTRR from the VM + - ``GUEST_FLAG_RT`` specify whether the VM is RT-VM (real-time) + +``cpu_affinity``: + List of pCPU: the guest VM is allowed to create vCPU from all or a subset of this list. + +``base`` (a child node of ``epc_section``): + SGX Enclave Page Cache section base; must be page aligned. + +``size`` (a child node of ``epc_section``): + SGX Enclave Page Cache section size in bytes; must be page aligned. + +``clos``: + Class of Service for Cache Allocation Technology settings. Refer to :ref:`hv_rdt` for details. + +``start_hpa`` (a child node of ``memory``): + The start physical address in host for the VM. + +``size`` (a child node of ``memory``): + The memory size in bytes for the VM. + +``name`` (a child node of ``os_config``): + Specify the OS name of VM; currently, it is not referenced by the hypervisor code. + +``kern_type`` (a child node of ``os_config``): + Specify the kernel image type so that the hypervisor can load it correctly. + Currently supports ``KERNEL_BZIMAGE`` and ``KERNEL_ZEPHYR``. + +``kern_mod`` (a child node of ``os_config``): + The tag for the kernel image that acts as a multiboot module; it must + exactly match the module tag in the GRUB multiboot cmdline. + +``ramdisk_mod`` (a child node of ``os_config``): + The tag for the ramdisk image, which acts as a multiboot module; it + must exactly match the module tag in the GRUB multiboot cmdline. + +``bootargs`` (a child node of ``os_config``): + For internal use only and is not configurable. Specify the kernel boot arguments + in ``bootargs`` under the parent of ``board_private``. + +``kern_load_addr`` (a child node of ``os_config``): + The loading address in host memory for the VM kernel. + +``kern_entry_addr`` (a child node of ``os_config``): + The entry address in host memory for the VM kernel. + +``legacy_vuart``: + Specify the vUART (aka COM) with the vUART ID by its ``id`` attribute. + Refer to :ref:`vuart_config` for detailed vUART settings. + +``console_vuart``: + Specify the console vUART (aka PCI based vUART) with the vUART ID by + its ``id`` attribute. + Refer to :ref:`vuart_config` for detailed vUART settings. + +``communication_vuart``: + Specify the communication vUART (aka PCI based vUART) with the vUART ID by + its ``id`` attribute. + Refer to :ref:`vuart_config` for detailed vUART settings. + +``type`` (a child node of ``legacy_vuart``): + vUART (aka COM) type; currently only supports the legacy PIO mode. + +``base`` (a child node of ``legacy_vuart``, ``console_vuart``, and ``communication_vuart``): + vUART (A.K.A COM) enabling switch. Enable by exposing its COM_BASE + (SOS_COM_BASE for Service VM); disable by returning INVALID_COM_BASE. + + console and communication vUART (A.K.A PCI based vUART) enabling switch. + Enable by specifying PCI_VUART; disable by returning INVALID_PCI_BASE. + +``irq`` (a child node of ``legacy_vuart``): + vCOM IRQ. + +``target_vm_id`` (a child node of ``legacy_vuart1``, ``communication_vuart``): + COM2 is used for VM communications. When it is enabled, specify which + target VM the current VM connects to. + + ``communication_vuart`` is used for VM communications. When it is enabled, specify + which target VM the current VM connects to. + +``target_uart_id`` (a child node of ``legacy_vuart1`` and ``communication_vuart``): + Target vUART ID to which the vCOM2 connects. + + Target vUART ID to which the ``communication_vuart`` connects. + +``pci_dev_num``: + PCI devices number of the VM; it is hard-coded for each scenario so it + is not configurable for now. + +``pci_devs``: + PCI devices list of the VM; it is hard-coded for each scenario so it + is not configurable for now. + +``mmio_resources``: + MMIO resources to passthrough. + +``TPM2`` (a child node of ``mmio_resources``): + TPM2 device to passthrough. + +``p2sb`` (a child node of ``mmio_resources``): + Exposing the P2SB (Primary-to-Sideband) bridge to the pre-launched VM. + +``pt_intx``: + Forward specific IOAPIC interrupts (with interrupt line remapping) to the pre-launched VM. + +``board_private``: + Stores scenario-relevant board configuration. + +``rootfs`` (a child node of ``board_private``): + rootfs for the Linux kernel. + +``bootargs`` (a child node of ``board_private``): + Specify kernel boot arguments. + diff --git a/doc/tutorials/acrn_configuration_tool.rst b/doc/tutorials/acrn_configuration_tool.rst index ac4979ec7..050a61f35 100644 --- a/doc/tutorials/acrn_configuration_tool.rst +++ b/doc/tutorials/acrn_configuration_tool.rst @@ -100,278 +100,8 @@ and ``scenario`` attributes: -Additional scenario XML elements: +See :ref:`scenario-config-options` for a full explanation of available scenario XML elements. -``hv``: - Specify the global attributes for all VMs. - -``RELEASE`` (a child node of ``DEBUG_OPTIONS``): - Specify the final build is for Release or Debug. - -``SERIAL_CONSOLE`` (a child node of ``DEBUG_OPTIONS``): - Specify the host serial device is used for hypervisor debugging. - This configuration is valid only if Service VM ``legacy_vuart0`` - is enabled. Leave this field empty if Service VM ``console_vuart`` - is enabled. Using ``bootargs`` for ``console_vuart`` configuration. - -``MEM_LOGLEVEL`` (a child node of ``DEBUG_OPTIONS``): - Specify the default log level in memory. - -``NPK_LOGLEVEL`` (a child node of ``DEBUG_OPTIONS``): - Specify the default log level for the hypervisor NPK log. - -``CONSOLE_LOGLEVEL`` (a child node of ``DEBUG_OPTIONS``): - Specify the default log level on the serial console. - -``LOG_DESTINATION`` (a child node of ``DEBUG_OPTIONS``): - Specify the bitmap of consoles where logs are printed. - -``LOG_BUF_SIZE`` (a child node of ``DEBUG_OPTIONS``): - Specify the capacity of the log buffer for each physical CPU. - -``RELOC`` (a child node of ``FEATURES``): - Specify whether the hypervisor image relocation is enabled on booting. - -``SCHEDULER`` (a child node of ``FEATURES``): - Specify the CPU scheduler used by the hypervisor. - Supported schedulers are: ``SCHED_NOOP``, ``SCHED_BVT`` and ``SCHED_IORR``. - -``MULTIBOOT2`` (a child node of ``FEATURES``): - Specify whether the ACRN hypervisor image can be booted using the - multiboot2 protocol. If not set, GRUB's multiboot2 is not available as a - boot option. - -``RDT_ENABLED`` (a child node of ``FEATURES/RDT``): - Specify whether to enable the Resource Director Technology (RDT) - allocation feature. Set to 'y' to enable the feature or 'n' to disable it. - The 'y' will be ignored when hardware does not support RDT. - -``CDP_ENABLED`` (a child node of ``FEATURES/RDT``): - Specify whether to enable Code and Data Prioritization (CDP). CDP is an - extension of CAT. Set to 'y' to enable the feature or 'n' to disable it. - The 'y' will be ignored when hardware does not support CDP. - -``CLOS_MASK`` (a child node of ``FEATURES/RDT``): - Specify the cache capacity bitmask for the CLOS; only continuous '1' bits - are allowed. The value will be ignored when hardware does not support RDT. - -``HYPERV_ENABLED`` (a child node of ``FEATURES``): - Specify whether Hyper-V is enabled. - -``IOMMU_ENFORCE_SNP`` (a child node of ``FEATURES``): - Specify whether IOMMU enforces snoop behavior of the DMA operation. - -``ACPI_PARSE_ENABLED`` (a child node of ``FEATURES``): - Specify whether ACPI runtime parsing is enabled. - -``L1D_VMENTRY_ENABLED`` (a child node of ``FEATURES``): - Specify whether the L1 cache flush before VM entry is enabled. - -``MCE_ON_PSC_DISABLED`` (a child node of ``FEATURE``): - Specify whether force to disable software workaround for Machine Check - Error on Page Size Change is enabled. - -``IVSHMEM`` (a child node of ``FEATURE``): - Specify the inter-VM shared memory configuration - -``IVSHMEM_ENABLED`` (a child node of ``FEATURE/IVSHMEM``): - Specify if the inter-VM shared memory feature is enabled. - -``IVSHMEM_REGION`` (a child node of ``FEATURE/IVSHMEM``): - Specify a comma-separated list of the inter-VM shared memory region name, - size, and VM IDs that may communicate using this shared region. - - * Prefix the region ``name`` with ``hv:/`` (for an hv-land solution). - (See :ref:`ivshmem-hld` for details.) - * Specify the region ``size`` in MB, and a power of 2 (e.g., 2, 4, 8, 16) - up to 512. - * Specify all VM IDs that may use this shared memory area, - separated by a ``:``, for example, ``0:2`` (to share this area between - VMs 0 and 2), or ``0:1:2`` (to let VMs 0, 1, and 2 share this area). - -``STACK_SIZE`` (a child node of ``MEMORY``): - Specify the size of stacks used by physical cores. Each core uses one stack - for normal operations and another three for specific exceptions. - -``HV_RAM_SIZE`` (a child node of ``MEMORY``): - Specify the size of the RAM region used by the hypervisor. - -``LOW_RAM_SIZE`` (a child node of ``MEMORY``): - Specify the size of the RAM region below address 0x10000, starting from address 0x0. - -``SOS_RAM_SIZE`` (a child node of ``MEMORY``): - Specify the size of the Service OS VM RAM region. - -``UOS_RAM_SIZE`` (a child node of ``MEMORY``): - Specify the size of the User OS VM RAM region. - -``PLATFORM_RAM_SIZE`` (a child node of ``MEMORY``): - Specify the size of the physical platform RAM region. - -``IOMMU_BUS_NUM`` (a child node of ``CAPACITIES``): - Specify the highest PCI bus ID used during IOMMU initialization. - -``MAX_IR_ENTRIES`` (a child node of ``CAPACITIES``): - Specify the maximum number of Interrupt Remapping Entries. - -``MAX_IOAPIC_NUM`` (a child node of ``CAPACITIES``): - Specify the maximum number of IOAPICs. - -``MAX_PCI_DEV_NUM`` (a child node of ``CAPACITIES``): - Specify the maximum number of PCI devices. - -``MAX_IOAPIC_LINES`` (a child node of ``CAPACITIES``): - Specify the maximum number of interrupt lines per IOAPIC. - -``MAX_PT_IRQ_ENTRIES`` (a child node of ``CAPACITIES``): - Specify the maximum number of interrupt sources for PT devices. - -``MAX_MSIX_TABLE_NUM`` (a child node of ``CAPACITIES``): - Specify the maximum number of MSI-X tables per device. - -``MAX_EMULATED_MMIO`` (a child node of ``CAPACITIES``): - Specify the maximum number of emulated MMIO regions. - -``GPU_SBDF`` (a child node of ``MISC_CFG``): - Specify the Segment, Bus, Device, and function of the GPU. - -``vm``: - Specify the VM with VMID by its ``id`` attribute. - -``vm_type``: - Current supported VM types are: - - - ``SAFETY_VM`` pre-launched Safety VM - - ``PRE_STD_VM`` pre-launched Standard VM - - ``SOS_VM`` pre-launched Service VM - - ``POST_STD_VM`` post-launched Standard VM - - ``POST_RT_VM`` post-launched real-time capable VM - - ``KATA_VM`` post-launched Kata Container VM - -``name`` (a child node of ``vm``): - Specify the VM name shown in the hypervisor console command: vm_list. - -``guest_flags``: - Select all applicable flags for the VM: - - - ``GUEST_FLAG_SECURE_WORLD_ENABLED`` specify whether the secure world is - enabled - - ``GUEST_FLAG_LAPIC_PASSTHROUGH`` specify whether LAPIC is passed through - - ``GUEST_FLAG_IO_COMPLETION_POLLING`` specify whether the hypervisor needs - IO polling to completion - - ``GUEST_FLAG_HIDE_MTRR`` specify whether to hide MTRR from the VM - - ``GUEST_FLAG_RT`` specify whether the VM is RT-VM (real-time) - -``cpu_affinity``: - List of pCPU: the guest VM is allowed to create vCPU from all or a subset of this list. - -``base`` (a child node of ``epc_section``): - SGX Enclave Page Cache section base; must be page aligned. - -``size`` (a child node of ``epc_section``): - SGX Enclave Page Cache section size in bytes; must be page aligned. - -``clos``: - Class of Service for Cache Allocation Technology settings. Refer to :ref:`hv_rdt` for details. - -``start_hpa`` (a child node of ``memory``): - The start physical address in host for the VM. - -``size`` (a child node of ``memory``): - The memory size in bytes for the VM. - -``name`` (a child node of ``os_config``): - Specify the OS name of VM; currently, it is not referenced by the hypervisor code. - -``kern_type`` (a child node of ``os_config``): - Specify the kernel image type so that the hypervisor can load it correctly. - Currently supports ``KERNEL_BZIMAGE`` and ``KERNEL_ZEPHYR``. - -``kern_mod`` (a child node of ``os_config``): - The tag for the kernel image that acts as a multiboot module; it must - exactly match the module tag in the GRUB multiboot cmdline. - -``ramdisk_mod`` (a child node of ``os_config``): - The tag for the ramdisk image, which acts as a multiboot module; it - must exactly match the module tag in the GRUB multiboot cmdline. - -``bootargs`` (a child node of ``os_config``): - For internal use only and is not configurable. Specify the kernel boot arguments - in ``bootargs`` under the parent of ``board_private``. - -``kern_load_addr`` (a child node of ``os_config``): - The loading address in host memory for the VM kernel. - -``kern_entry_addr`` (a child node of ``os_config``): - The entry address in host memory for the VM kernel. - -``legacy_vuart``: - Specify the vUART (aka COM) with the vUART ID by its ``id`` attribute. - Refer to :ref:`vuart_config` for detailed vUART settings. - -``console_vuart``: - Specify the console vUART (aka PCI based vUART) with the vUART ID by - its ``id`` attribute. - Refer to :ref:`vuart_config` for detailed vUART settings. - -``communication_vuart``: - Specify the communication vUART (aka PCI based vUART) with the vUART ID by - its ``id`` attribute. - Refer to :ref:`vuart_config` for detailed vUART settings. - -``type`` (a child node of ``legacy_vuart``): - vUART (aka COM) type; currently only supports the legacy PIO mode. - -``base`` (a child node of ``legacy_vuart``, ``console_vuart``, and ``communication_vuart``): - vUART (A.K.A COM) enabling switch. Enable by exposing its COM_BASE - (SOS_COM_BASE for Service VM); disable by returning INVALID_COM_BASE. - - console and communication vUART (A.K.A PCI based vUART) enabling switch. - Enable by specifying PCI_VUART; disable by returning INVALID_PCI_BASE. - -``irq`` (a child node of ``legacy_vuart``): - vCOM IRQ. - -``target_vm_id`` (a child node of ``legacy_vuart1``, ``communication_vuart``): - COM2 is used for VM communications. When it is enabled, specify which - target VM the current VM connects to. - - ``communication_vuart`` is used for VM communications. When it is enabled, specify - which target VM the current VM connects to. - -``target_uart_id`` (a child node of ``legacy_vuart1`` and ``communication_vuart``): - Target vUART ID to which the vCOM2 connects. - - Target vUART ID to which the ``communication_vuart`` connects. - -``pci_dev_num``: - PCI devices number of the VM; it is hard-coded for each scenario so it - is not configurable for now. - -``pci_devs``: - PCI devices list of the VM; it is hard-coded for each scenario so it - is not configurable for now. - -``mmio_resources``: - MMIO resources to passthrough. - -``TPM2`` (a child node of ``mmio_resources``): - TPM2 device to passthrough. - -``p2sb`` (a child node of ``mmio_resources``): - Exposing the P2SB (Primary-to-Sideband) bridge to the pre-launched VM. - -``pt_intx``: - Forward specific IOAPIC interrupts (with interrupt line remapping) to the pre-launched VM. - -``board_private``: - Stores scenario-relevant board configuration. - -``rootfs`` (a child node of ``board_private``): - rootfs for the Linux kernel. - -``bootargs`` (a child node of ``board_private``): - Specify kernel boot arguments. Launch XML format ================= diff --git a/doc/tutorials/docbuild.rst b/doc/tutorials/docbuild.rst index 10f5a2163..84df0d576 100644 --- a/doc/tutorials/docbuild.rst +++ b/doc/tutorials/docbuild.rst @@ -48,7 +48,7 @@ You'll need ``git`` installed to get the working folders set up: .. code-block:: bash - sudo apt-get install git + sudo apt install git We use the source header files to generate API documentation and we use ``github.io`` for publishing the generated documentation. Here's the @@ -137,7 +137,7 @@ For Ubuntu use: .. code-block:: bash - sudo apt-get install doxygen python3-pip \ + sudo apt install doxygen python3-pip \ python3-wheel make graphviz xsltproc Then use ``pip3`` to install the remaining Python-based tools: