mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-21 16:57:20 +00:00
config_tools: remove obsolete kconfig files
Remove obsolete Kconfig files; Update Kconfig related README and error message. Tracked-On: #6315 Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
mainmenu "ACRN Configuration"
|
||||
|
||||
source "arch/x86/Kconfig"
|
@@ -1,352 +0,0 @@
|
||||
config SCENARIO
|
||||
string "ACRN scenario"
|
||||
default "industry"
|
||||
help
|
||||
By specifying SCENARIO name, ACRN will load corresponding VM configurations
|
||||
to build the hypervisor. Currently ACRN provides four reference scenarios:
|
||||
|
||||
- industry: Typical scenario for industry usage with 8 VMs: one pre-launched SOS VM,
|
||||
one post-launched KATA VM, one post-launched RT VM for real-time control,
|
||||
and up to five post-launched Standard VMs;
|
||||
- hybrid: Typical scenario for hybrid usage with 3 VMs: one pre-launched Safety VM,
|
||||
one pre-launched Service VM and one post-launched Standard VM;
|
||||
- hybrid_rt: Typical scenario for hybrid real-time usage with 4 VMs: one
|
||||
pre-launched RTVM, one pre-launched Service VM and two post-launched Standard VMs;
|
||||
- logical_partition: Typical scenario that run two isolated pre-launched VMs
|
||||
|
||||
Other values are possible if a corresponding scenario has been created
|
||||
under 'misc/vm_configs/scenarios/' in the source code.
|
||||
|
||||
config MULTIBOOT2
|
||||
bool "Multiboot2 support"
|
||||
default y
|
||||
help
|
||||
Support boot ACRN from multiboot2 protocol. Multiboot2 support is needed for
|
||||
some EFI platforms to get correct ACPI RSDP, it also could provide host efi
|
||||
information for hypervisor.
|
||||
|
||||
choice
|
||||
prompt "ACRN Scheduler"
|
||||
default SCHED_BVT
|
||||
help
|
||||
Select the CPU scheduler to be used by the hypervisor
|
||||
|
||||
config SCHED_NOOP
|
||||
bool "NOOP scheduler"
|
||||
help
|
||||
The NOOP (No-Operation) scheduler means there is a strict 1 to 1 mapping
|
||||
between vCPUs and pCPUs.
|
||||
|
||||
config SCHED_IORR
|
||||
bool "IORR scheduler"
|
||||
help
|
||||
IORR (IO sensitive Round Robin) scheduler supports multipule vCPUs running on
|
||||
on one pCPU, and they will be scheduled by a IO sensitive round robin policy.
|
||||
|
||||
config SCHED_BVT
|
||||
bool "BVT scheduler"
|
||||
help
|
||||
BVT (Borrowed Virtual time) is virtual time based scheduling algorithm, it
|
||||
dispatching the runnable thread with the earliest effective virtual time.
|
||||
TODO: BVT scheduler will be built on top of prioritized scheduling mechanism,
|
||||
i.e. higher priority threads get scheduled first, and same priority tasks are
|
||||
scheduled per BVT.
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
config BOARD
|
||||
string "Target board"
|
||||
help
|
||||
The target board this build runs on top of.
|
||||
|
||||
config DEFCONFIG_LIST
|
||||
string
|
||||
option defconfig_list
|
||||
default "../misc/vm_configs/scenarios/$SCENARIO/$(BOARD)/$BOARD.config"
|
||||
|
||||
config RELEASE
|
||||
bool "Release build"
|
||||
default n
|
||||
help
|
||||
Whether to build a release version of the hypervisor. Logs, serial
|
||||
console and hypervisor shell are available only in non-release
|
||||
(i.e. debug) builds. Assertions are not effective in release builds.
|
||||
|
||||
config MAX_EMULATED_MMIO_REGIONS
|
||||
int "Maximum number of emulated MMIO regions"
|
||||
range 0 128
|
||||
default 16
|
||||
|
||||
config MAX_PT_IRQ_ENTRIES
|
||||
int "Maximum number of interrupt source for PT devices"
|
||||
range 0 256
|
||||
default 64
|
||||
|
||||
config STACK_SIZE
|
||||
hex "Capacity of one stack, in bytes"
|
||||
default 0x2000
|
||||
help
|
||||
The size of stacks used by physical cores. Each core uses one stack
|
||||
for normal operations and another three for specific exceptions.
|
||||
|
||||
config LOG_BUF_SIZE
|
||||
hex "Capacity of logbuf for each physical cpu"
|
||||
default 0x40000
|
||||
|
||||
config LOG_DESTINATION
|
||||
int "Bitmap of consoles where logs are printed"
|
||||
range 0 7
|
||||
default 7
|
||||
help
|
||||
A bitmap indicating the destinations of log messages. Currently there
|
||||
are 3 destinations available. Bit 0 represents the serial console, bit
|
||||
1 the SOS ACRN log and bit 2 NPK log. Effective only in debug builds.
|
||||
|
||||
choice
|
||||
prompt "Serial IO type"
|
||||
depends on !RELEASE
|
||||
optional
|
||||
help
|
||||
If selected, this configures whether the physical serial port shall
|
||||
be accessed via memory-mapped registers or I/O ports.
|
||||
|
||||
If this is not selected, the serial port is disabled. This is the
|
||||
default.
|
||||
|
||||
config SERIAL_PCI
|
||||
bool "PCI"
|
||||
help
|
||||
Select this if the serial port shall be accessed via PCI memory-mapped
|
||||
registers.
|
||||
|
||||
config SERIAL_LEGACY
|
||||
bool "Legacy"
|
||||
help
|
||||
Select this if the serial port shall be accessed via legacy port in/out
|
||||
instructions.
|
||||
|
||||
config SERIAL_MMIO
|
||||
bool "MMIO"
|
||||
help
|
||||
Select this if the serial port shall be accessed via MMIO registers.
|
||||
|
||||
endchoice
|
||||
|
||||
config SERIAL_PCI_BDF
|
||||
hex "BDF of serial PCI device"
|
||||
depends on SERIAL_PCI
|
||||
default 0x00c2
|
||||
help
|
||||
BDF: bus, device and function of the serial PCI device. The BDF is packed
|
||||
into a 16bit WORD with format (B:8, D:5, F:3). For an example,
|
||||
PCI device ttyS2: 0:18.2.
|
||||
|
||||
config SERIAL_PIO_BASE
|
||||
hex "Base address of serial PIO region"
|
||||
depends on SERIAL_LEGACY
|
||||
default 0x3f8
|
||||
help
|
||||
The base address of the serial ports. This is logically 16-bit but used
|
||||
as a 64-bit integer.
|
||||
|
||||
config SERIAL_MMIO_BASE
|
||||
hex "Base address of MMIO UART"
|
||||
depends on SERIAL_MMIO
|
||||
default 0xfe040000
|
||||
help
|
||||
The base address of the MMIO serial port.
|
||||
|
||||
config CONSOLE_LOGLEVEL_DEFAULT
|
||||
int "Default loglevel on the serial console"
|
||||
depends on !RELEASE
|
||||
range 0 6
|
||||
default 3
|
||||
help
|
||||
This indicates the maximum debug level of logs that will be available
|
||||
on the the serial console. The higher the number, the more logs will
|
||||
be available.
|
||||
|
||||
config MEM_LOGLEVEL_DEFAULT
|
||||
int "Default loglevel in memory"
|
||||
depends on !RELEASE
|
||||
range 0 6
|
||||
default 5
|
||||
help
|
||||
This indicates the maximum debug level of logs that will be available
|
||||
in the logbuf in memory which can be accessed by ACRN log in SOS. The
|
||||
higher the number, the more logs will be available.
|
||||
|
||||
config NPK_LOGLEVEL_DEFAULT
|
||||
int "Default loglevel for the hypervisor NPK log"
|
||||
depends on !RELEASE
|
||||
range 0 6
|
||||
default 5
|
||||
help
|
||||
This indicates the maximum debug level of logs that will be available
|
||||
via NPK log. The higher the number, the more logs will be available.
|
||||
|
||||
config LOW_RAM_SIZE
|
||||
hex "Size of the low RAM region"
|
||||
range 0 0x10000
|
||||
default 0x00010000
|
||||
help
|
||||
A 32-bit integer indicating the size of RAM region below address
|
||||
0x10000, starting from address 0x0.
|
||||
|
||||
config HV_RAM_START
|
||||
hex "2M-aligned Start physical address of the RAM region used by the hypervisor"
|
||||
range 0x200000 0x80000000
|
||||
default 0x10000000
|
||||
help
|
||||
A 64-bit integer indicating the base physical address where the
|
||||
hypervisor should be loaded. If RELOC is disabled, the bootloader
|
||||
is required to load the hypervisor to this specific address.
|
||||
Otherwise the hypervisor will not boot. With RELOC enabled the
|
||||
address will be referred as the lowest possible address that hypervisor be loaded,
|
||||
hypervisor may relocate its symbols to where it is placed,
|
||||
and thus the bootloader might not place the hypervisor at this
|
||||
specific address.
|
||||
Note that the addr demands 2M aligned, otherwise memory corruption
|
||||
may occur.
|
||||
|
||||
config HV_RAM_SIZE
|
||||
hex "Size of the RAM region used by the hypervisor"
|
||||
range 0x800000 0x4000000
|
||||
default 0x800000
|
||||
help
|
||||
A 64-bit integer indicating the size of RAM used by the hypervisor.
|
||||
It is ensured at link time that the footprint of the hypervisor
|
||||
does not exceed this size.
|
||||
|
||||
config PLATFORM_RAM_SIZE
|
||||
hex "Size of the physical platform RAM"
|
||||
range 0x100000000 0x4000000000
|
||||
default 0x400000000
|
||||
help
|
||||
A 64-bit integer indicating the size of the physical platform RAM
|
||||
(MMIO not included).
|
||||
|
||||
config ACPI_PARSE_ENABLED
|
||||
bool "Enable ACPI runtime parsing"
|
||||
default y
|
||||
help
|
||||
Platform specific ACPI info may be retrieved thru boot-time parse
|
||||
of ACPI table, or thru parse of off-line tool. This option enables
|
||||
the boot-time parse of ACPI table, and overwrite the information
|
||||
from off-line tool.
|
||||
|
||||
config HYPERV_ENABLED
|
||||
bool "Enable Hyper-V enlightenment"
|
||||
default y
|
||||
help
|
||||
When set, the minimum set of TLFS functionality together with some
|
||||
performance enlightenments are enabled.
|
||||
|
||||
config RDT_ENABLED
|
||||
bool "Enable RDT (Resource Director Technology)"
|
||||
default n
|
||||
help
|
||||
When set in platforms that support RDT, hypervisor can allocate
|
||||
various amount of HW resources such as L2 or/and L3 to VMs to achieve
|
||||
different Class of Service (COS, or CLOS).
|
||||
|
||||
config CDP_ENABLED
|
||||
bool "Enable CDP (Code and Data Prioritization)"
|
||||
depends on RDT_ENABLED
|
||||
default n
|
||||
help
|
||||
CDP is an extension of CAT. It enables isolation and separate
|
||||
prioritization of code and data fetches to the L2 or L3 cache in a
|
||||
software configurable manner, depending on hardware support.
|
||||
|
||||
config SSRAM_ENABLED
|
||||
bool "Enable Software SRAM support"
|
||||
depends on !CDP_ENABLED
|
||||
default n
|
||||
help
|
||||
This will enable RTVM to make use of Software SRAM to improve the performance
|
||||
of Real-Time applications. Software SRAM essentially a block of cache, and is separated via
|
||||
CAT and protected by some methods. Software SRAM support and CDP support cannot co-exist.
|
||||
|
||||
config GPU_SBDF
|
||||
hex "Segment, Bus, Device, and function of the GPU"
|
||||
depends on ACPI_PARSE_ENABLED
|
||||
default 0x00000010
|
||||
help
|
||||
A 32-bit integer encoding the segment, bus, device and function of the
|
||||
GPU. This integer consists of a 16-bit segment ID, 8-bit bus ID, 5-bit
|
||||
device ID and 3-bit function ID. As an example, for PCI device at
|
||||
00:02.0 in DRHD segment 0, this SBDF would be (0 << 16) | (0 << 8) |
|
||||
(2 << 3) | (0 << 0), i.e. 0x00000010.
|
||||
|
||||
config RELOC
|
||||
bool "Enable hypervisor relocation"
|
||||
default y
|
||||
help
|
||||
When selected, the hypervisor will relocate itself to where it is
|
||||
loaded. This allows the bootloader to put the hypervisor image to
|
||||
wherever appropriate. Without relocation the bootloader must put the
|
||||
image to RAM_START, otherwise the hypervisor will not start up.
|
||||
|
||||
config MAX_IOAPIC_NUM
|
||||
int "Maximum number of IO-APICs"
|
||||
range 1 10
|
||||
default 1
|
||||
|
||||
config MAX_IOAPIC_LINES
|
||||
int "Maximum number of interrupt lines per IOAPIC"
|
||||
range 1 120
|
||||
default 120
|
||||
|
||||
config MAX_IR_ENTRIES
|
||||
int "Maximum number of Interrupt Remapping Entries"
|
||||
range 256 512
|
||||
default 256
|
||||
help
|
||||
Minimum value is 256. Value must be 2^n.
|
||||
|
||||
config IOMMU_BUS_NUM
|
||||
hex "Highest PCI bus ID used during IOMMU initialization"
|
||||
default 0x100
|
||||
help
|
||||
Any BDF with a bus ID smaller than this number is mapped to
|
||||
the IOMMU domain of the first VM.
|
||||
|
||||
config MAX_PCI_DEV_NUM
|
||||
int "Maximum number of PCI devices"
|
||||
range 1 1024
|
||||
default 96
|
||||
|
||||
config MAX_MSIX_TABLE_NUM
|
||||
int "Maximum number of MSI-X tables per device"
|
||||
range 1 2048
|
||||
default 64
|
||||
|
||||
config L1D_FLUSH_VMENTRY_ENABLED
|
||||
bool "Enable L1 cache flush before VM entry"
|
||||
default n
|
||||
|
||||
config MCE_ON_PSC_WORKAROUND_DISABLED
|
||||
bool "Force to disable software workaround for Machine Check Error on Page Size Change"
|
||||
default n
|
||||
help
|
||||
By default, software workaround for Machine Check Error on Page Size Change is
|
||||
conditionally applied to the models that may be affected by the issue. However,
|
||||
the software workaround has negative impact on performance. If all the guest OS
|
||||
kernels are trusted, this option may be set for performance.
|
||||
|
||||
config ENFORCE_TURNOFF_AC
|
||||
bool "Force to disable #AC for Split-locked Access"
|
||||
default n
|
||||
help
|
||||
If CPU has #AC for split-locked access, HV enable it and VMs can't disable.
|
||||
Set this to enforce turn off that #AC, for community developer only.
|
||||
|
||||
config IVSHMEM_ENABLED
|
||||
bool "Enable ivshmem inter-vm communication based on hypervisor shared memory"
|
||||
default n
|
||||
help
|
||||
Ivshmem shared memory is located in the hypervisor, it can provide multiple
|
||||
memory regions as communication channels between pre-launched or post-launched
|
||||
VMs.
|
@@ -19,16 +19,6 @@ ifeq ($(CONFIG_XML_ENABLED),)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_XML_ENABLED),true)
|
||||
ifneq ($(BOARD_IN_KCONFIG),)
|
||||
ifneq ($(BOARD_IN_XML),$(BOARD_IN_KCONFIG))
|
||||
$(error BOARD $(BOARD_IN_XML) in $(BOARD_FILE) does not match BOARD $(BOARD_IN_KCONFIG) in $(KCONFIG_FILE))
|
||||
endif
|
||||
endif
|
||||
ifneq ($(SCENARIO_IN_KCONFIG),)
|
||||
ifneq ($(SCENARIO_IN_XML),$(SCENARIO_IN_KCONFIG))
|
||||
$(error SCENARIO $(SCENARIO_IN_XML) in $(SCENARIO_FILE) does not match SCENARIO $(SCENARIO_IN_KCONFIG) in $(KCONFIG_FILE))
|
||||
endif
|
||||
endif
|
||||
override BOARD := $(BOARD_IN_XML)
|
||||
override SCENARIO := $(SCENARIO_IN_XML)
|
||||
RELEASE_IN_XML := $(shell echo `sed -n '/<RELEASE/p' $(SCENARIO_FILE) | sed -r 's/.*<RELEASE(.*)>(.*)<(.*)/\2/g'`)
|
||||
|
@@ -1,114 +0,0 @@
|
||||
# usage: override_config <symbol> <default>
|
||||
#
|
||||
# Given a configuration symbol (without the CONFIG_ prefix), this macro
|
||||
# overrides its value as follows.
|
||||
# 1. If a value is specified from command line, that value is used.
|
||||
# 2. If neither config.mk nor the command line specifies a value, the given
|
||||
# default is used.
|
||||
define override_config =
|
||||
ifdef $(1)
|
||||
CONFIG_$(1) := $($(1))
|
||||
else ifndef CONFIG_$(1)
|
||||
CONFIG_$(1) := $(2)
|
||||
endif
|
||||
endef
|
||||
|
||||
HV_CONFIG := .config
|
||||
HV_DEFCONFIG := defconfig
|
||||
HV_CONFIG_H := include/config.h
|
||||
HV_CONFIG_MK := include/config.mk
|
||||
|
||||
KCONFIG_DIR := $(BASEDIR)/../misc/config_tools/kconfig
|
||||
|
||||
# Backward-compatibility for RELEASE=(0|1)
|
||||
ifdef RELEASE
|
||||
ifeq ($(RELEASE),1)
|
||||
override RELEASE := y
|
||||
else
|
||||
override RELEASE := n
|
||||
endif
|
||||
endif
|
||||
|
||||
-include $(HV_OBJDIR)/$(HV_CONFIG_MK)
|
||||
ifeq ($(shell [ $(HV_OBJDIR)/$(HV_CONFIG) -nt $(HV_OBJDIR)/$(HV_CONFIG_MK) ] && echo 1),1)
|
||||
# config.mk may be outdated if .config has been overwritten. To update config.mk
|
||||
# in such cases, we include .config again to get the new configurations. This
|
||||
# only happens when GNU make checks the prerequisites.
|
||||
-include $(HV_OBJDIR)/$(HV_CONFIG)
|
||||
endif
|
||||
$(eval $(call override_config,BOARD,nuc7i7dnb))
|
||||
$(eval $(call override_config,SCENARIO,industry))
|
||||
$(eval $(call override_config,RELEASE,y))
|
||||
|
||||
override RELEASE := $(CONFIG_RELEASE)
|
||||
|
||||
$(eval $(call check_dep_exec,python3,KCONFIG_DEPS))
|
||||
$(eval $(call check_dep_py3lib,kconfiglib,KCONFIG_DEPS))
|
||||
|
||||
# This target invoke silentoldconfig to generate or update a .config. Useful as
|
||||
# a prerequisite of other targets depending on .config.
|
||||
#
|
||||
# A dummy command is necessary to trigger the remaking of config.mk right after
|
||||
# oldconfig changes HV_CONFIG in the same execution of make.
|
||||
$(HV_OBJDIR)/$(HV_CONFIG): update_config oldconfig
|
||||
@true
|
||||
|
||||
# Note: This target must not depend on a phony target (e.g. oldconfig) because
|
||||
# it'll trigger endless re-execution of make.
|
||||
$(HV_OBJDIR)/$(HV_CONFIG_MK): $(HV_OBJDIR)/$(HV_CONFIG)
|
||||
@mkdir -p $(dir $@)
|
||||
@sed 's/="\(.*\)"$$/=\1/g' $(HV_OBJDIR)/$(HV_CONFIG) > $@
|
||||
|
||||
$(HV_OBJDIR)/$(HV_CONFIG_H): $(HV_OBJDIR)/$(HV_CONFIG)
|
||||
@mkdir -p $(dir $@)
|
||||
@python3 $(KCONFIG_DIR)/generate_header.py Kconfig $< $@
|
||||
|
||||
# This target forcefully generate a .config based on a given default
|
||||
# one. Overwrite the current .config if it exists.
|
||||
.PHONY: defconfig
|
||||
defconfig: $(KCONFIG_DEPS)
|
||||
@mkdir -p $(HV_OBJDIR)
|
||||
@if ([ "$(KCONFIG_FILE)" = "" ] || ([ "$(KCONFIG_FILE)" != "" ] && [ ! -f $(KCONFIG_FILE) ])) && [ "$(CONFIG_XML_ENABLED)" != "true" ]; then \
|
||||
BOARD=$(CONFIG_BOARD) SCENARIO=$(CONFIG_SCENARIO) \
|
||||
python3 $(KCONFIG_DIR)/defconfig.py Kconfig $(HV_OBJDIR)/$(HV_CONFIG); \
|
||||
else \
|
||||
if [ "$(KCONFIG_FILE)" != "" ] && [ -f $(KCONFIG_FILE) ]; then \
|
||||
echo "Writing $(HV_OBJDIR)/$(HV_CONFIG) with $(KCONFIG_FILE)"; \
|
||||
cp $(KCONFIG_FILE) $(HV_OBJDIR)/$(HV_CONFIG); \
|
||||
elif [ "$(TARGET_DIR)" != "" ] && [ -d $(TARGET_DIR) ]; then \
|
||||
if [ ! -f $(TARGET_DIR)/scenarios/$(SCENARIO)/$(BOARD)/$(BOARD).config ]; then \
|
||||
echo "Board defconfig file $(BOARD).config is not found under $(TARGET_DIR)/scenarios/$(SCENARIO)/$(BOARD)/."; exit 1; \
|
||||
fi; \
|
||||
echo "Writing $(HV_OBJDIR)/$(HV_CONFIG) with $(BOARD_CFG_DIR)/$(BOARD).config"; \
|
||||
cp $(TARGET_DIR)/scenarios/$(SCENARIO)/$(BOARD)/$(BOARD).config $(HV_OBJDIR)/$(HV_CONFIG); \
|
||||
fi; \
|
||||
BOARD=$(CONFIG_BOARD) SCENARIO=$(CONFIG_SCENARIO) \
|
||||
python3 $(KCONFIG_DIR)/silentoldconfig.py Kconfig $(HV_OBJDIR)/$(HV_CONFIG) RELEASE=$(RELEASE); \
|
||||
fi
|
||||
|
||||
# Use silentoldconfig to forcefully update the current .config, or generate a
|
||||
# new one if no previous .config exists. This target can be used as a
|
||||
# prerequisite of all the others to make sure that the .config is consistent
|
||||
# even it has been modified manually before.
|
||||
.PHONY: oldconfig
|
||||
oldconfig: $(KCONFIG_DEPS)
|
||||
@mkdir -p $(HV_OBJDIR)
|
||||
@BOARD=$(CONFIG_BOARD) SCENARIO=$(CONFIG_SCENARIO) \
|
||||
python3 $(KCONFIG_DIR)/silentoldconfig.py Kconfig \
|
||||
$(HV_OBJDIR)/$(HV_CONFIG) \
|
||||
SCENARIO=$(CONFIG_SCENARIO) RELEASE=$(RELEASE)
|
||||
|
||||
# Minimize the current .config. This target can be used to generate a defconfig
|
||||
# for future use.
|
||||
.PHONY: savedefconfig
|
||||
savedefconfig: $(HV_OBJDIR)/$(HV_CONFIG)
|
||||
@python3 $(KCONFIG_DIR)/savedefconfig.py Kconfig \
|
||||
$(HV_OBJDIR)/$(HV_CONFIG) \
|
||||
$(HV_OBJDIR)/$(HV_DEFCONFIG)
|
||||
|
||||
$(eval $(call check_dep_exec,menuconfig,MENUCONFIG_DEPS))
|
||||
export KCONFIG_CONFIG := $(HV_OBJDIR)/$(HV_CONFIG)
|
||||
menuconfig: $(MENUCONFIG_DEPS) defconfig
|
||||
@python3 $(shell which menuconfig) Kconfig
|
||||
|
||||
CFLAGS += -include $(HV_OBJDIR)/$(HV_CONFIG_H)
|
Reference in New Issue
Block a user