arch-arm: Implementation of ARMv8 SelfDebug Watchpoints
authorJordi Vaquero <jordi.vaquero@metempsy.com>
Tue, 29 Oct 2019 15:01:56 +0000 (16:01 +0100)
committerJordi Vaquero <jordi.vaquero@metempsy.com>
Mon, 29 Jun 2020 06:10:35 +0000 (06:10 +0000)
commit3db58b4fc0e342587b824df438849577affe898c
tree2bbed7be48f094051ccbc7964002a68504952067
parent835c07eb0ff4fb910fdcc0f698649b49b66c7142
arch-arm: Implementation of ARMv8 SelfDebug Watchpoints

This change includes ArmV8 SelfDebug Watchpoint implementation
as is described in Armv8 Reference manual D2/G2
The changes specific descriptions are as follow:
+ ArmISA.py: Enable up to 16 DBGWn registers
+ isa.cc: Include in setMiscReg specific cases for DBGWCn registers enable bit
+ miscregs_types.hh: Define DBGWC bitwise types
+ miscregs.hh/cc: Definition of watchpoint registers and its initialization
+ tlb.cc: Call for watchpoint entry point on tlb translation for dtlb.
+ fault.cc/hh: Definition/implementation of Watchpoint exception and
               modification on DataAbort Exception accordingly to handle
               AArch32 Watchpoint exceptions.
+ types.hh: Exception Code for watchpoint.
+ self_debug.cc/hh: Watchpoint check and comparison. Definition and
                    implementation of all the watchpoint auxiliar functions.

Change-Id: If275e4df0d28918dd887ab78166e653da875310a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28589
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
13 files changed:
src/arch/arm/ArmISA.py
src/arch/arm/faults.cc
src/arch/arm/faults.hh
src/arch/arm/isa.cc
src/arch/arm/miscregs.cc
src/arch/arm/miscregs.hh
src/arch/arm/miscregs_types.hh
src/arch/arm/self_debug.cc
src/arch/arm/self_debug.hh
src/arch/arm/tlb.cc
src/arch/arm/tracers/tarmac_parser.cc
src/arch/arm/types.hh
src/arch/arm/utility.hh