linux/arch/arm64/kernel
Suzuki K. Poulose 3c739b5710 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>
2015-10-21 15:35:37 +01:00
..
vdso arm64: vdso: work-around broken ELF toolchains in Makefile 2015-06-19 14:54:10 +01:00
.gitignore
acpi.c arm64: psci: remove ACPI coupling 2015-05-27 13:22:24 +01:00
alternative.c arm64: alternatives: ensure secondary CPUs execute ISB after patching 2015-08-04 18:52:09 +01:00
arm64ksyms.c arm64: add KASAN support 2015-10-12 17:46:36 +01:00
armv8_deprecated.c arm64: kernel: Add support for Privileged Access Never 2015-07-27 11:08:41 +01:00
asm-offsets.c arm64: mm: rewrite ASID allocator and MM context-switching code 2015-10-07 11:55:41 +01:00
cacheinfo.c arm64: kernel: add support for cpu cache information 2015-01-15 11:55:07 +00:00
cpu_errata.c arm64: fix midr range for Cortex-A57 erratum 832075 2015-04-01 11:12:03 +01:00
cpu_ops.c arm64: force CONFIG_SMP=y and remove redundant #ifdefs 2015-07-27 11:08:40 +01:00
cpufeature.c arm64: Keep track of CPU feature registers 2015-10-21 15:35:37 +01:00
cpuidle.c arm64: cpuidle: add __init section marker to arm_cpuidle_init 2015-07-02 17:44:27 +01:00
cpuinfo.c arm64: Keep track of CPU feature registers 2015-10-21 15:35:37 +01:00
debug-monitors.c arm64: debug: Fix typo in debug-monitors.c 2015-10-16 18:21:12 +01:00
efi-entry.S arm64/efi: isolate EFI stub from the kernel proper 2015-10-12 16:20:12 +01:00
efi-stub.c arm64: efi: prefer AllocatePages() over efi_low_alloc() for vmlinux 2015-07-27 11:08:41 +01:00
efi.c arm64: mm: rewrite ASID allocator and MM context-switching code 2015-10-07 11:55:41 +01:00
entry32.S arm64: entry32: remove pointless register assignment 2015-07-10 16:47:13 +01:00
entry-fpsimd.S arm64: fpsimd: fix a typo in fpsimd_save_partial_state ENDPROC 2014-07-31 11:42:42 +01:00
entry-ftrace.S arm64: ftrace: fix function_graph tracer panic 2015-10-02 11:12:56 +01:00
entry.S arm64: AArch32 user space PC alignment exception 2015-10-16 14:55:49 +01:00
fpsimd.c arm64: flush FP/SIMD state correctly after execve() 2015-08-27 09:55:26 +01:00
ftrace.c arm64: ftrace: fix ftrace_modify_graph_caller for branch replace 2015-02-23 09:13:45 +00:00
head.S arm64: Check for selected granule support 2015-10-19 17:54:34 +01:00
hw_breakpoint.c arm64: Fix missing #include in hw_breakpoint.c 2015-10-12 12:10:53 +01:00
hyp-stub.S irqchip: gic-v3: Initial support for GICv3 2014-07-08 22:11:47 +00:00
image.h arm64: Add page size to the kernel image header 2015-10-19 17:54:41 +01:00
insn.c arm64: insn: use set_fixmap_offset to make it more clear 2015-07-27 11:08:41 +01:00
io.c arm64: optimize memcpy_{from,to}io() and memset_io() 2014-11-06 17:25:27 +00:00
irq.c arm64: fix a migrating irq bug when hotplug cpu 2015-10-09 17:40:35 +01:00
jump_label.c jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
kgdb.c arm64/debug: Simplify BRK insn opcode declarations 2015-07-27 11:08:42 +01:00
kuser32.S arm64: Add __NR_* definitions for compat syscalls 2014-07-10 11:02:40 +01:00
Makefile arm64: add KASAN support 2015-10-12 17:46:36 +01:00
module.c arm64: add KASAN support 2015-10-12 17:46:36 +01:00
pci.c ARM64: PCI: do not enable resources on PROBE_ONLY systems 2015-07-30 20:17:07 +01:00
perf_callchain.c arm64: perf: factor out callchain code 2015-07-27 11:08:39 +01:00
perf_event.c arm64: perf: add Cortex-A57 support 2015-10-07 14:25:24 +01:00
perf_regs.c perf: Move task_pt_regs sampling into arch code 2015-01-09 11:12:28 +01:00
process.c arm64: add cpu_idle tracepoints to arch_cpu_idle 2015-10-19 18:43:41 +01:00
psci-call.S arm64: psci: move psci firmware calls out of line 2015-02-26 18:23:53 +00:00
psci.c Merge branch 'aarch64/psci/drivers' into aarch64/for-next/core 2015-08-05 14:14:06 +01:00
ptrace.c arm64: Better native ptrace support for compat tasks 2015-07-27 11:08:39 +01:00
return_address.c arm64: LLVMLinux: Use global stack pointer in return_address() 2014-09-08 14:39:19 +01:00
setup.c arm64: Move /proc/cpuinfo handling code 2015-10-21 15:33:56 +01:00
signal32.c arm64: compat: fix vfp save/restore across signal handlers in big-endian 2015-09-17 11:57:03 +01:00
signal.c arm64: Removed unused variable 2015-04-13 20:40:10 +02:00
sleep.S arm64: mm: ensure patched kernel text is fetched from PoU 2015-08-05 10:05:20 +01:00
smp_spin_table.c ARM64: kernel: make cpu_ops hooks DT agnostic 2015-05-19 16:09:29 +01:00
smp.c arm64: Delay cpuinfo_store_boot_cpu 2015-10-21 15:33:39 +01:00
stacktrace.c arm64: LLVMLinux: Use current_stack_pointer in save_stack_trace_tsk 2014-09-08 14:39:19 +01:00
suspend.c arm64: flush: use local TLB and I-cache invalidation 2015-10-07 11:45:27 +01:00
sys32.c arm64: fix implementation of mmap2 compat syscall 2015-03-19 10:43:51 +00:00
sys_compat.c arm64: compat: align cacheflush syscall with arch/arm 2014-12-01 13:31:12 +00:00
sys.c arm64: make sys_call_table const 2015-01-27 09:38:08 +00:00
time.c arm64: force CONFIG_SMP=y and remove redundant #ifdefs 2015-07-27 11:08:40 +01:00
topology.c arm64: kernel: remove non-legit DT warnings when booting using ACPI 2015-07-27 11:08:41 +01:00
trace-events-emulation.h arm64: Trace emulation of AArch32 legacy instructions 2014-11-20 16:35:02 +00:00
traps.c arm64: Synchronise dump_backtrace() with perf callchain 2015-10-19 18:51:52 +01:00
vdso.c arm64: VDSO: fix coarse clock monotonicity regression 2015-08-10 15:37:45 +01:00
vmlinux.lds.S arm64: Move swapper pagetable definitions 2015-10-19 17:52:14 +01:00