arch-arm: Implementation of Hardware Breakpoint exception
authorJordi Vaquero <jordi.vaquero@metempsy.com>
Tue, 11 Feb 2020 16:22:25 +0000 (17:22 +0100)
committerJordi Vaquero <jordi.vaquero@metempsy.com>
Mon, 22 Jun 2020 19:27:31 +0000 (19:27 +0000)
commitf9db8ab3065b8019667ca1e5653d30773cc935c8
treef030391eab8dac6af31309d8ac6a9b2c5e82c529
parentbbab876c32a692b25e18e38e73c9a96f5abc5a5e
arch-arm: Implementation of Hardware Breakpoint exception

This code implementes hardware breakpoint exception as part of
software debug explained in ARMv8 reference manual ChapterD2.

+ ArmISA.py: Modify register to allow up to 15 Breakpoint registers
+ Sconscript: Add new file self_debug
+ faults.cc/hh: Defintion and implementation of HardwareBreakpoint
                exception inheriting ArmFault.
+ isa.cc/hh: ArmISA contains now an attribute pointing to the SelfDebug
             object that will be used to be access SelfDebug infrastructure
             Added special cases for setMiscReg to cache debug enable bits.
+ miscregs.hh/cc: Definition and initialization of DBGDCn and DBGDVn
                  registers.
+ tlb.cc/hh: We include the access to check for breakpoint instruction as
             part of the tlb translation process, checking if it comes from a
             fetch in the itlb
+ types.hh: Definition of new bitwise register types.
+ utility.cc/hh: Definition and implementation of auxiliar functions for
                the selfDebug.
+ self_debug.hh/cc: Main files that include the implemenattion of
            breakpoint checks, selfdebug enable and auxiliar functions.

Change-Id: I0e2a4be7f778de560c512253a9148da61e3e7e7a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27967
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
18 files changed:
src/arch/arm/ArmISA.py
src/arch/arm/SConscript
src/arch/arm/faults.cc
src/arch/arm/faults.hh
src/arch/arm/insts/static_inst.cc
src/arch/arm/insts/static_inst.hh
src/arch/arm/isa.cc
src/arch/arm/isa.hh
src/arch/arm/miscregs.cc
src/arch/arm/miscregs.hh
src/arch/arm/miscregs_types.hh
src/arch/arm/self_debug.cc [new file with mode: 0644]
src/arch/arm/self_debug.hh [new file with mode: 0644]
src/arch/arm/tlb.cc
src/arch/arm/tracers/tarmac_parser.cc
src/arch/arm/types.hh
src/arch/arm/utility.cc
src/arch/arm/utility.hh