aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/cpu.h
diff options
context:
space:
mode:
authorSuzuki K. Poulose <suzuki.poulose@arm.com>2015-10-19 14:24:45 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2015-10-21 15:35:37 +0100
commit3c739b57108436211c7f798ba3de0bb0cd8ef469 (patch)
tree0563a1a74396a93effdda613b5df497ea93f0308 /arch/arm64/include/asm/cpu.h
parentarm64: Handle width of a cpuid feature (diff)
downloadlinux-dev-3c739b57108436211c7f798ba3de0bb0cd8ef469.tar.xz
linux-dev-3c739b57108436211c7f798ba3de0bb0cd8ef469.zip
arm64: Keep track of CPU feature registers
This patch adds an infrastructure to keep track of the CPU feature registers on the system. For each register, the infrastructure keeps track of the system wide safe value of the feature bits. Also, tracks the which fields of a register should be matched strictly across all the CPUs on the system for the SANITY check infrastructure. The feature bits are classified into following 3 types depending on the implication of the possible values. This information is used to decide the safe value for a feature. LOWER_SAFE - The smaller value is safer HIGHER_SAFE - The bigger value is safer EXACT - We can't decide between the two, so a predefined safe_value is used. This infrastructure will be later used to make better decisions for: - Kernel features (e.g, KVM, Debug) - SANITY Check - CPU capability - ELF HWCAP - Exposing CPU Feature register to userspace. Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com> Tested-by: Dave Martin <Dave.Martin@arm.com> [catalin.marinas@arm.com: whitespace fix] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/cpu.h')
-rw-r--r--arch/arm64/include/asm/cpu.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/cpu.h b/arch/arm64/include/asm/cpu.h
index 30db691b0b7e..704c17ba3ab0 100644
--- a/arch/arm64/include/asm/cpu.h
+++ b/arch/arm64/include/asm/cpu.h
@@ -63,6 +63,7 @@ DECLARE_PER_CPU(struct cpuinfo_arm64, cpu_data);
void cpuinfo_store_cpu(void);
void __init cpuinfo_store_boot_cpu(void);
+void __init init_cpu_features(struct cpuinfo_arm64 *info);
void update_cpu_features(struct cpuinfo_arm64 *info);
#endif /* __ASM_CPU_H */