Add a few arm64-specific configs and classify them into seven new categories , that is, 1. base architecture-dependent options(base.conf) It also includes varient-specific features, like CONFIG_ARM64_PMEM is one ARMv8.2 arichitectural features. 2. crypto-related options(crypto.conf) ARMv8 adds cryptographic instructions that could significantly improve performance on tasks such as AES encryption and SHA1 and SHA256 hashing. 3. device tree related options(dt.conf) The "Open Firmware Device Tree", or simply Device Tree (DT), is a data structure and language for describing hardware, which is commonly used in arm architecture. 4. ARM errata workarounds options(errata.conf) There are many Kconfig entires under "Kernel Features" -> "ARM errata workarounds via the alternatives framework", which provides software workarounds to mitigate systems affected by those erratum. Vendor-specific option will be left to users to decide. 5. pci related options(pci.conf) a simplified pci host controller for mach-virt. 6. serial devices options(serial.conf) CONFIG_SERIAL_OF_PLATFORM is used for all 8250 compatible serial ports that are probed through device tree. 7. rtc related options(rtc.conf) we don't have KVM’s paravirtualized clock and ptp implementation is still under experimental mode, so we need rtc on aarch64. QEMU provides an emulated ARM AMBA PrimeCell PL031 RTC. Fixes: #1004 Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Kata Containers kernel config files
This directory contains Linux Kernel config files used to configure Kata Containers VM kernels.
Types of config files
This directory holds config files for the Kata Linux Kernel in two forms:
- A tree of config file 'fragments' in the
fragmentssub-folder, that are constructed into a complete config file using the kernelscripts/kconfig/merge_config.shscript. - As complete config files that can be used as-is.
Kernel config fragments are the preferred method of constructing .config files
to build Kata Containers kernels, due to their improved clarity and ease of maintenance
over single file monolithic .configs.
How to use config files
The recommended way to set up a kernel tree, populate it with a relevant .config file,
and build a kernel, is to use the build_kernel.sh script. For
example:
$ ./build-kernel.sh setup
The build-kernel.sh script understands both full and fragment based config files.
Run ./build-kernel.sh help for more information.
How to modify config files
Complete config files can be modified either with an editor, or preferably
using the kernel Kconfig configuration tools, for example:
$ cp x86_kata_kvm_4.14.x linux-4.14.22/.config
$ pushd linux-4.14.22
$ make menuconfig
$ popd
$ cp linux-4.14.22/.config x86_kata_kvm_4.14.x
Kernel fragments are best constructed using an editor. Tools such as grep and
diff can help find the differences between two config files to be placed
into a fragment.
If adding config entries for a new subsystem or feature, consider making a new fragment with an appropriately descriptive name.
The fragment gathering tool perfoms some basic sanity checks, and the build-kernel.sh will
fail and report the error in the cases of:
- A duplicate
CONFIGsymbol appearing. - A
CONFIGsymbol being in a fragment, but not appearing in the final .config- which indicates that
CONFIGvariable is not a part of the kernelKconfigsetup, which can indicate a typing mistake in the name of the symbol.
- which indicates that
- A
CONFIGsymbol appearing in the fragments with multiple different values.