diff --git a/kernel/configs/fragments/arm64/base.conf b/kernel/configs/fragments/arm64/base.conf new file mode 100644 index 0000000000..cc43544ba5 --- /dev/null +++ b/kernel/configs/fragments/arm64/base.conf @@ -0,0 +1,42 @@ +CONFIG_ARM64=y +CONFIG_ARM64_4K_PAGES=y + +# ARM servers are often multi-cores, following configs improve +# the CPU scheduler's decision making. +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y + +# Virtual address space size (48-bit) +CONFIG_ARM64_VA_BITS_48=y +CONFIG_ARM64_VA_BITS=48 +# Physical address space size (48-bit) +CONFIG_ARM64_PA_BITS_48=y +CONFIG_ARM64_PA_BITS=48 + +# Use the maximum number of CPUs supported by KVM (255) +CONFIG_NR_CPUS=255 + +CONFIG_PERF_EVENTS=y + +# No architected NMI +CONFIG_ARM64_PSEUDO_NMI=y +CONFIG_ARM64_SVE=y + +# Arm64 prefers to use REFCOUNT_FULL by default. +CONFIG_REFCOUNT_FULL=y + +# +# ARMv8.1 architectural features +# +CONFIG_ARM64_HW_AFDBM=y +CONFIG_ARM64_PAN=y +# end of ARMv8.1 architectural features + +# +# ARMv8.2 architectural features +# +CONFIG_ARM64_CNP=y +CONFIG_ARM64_PMEM=y +CONFIG_ARM64_RAS_EXTN=y +CONFIG_ARM64_UAO=y +# end of ARMv8.2 architectural feature diff --git a/kernel/configs/fragments/arm64/crypto.conf b/kernel/configs/fragments/arm64/crypto.conf new file mode 100644 index 0000000000..2f72487af0 --- /dev/null +++ b/kernel/configs/fragments/arm64/crypto.conf @@ -0,0 +1,6 @@ +# ARMv8 adds cryptographic instructions that could significantly improve +# performance on tasks such as AES encryption and SHA1 and SHA256 hashing. +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_AES_ARM64=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_SHA256_ARM64=y diff --git a/kernel/configs/fragments/arm64/dt.conf b/kernel/configs/fragments/arm64/dt.conf new file mode 100644 index 0000000000..b5d78f830d --- /dev/null +++ b/kernel/configs/fragments/arm64/dt.conf @@ -0,0 +1,4 @@ +# Device Tree and Open Firmware support +CONFIG_DTC=y +CONFIG_OF=y +CONFIG_OF_PMEM=y diff --git a/kernel/configs/fragments/arm64/erratum.conf b/kernel/configs/fragments/arm64/erratum.conf new file mode 100644 index 0000000000..482588079d --- /dev/null +++ b/kernel/configs/fragments/arm64/erratum.conf @@ -0,0 +1,15 @@ +# ARM errata workarounds via the alternatives framework. +# Vendor-specific option will be left to users to decide. +CONFIG_ARM64_ERRATUM_1024718=y +CONFIG_ARM64_ERRATUM_1165522=y +CONFIG_ARM64_ERRATUM_1286807=y +CONFIG_ARM64_ERRATUM_1463225=y +CONFIG_ARM64_ERRATUM_819472=y +CONFIG_ARM64_ERRATUM_824069=y +CONFIG_ARM64_ERRATUM_826319=y +CONFIG_ARM64_ERRATUM_827319=y +CONFIG_ARM64_ERRATUM_832075=y +CONFIG_ARM64_ERRATUM_843419=y +CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y +CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y + diff --git a/kernel/configs/fragments/arm64/pci.conf b/kernel/configs/fragments/arm64/pci.conf new file mode 100644 index 0000000000..cc2077e123 --- /dev/null +++ b/kernel/configs/fragments/arm64/pci.conf @@ -0,0 +1,3 @@ +# It brings PCI support to mach-virt based upon an idealised host controller. +CONFIG_PCI_HOST_COMMON=y +CONFIG_PCI_HOST_GENERIC=y diff --git a/kernel/configs/fragments/arm64/rtc.conf b/kernel/configs/fragments/arm64/rtc.conf new file mode 100644 index 0000000000..7ed80cf2f3 --- /dev/null +++ b/kernel/configs/fragments/arm64/rtc.conf @@ -0,0 +1,10 @@ +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y +# RTC interfaces +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# QEMU provides an emulated ARM AMBA PrimeCell PL031 RTC. +CONFIG_RTC_DRV_PL031=y diff --git a/kernel/configs/fragments/arm64/serial.conf b/kernel/configs/fragments/arm64/serial.conf new file mode 100644 index 0000000000..6c76fd2964 --- /dev/null +++ b/kernel/configs/fragments/arm64/serial.conf @@ -0,0 +1,3 @@ +# This option is used for all 8250 compatible serial ports +# that are probed through device tree. +CONFIG_SERIAL_OF_PLATFORM=y