47 lines
2.0 KiB
ReStructuredText
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`.
|