diff options
author | Andreas Sandberg <andreas@sandberg.pp.se> | 2013-06-03 13:55:41 +0200 |
---|---|---|
committer | Andreas Sandberg <andreas@sandberg.pp.se> | 2013-06-03 13:55:41 +0200 |
commit | 7846f59d0dcb36c13e06a3ba8a4c461e646582b6 (patch) | |
tree | 32b0ebd81cabb265409ad09e42285d2615354bdb /src/arch/arm | |
parent | 63dae287035c9670c0622eefc9a19e0dc05c299f (diff) | |
download | gem5-7846f59d0dcb36c13e06a3ba8a4c461e646582b6.tar.xz |
arch: Create a method to finalize physical addresses
in the TLB
Some architectures (currently only x86) require some fixing-up of
physical addresses after a normal address translation. This is usually
to remap devices such as the APIC, but could be used for other memory
mapped devices as well. When running the CPU in a using hardware
virtualization, we still need to do these address fix-ups before
inserting the request into the memory system. This patch moves this
patch allows that code to be used by such CPUs without doing full
address translations.
Diffstat (limited to 'src/arch/arm')
-rw-r--r-- | src/arch/arm/tlb.cc | 6 | ||||
-rw-r--r-- | src/arch/arm/tlb.hh | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/arch/arm/tlb.cc b/src/arch/arm/tlb.cc index 6b864b980..7a79725e1 100644 --- a/src/arch/arm/tlb.cc +++ b/src/arch/arm/tlb.cc @@ -94,6 +94,12 @@ TLB::translateFunctional(ThreadContext *tc, Addr va, Addr &pa) return true; } +Fault +TLB::finalizePhysical(RequestPtr req, ThreadContext *tc, Mode mode) const +{ + return NoFault; +} + TlbEntry* TLB::lookup(Addr va, uint8_t cid, bool functional) { diff --git a/src/arch/arm/tlb.hh b/src/arch/arm/tlb.hh index c1eba1ba7..a66e28b06 100644 --- a/src/arch/arm/tlb.hh +++ b/src/arch/arm/tlb.hh @@ -207,6 +207,7 @@ class TLB : public BaseTLB Fault translateAtomic(RequestPtr req, ThreadContext *tc, Mode mode); Fault translateTiming(RequestPtr req, ThreadContext *tc, Translation *translation, Mode mode); + Fault finalizePhysical(RequestPtr req, ThreadContext *tc, Mode mode) const; void drainResume(); |