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, disable it as the
# latest kernel has discarded it, add it to whitelist.
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
