arch-arm: Implement ARMv8.1-PAN, Privileged access never
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Mon, 29 Jul 2019 11:38:12 +0000 (12:38 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Mon, 5 Aug 2019 15:50:57 +0000 (15:50 +0000)
commit361bc8b47260a55902764054d3ac25694ac93f8a
treee6929b787500aa227333b4fe90fc4047838ef8c0
parentfd1a8bed393a2ef48d584fcabeee4d98eda0e3fa
arch-arm: Implement ARMv8.1-PAN, Privileged access never

ARMv8.1-PAN adds a new bit to PSTATE. When the value of this PAN state
bit is 1, any privileged data access from EL1 or EL2 to a virtual memory
address that is accessible at EL0 generates a Permission fault.
This feature is mandatory in ARMv8.1 implementations.
This feature is supported in AArch64 and AArch32 states.
The ID_AA64MMFR1_EL1.PAN, ID_MMFR3_EL1.PAN, and ID_MMFR3.PAN fields
identify the support for ARMv8.1-PAN.

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: I94a76311711739dd2394c72944d88ba9321fd159
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19729
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
17 files changed:
src/arch/arm/ArmISA.py
src/arch/arm/ArmSystem.py
src/arch/arm/faults.cc
src/arch/arm/faults.hh
src/arch/arm/insts/misc64.cc
src/arch/arm/insts/static_inst.cc
src/arch/arm/isa.cc
src/arch/arm/isa.hh
src/arch/arm/isa/formats/aarch64.isa
src/arch/arm/isa/insts/data64.isa
src/arch/arm/miscregs.cc
src/arch/arm/miscregs.hh
src/arch/arm/miscregs_types.hh
src/arch/arm/system.cc
src/arch/arm/system.hh
src/arch/arm/tlb.cc
src/arch/arm/tlb.hh