From f65c190d0b0185ca2965d09149f33cb78555a1bf Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Tue, 16 Feb 2016 13:21:04 -0600 Subject: arm: Add support for memory-mapped m5ops Add support for a memory mapped m5op interface. When enabled, the TLB intercepts accesses in the 64KiB region designated by the ArmTLB.m5ops_base parameter. An access to this range maps to a specific m5op call. The upper 8 bits of the offset into the range denote the m5op function to call and the lower 8 bits denote the subfunction. Change-Id: I55fd8ac1afef4c3cc423b973870c9fe600a843a2 Signed-off-by: Andreas Sandberg Reviewed-by: Nikos Nikoleris Reviewed-on: https://gem5-review.googlesource.com/2964 --- src/arch/arm/system.hh | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/arch/arm/system.hh') diff --git a/src/arch/arm/system.hh b/src/arch/arm/system.hh index ee286d23a..97769337a 100644 --- a/src/arch/arm/system.hh +++ b/src/arch/arm/system.hh @@ -116,6 +116,12 @@ class ArmSystem : public System */ const bool _haveLargeAsid64; + /** + * Range for memory-mapped m5 pseudo ops. The range will be + * invalid/empty if disabled. + */ + const AddrRange _m5opRange; + protected: /** * Get a boot loader that matches the kernel. @@ -216,6 +222,12 @@ class ArmSystem : public System return mask(physAddrRange()); } + /** + * Range used by memory-mapped m5 pseudo-ops if enabled. Returns + * an invalid/empty range if disabled. + */ + const AddrRange &m5opRange() const { return _m5opRange; } + /** Returns true if the system of a specific thread context implements the * Security Extensions */ -- cgit v1.2.3