Compile-Time Configuration

As described in Introduction to ACRN Configuration, 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.

  2. 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 Introduction to ACRN Configuration. For a complete list of configuration symbols, refer to Scenario Configuration Options.