arch-arm: Implementing SecureEL2 feature for Armv8
authorJordi Vaquero <jordi.vaquero@metempsy.com>
Tue, 14 Jul 2020 09:54:30 +0000 (11:54 +0200)
committerJordi Vaquero <jordi.vaquero@metempsy.com>
Fri, 31 Jul 2020 13:13:57 +0000 (13:13 +0000)
commitbd25fc971df317f17ea39f46e3f515a26b43ddaa
tree9d0a9b278a1245048a2346825f0a0eefdf5f1957
parent71dca5212642d41c860aa3b499996e194f270503
arch-arm: Implementing SecureEL2 feature for Armv8

This patch adds Secure EL2 feature. This allows stage1
EL2/EL&0 and stage2 secure translation.
The changes are organized as follow:

  + insts/static_inst.cc: Modify checks for illegalInstruction on eret
  + isa.cc/hh: Enabling contorl bits
  + isa/insts/misc.hh/64.hh: Smc fault trigger.
  + miscregs.cc/hh: Declaration and initialization of new registers
  + self_debug.cc/hh: Add secureEL2 types for breakpoints
  + stage2_lookup.cc/hh: Allow stage2 in secure state.
  + tlb.cc/table_walker.cc: Allow secure state for stage2 and stage 1 EL2&0
                     translation regime
  + utility.cc/hh: New function InSecure and refactor of other helpers
                   to enable secure state

JIRA: https://gem5.atlassian.net/browse/GEM5-686

Change-Id: Ie59438b1828508e944334420da1d8f4745649056
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/31394
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
27 files changed:
src/arch/arm/ArmSystem.py
src/arch/arm/fastmodel/CortexA76/thread_context.cc
src/arch/arm/faults.cc
src/arch/arm/insts/static_inst.cc
src/arch/arm/insts/static_inst.hh
src/arch/arm/interrupts.cc
src/arch/arm/interrupts.hh
src/arch/arm/isa.cc
src/arch/arm/isa.hh
src/arch/arm/isa/insts/branch.isa
src/arch/arm/isa/insts/fp.isa
src/arch/arm/isa/insts/misc.isa
src/arch/arm/isa/insts/misc64.isa
src/arch/arm/miscregs.cc
src/arch/arm/miscregs.hh
src/arch/arm/self_debug.cc
src/arch/arm/self_debug.hh
src/arch/arm/semihosting.cc
src/arch/arm/stage2_lookup.cc
src/arch/arm/stage2_lookup.hh
src/arch/arm/system.cc
src/arch/arm/system.hh
src/arch/arm/table_walker.cc
src/arch/arm/tlb.cc
src/arch/arm/tracers/tarmac_record.cc
src/arch/arm/utility.cc
src/arch/arm/utility.hh