summaryrefslogtreecommitdiff
path: root/src/arch/arm/tracers/TarmacTrace.py
diff options
context:
space:
mode:
authorGiacomo Travaglini <giacomo.travaglini@arm.com>2018-03-14 17:26:06 +0000
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2018-04-06 10:10:10 +0000
commit4a66b5f7f8f9fbaec814d956ac53362a574a8620 (patch)
tree90c7ca9cbad3fd06ed52ab8db59e4c79ae190a8c /src/arch/arm/tracers/TarmacTrace.py
parent2d1add2d5d6b49a0eac1ef9180786fe28d207098 (diff)
downloadgem5-4a66b5f7f8f9fbaec814d956ac53362a574a8620.tar.xz
arch-arm: Add support for Tarmac trace generation
This patch introduces the TarmacTracer: an instruction tracer which allows to dump a gem5 execution trace in Tarmac format [1]. The new tracer is supporting either Tarmac and TarmacV8 format specifications. Not every traceable information has been implemented: Implemented Trace Type: Instruction Trace Register Trace Processor Memory Access Trace Unimplemented Trace Type: Program Flow Trace Event Trace Memory Bus Trace [1]: https://developer.arm.com/docs/dui0845/f/tarmac-trace-file-format Change-Id: I8799d8e5852e868673f728971db3fe8c63961f5e Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/9382 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/arch/arm/tracers/TarmacTrace.py')
-rw-r--r--src/arch/arm/tracers/TarmacTrace.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/arch/arm/tracers/TarmacTrace.py b/src/arch/arm/tracers/TarmacTrace.py
index c2bcbb3c2..8955fadd6 100644
--- a/src/arch/arm/tracers/TarmacTrace.py
+++ b/src/arch/arm/tracers/TarmacTrace.py
@@ -64,3 +64,14 @@ class TarmacParser(InstTracer):
ignore_mem_addr = Param.AddrRange(AddrRange(0, size=0),
"Range of unverifiable memory addresses")
+
+class TarmacTracer(InstTracer):
+ type = 'TarmacTracer'
+ cxx_class = 'Trace::TarmacTracer'
+ cxx_header = "arch/arm/tracers/tarmac_tracer.hh"
+
+ start_tick = Param.Tick(0,
+ "tracing starts when the tick time gets this value")
+
+ end_tick = Param.Tick(MaxTick,
+ "tracing ends when the tick time gets this value")