acrn-hypervisor/doc/developer-guides/hld/hv-config.rst

47 lines
2.0 KiB
ReStructuredText

.. _hv-config:
Compile-Time Configuration
##########################
As described in :ref:`acrn_configuration_tool`, ACRN hypervisor configurations
are saved as XML files and used for compilation. At compile-time, configuration
data in the board and scenario XMLs are converted to C header and source files
that define macros, variables, and data structures to which the hypervisor can
refer. This conversion has two main steps:
1. **Static allocation of resources**, which statically reserves resources for
the VMs if only high-level requirements are given in the scenario
configurations. Examples include the runtime base address of the hypervisor
image and PCI BDF addresses of ivshmem virtual devices.
#. **Generation of C files**, which places the configuration data in the data
types and structures defined by the hypervisor.
Some key files, which can be found under the build directory of the hypervisor,
are as follows.
- **.board.xml** and **.scenario.xml** These files contain the configuration
data used by that build.
- **configs/allocation.xml** contains the results of the static allocation.
- **configs/config.mk** This file is a conversion of the hypervisor feature
configurations (specified in the scenario XML) in Makefile syntax, and can be
included in makefiles so that the build process can rely on the
configurations.
- **include/config.h** This file is a conversion of the hypervisor feature
configurations in C header syntax, and is automatically included in every
source file so that the values of the configuration symbols are available in
the sources.
- **configs/boards** and **configs/scenarios** contain all the other generated C
headers and sources that encode the configuration data in the XML files.
Whenever ``.board.xml`` or ``.scenario.xml`` is modified, the hypervisor will be
rebuilt upon the next invocation of ``make``.
For the concept and usage of the configuration toolset, refer to
:ref:`acrn_configuration_tool`. For a complete list of configuration symbols,
refer to :ref:`scenario-config-options`.