gem5
v21.2.0.0
|
#include <mmu.hh>
Classes | |
struct | CachedState |
struct | Stats |
Public Types | |
enum | ArmFlags { AlignmentMask = 0x7, AlignByte = 0x0, AlignHalfWord = 0x1, AlignWord = 0x2, AlignDoubleWord = 0x3, AlignQuadWord = 0x4, AlignOctWord = 0x5, AllowUnaligned = 0x8, UserMode = 0x10 } |
enum | ArmTranslationType { NormalTran = 0, S1CTran = 0x1, HypMode = 0x2, S1S2NsTran = 0x4, S1E0Tran = 0x8, S1E1Tran = 0x10, S1E2Tran = 0x20, S1E3Tran = 0x40, S12E0Tran = 0x80, S12E1Tran = 0x100 } |
![]() | |
enum | Mode { Read, Write, Execute } |
![]() | |
typedef SimObjectParams | Params |
Public Member Functions | |
TranslationGenPtr | translateFunctional (Addr start, Addr size, ThreadContext *tc, Mode mode, Request::Flags flags) override |
Returns a translation generator for a region of virtual addresses, instead of directly translating a specific address. More... | |
MMU (const ArmMMUParams &p) | |
void | init () override |
init() is called after all C++ SimObjects have been created and all ports are connected. More... | |
bool | translateFunctional (ThreadContext *tc, Addr vaddr, Addr &paddr) |
Do a functional lookup on the TLB (for debugging) and don't modify any internal state. More... | |
Fault | translateFunctional (const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode) override |
Fault | translateFunctional (const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode, ArmTranslationType tran_type) |
Do a functional lookup on the TLB (for checker cpu) that behaves like a normal lookup without modifying any page table state. More... | |
Fault | translateFunctional (const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode, ArmTranslationType tran_type, bool stage2) |
Fault | translateAtomic (const RequestPtr &req, ThreadContext *tc, Mode mode) override |
Fault | translateAtomic (const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode, ArmTranslationType tran_type, bool stage2) |
Fault | translateAtomic (const RequestPtr &req, ThreadContext *tc, Mode mode, ArmTranslationType tran_type) |
void | translateTiming (const RequestPtr &req, ThreadContext *tc, Translation *translation, Mode mode) override |
void | translateTiming (const RequestPtr &req, ThreadContext *tc, BaseMMU::Translation *translation, BaseMMU::Mode mode, bool stage2) |
void | translateTiming (const RequestPtr &req, ThreadContext *tc, Translation *translation, Mode mode, ArmTranslationType tran_type, bool stage2) |
Fault | translateMmuOff (ThreadContext *tc, const RequestPtr &req, Mode mode, ArmTranslationType tran_type, Addr vaddr, bool long_desc_format, CachedState &state) |
Fault | translateMmuOn (ThreadContext *tc, const RequestPtr &req, Mode mode, Translation *translation, bool &delay, bool timing, bool functional, Addr vaddr, ArmFault::TranMethod tranMethod, CachedState &state) |
Fault | translateFs (const RequestPtr &req, ThreadContext *tc, Mode mode, Translation *translation, bool &delay, bool timing, ArmTranslationType tran_type, bool functional, CachedState &state) |
Fault | translateSe (const RequestPtr &req, ThreadContext *tc, Mode mode, Translation *translation, bool &delay, bool timing, CachedState &state) |
Fault | translateComplete (const RequestPtr &req, ThreadContext *tc, Translation *translation, Mode mode, ArmTranslationType tran_type, bool call_from_s2) |
Fault | translateComplete (const RequestPtr &req, ThreadContext *tc, Translation *translation, Mode mode, ArmTranslationType tran_type, bool call_from_s2, CachedState &state) |
Fault | finalizePhysical (const RequestPtr &req, ThreadContext *tc, Mode mode) const override |
void | drainResume () override |
Resume execution after a successful drain. More... | |
void | takeOverFrom (BaseMMU *old_mmu) override |
void | invalidateMiscReg () |
template<typename OP > | |
void | flush (const OP &tlbi_op) |
template<typename OP > | |
void | flushStage1 (const OP &tlbi_op) |
template<typename OP > | |
void | flushStage2 (const OP &tlbi_op) |
template<typename OP > | |
void | iflush (const OP &tlbi_op) |
template<typename OP > | |
void | dflush (const OP &tlbi_op) |
void | flushAll () override |
uint64_t | getAttr () const |
void | setAttr (uint64_t attr) |
Accessor functions for memory attributes for last accessed TLB entry. More... | |
const ArmRelease * | release () const |
bool | hasWalkCache () const |
TlbEntry * | lookup (Addr vpn, uint16_t asn, vmid_t vmid, bool hyp, bool secure, bool functional, bool ignore_asn, ExceptionLevel target_el, bool in_host, bool stage2, BaseMMU::Mode mode) |
Lookup an entry in the TLB. More... | |
Fault | getTE (TlbEntry **te, const RequestPtr &req, ThreadContext *tc, Mode mode, Translation *translation, bool timing, bool functional, bool is_secure, ArmTranslationType tran_type, bool stage2) |
Fault | getTE (TlbEntry **te, const RequestPtr &req, ThreadContext *tc, Mode mode, Translation *translation, bool timing, bool functional, bool is_secure, ArmTranslationType tran_type, CachedState &state) |
Fault | getResultTe (TlbEntry **te, const RequestPtr &req, ThreadContext *tc, Mode mode, Translation *translation, bool timing, bool functional, TlbEntry *mergeTe, CachedState &state) |
Fault | checkPermissions (TlbEntry *te, const RequestPtr &req, Mode mode, bool stage2) |
Fault | checkPermissions (TlbEntry *te, const RequestPtr &req, Mode mode, CachedState &state) |
Fault | checkPermissions64 (TlbEntry *te, const RequestPtr &req, Mode mode, ThreadContext *tc, bool stage2) |
Fault | checkPermissions64 (TlbEntry *te, const RequestPtr &req, Mode mode, ThreadContext *tc, CachedState &state) |
void | setTestInterface (SimObject *ti) |
Fault | testTranslation (const RequestPtr &req, Mode mode, TlbEntry::DomainType domain, CachedState &state) |
Fault | testWalk (Addr pa, Addr size, Addr va, bool is_secure, Mode mode, TlbEntry::DomainType domain, LookupLevel lookup_level, bool stage2) |
Fault | testWalk (Addr pa, Addr size, Addr va, bool is_secure, Mode mode, TlbEntry::DomainType domain, LookupLevel lookup_level, CachedState &state) |
virtual Fault | translateFunctional (const RequestPtr &req, ThreadContext *tc, Mode mode) |
virtual TranslationGenPtr | translateFunctional (Addr start, Addr size, ThreadContext *tc, BaseMMU::Mode mode, Request::Flags flags)=0 |
Returns a translation generator for a region of virtual addresses, instead of directly translating a specific address. More... | |
![]() | |
void | init () override |
Called at init time, this method is traversing the TLB hierarchy and pupulating the instruction/data/unified containers accordingly. More... | |
void | demapPage (Addr vaddr, uint64_t asn) |
![]() | |
const Params & | params () const |
SimObject (const Params &p) | |
virtual | ~SimObject () |
virtual void | loadState (CheckpointIn &cp) |
loadState() is called on each SimObject when restoring from a checkpoint. More... | |
virtual void | initState () |
initState() is called on each SimObject when not restoring from a checkpoint. More... | |
virtual void | regProbePoints () |
Register probe points for this object. More... | |
virtual void | regProbeListeners () |
Register probe listeners for this object. More... | |
ProbeManager * | getProbeManager () |
Get the probe manager for this object. More... | |
virtual Port & | getPort (const std::string &if_name, PortID idx=InvalidPortID) |
Get a port with a given name and index. More... | |
virtual void | startup () |
startup() is the final initialization call before simulation. More... | |
DrainState | drain () override |
Provide a default implementation of the drain interface for objects that don't need draining. More... | |
virtual void | memWriteback () |
Write back dirty buffers to memory using functional writes. More... | |
virtual void | memInvalidate () |
Invalidate the contents of memory buffers. More... | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
![]() | |
EventQueue * | eventQueue () const |
void | schedule (Event &event, Tick when) |
void | deschedule (Event &event) |
void | reschedule (Event &event, Tick when, bool always=false) |
void | schedule (Event *event, Tick when) |
void | deschedule (Event *event) |
void | reschedule (Event *event, Tick when, bool always=false) |
void | wakeupEventQueue (Tick when=(Tick) -1) |
This function is not needed by the usual gem5 event loop but may be necessary in derived EventQueues which host gem5 on other schedulers. More... | |
void | setCurTick (Tick newVal) |
EventManager (EventManager &em) | |
Event manger manages events in the event queue. More... | |
EventManager (EventManager *em) | |
EventManager (EventQueue *eq) | |
![]() | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
![]() | |
DrainState | drainState () const |
Return the current drain state of an object. More... | |
virtual void | notifyFork () |
Notify a child process of a fork. More... | |
![]() | |
Group (Group *parent, const char *name=nullptr) | |
Construct a new statistics group. More... | |
virtual | ~Group () |
virtual void | regStats () |
Callback to set stat parameters. More... | |
virtual void | resetStats () |
Callback to reset stats. More... | |
virtual void | preDumpStats () |
Callback before stats are dumped. More... | |
void | addStat (statistics::Info *info) |
Register a stat with this group. More... | |
const std::map< std::string, Group * > & | getStatGroups () const |
Get all child groups associated with this object. More... | |
const std::vector< Info * > & | getStats () const |
Get all stats associated with this object. More... | |
void | addStatGroup (const char *name, Group *block) |
Add a stat block as a child of this block. More... | |
const Info * | resolveStat (std::string name) const |
Resolve a stat by its name within this group. More... | |
void | mergeStatGroup (Group *block) |
Merge the contents (stats & children) of a block to this block. More... | |
Group ()=delete | |
Group (const Group &)=delete | |
Group & | operator= (const Group &)=delete |
![]() | |
Named (const std::string &name_) | |
virtual | ~Named ()=default |
virtual std::string | name () const |
Static Public Member Functions | |
static ExceptionLevel | tranTypeEL (CPSR cpsr, ArmTranslationType type) |
Determine the EL to use for the purpose of a translation given a specific translation type. More... | |
![]() | |
static void | serializeAll (const std::string &cpt_dir) |
Create a checkpoint by serializing all SimObjects in the system. More... | |
static SimObject * | find (const char *name) |
Find the SimObject with the given name and return a pointer to it. More... | |
static void | setSimObjectResolver (SimObjectResolver *resolver) |
There is a single object name resolver, and it is only set when simulation is restoring from checkpoints. More... | |
static SimObjectResolver * | getSimObjectResolver () |
There is a single object name resolver, and it is only set when simulation is restoring from checkpoints. More... | |
![]() | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. More... | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. More... | |
Public Attributes | |
TlbTestInterface * | test |
CachedState | s1State |
CachedState | s2State |
![]() | |
BaseTLB * | dtb |
BaseTLB * | itb |
Protected Types | |
using | LookupLevel = enums::ArmLookupLevel |
![]() | |
typedef BaseMMUParams | Params |
Protected Member Functions | |
ArmISA::TLB * | getDTBPtr () const |
ArmISA::TLB * | getITBPtr () const |
TLB * | getTlb (BaseMMU::Mode mode, bool stage2) const |
TableWalker * | getTableWalker (BaseMMU::Mode mode, bool stage2) const |
bool | checkPAN (ThreadContext *tc, uint8_t ap, const RequestPtr &req, Mode mode, const bool is_priv, CachedState &state) |
bool | faultPAN (ThreadContext *tc, uint8_t ap, const RequestPtr &req, Mode mode, const bool is_priv, CachedState &state) |
std::pair< bool, bool > | s1PermBits64 (TlbEntry *te, const RequestPtr &req, Mode mode, ThreadContext *tc, CachedState &state, bool r, bool w, bool x) |
std::pair< bool, bool > | s2PermBits64 (TlbEntry *te, const RequestPtr &req, Mode mode, ThreadContext *tc, CachedState &state, bool r, bool w, bool x) |
bool | checkWalkCache () const |
bool | isCompleteTranslation (TlbEntry *te) const |
CachedState & | updateMiscReg (ThreadContext *tc, ArmTranslationType tran_type, bool stage2) |
![]() | |
BaseMMU (const Params &p) | |
BaseTLB * | getTlb (Mode mode) const |
![]() | |
Drainable () | |
virtual | ~Drainable () |
void | signalDrainDone () const |
Signal that an object is drained. More... | |
Protected Attributes | |
TLB * | itbStage2 |
TLB * | dtbStage2 |
TableWalker * | itbWalker |
TableWalker * | dtbWalker |
TableWalker * | itbStage2Walker |
TableWalker * | dtbStage2Walker |
ContextID | miscRegContext |
uint64_t | _attr |
const ArmRelease * | _release |
bool | haveLargeAsid64 |
uint8_t | physAddrRange |
AddrRange | m5opRange |
bool | _hasWalkCache |
gem5::ArmISA::MMU::Stats | stats |
![]() | |
std::set< BaseTLB * > | instruction |
It is possible from the MMU to traverse the entire hierarchy of TLBs, starting from the DTB and ITB (generally speaking from the first level) up to the last level via the nextLevel pointer. More... | |
std::set< BaseTLB * > | data |
std::set< BaseTLB * > | unified |
![]() | |
const SimObjectParams & | _params |
Cached copy of the object parameters. More... | |
![]() | |
EventQueue * | eventq |
A pointer to this object's event queue. More... | |
|
protected |
gem5::MMU::MMU | ( | const ArmMMUParams & | p | ) |
Definition at line 59 of file mmu.cc.
References _release, gem5::FullSystem, gem5::ArmSystem::haveLargeAsid64(), haveLargeAsid64, m5opRange, gem5::MipsISA::p, gem5::ArmSystem::physAddrRange(), physAddrRange, and gem5::ArmSystem::releaseFS().
|
protected |
Definition at line 763 of file mmu.cc.
References gem5::Request::CACHE_BLOCK_ZERO, gem5::ArmISA::MMU::CachedState::cpsr, gem5::BaseMMU::Execute, gem5::ArmISA::MMU::CachedState::hcr, gem5::ArmISA::MISCREG_ID_AA64MMFR1_EL1, gem5::ArmISA::mode, and gem5::ThreadContext::readMiscReg().
Referenced by faultPAN().
Fault gem5::MMU::checkPermissions | ( | TlbEntry * | te, |
const RequestPtr & | req, | ||
Mode | mode, | ||
bool | stage2 | ||
) |
Definition at line 274 of file mmu.cc.
References gem5::ArmISA::mode, s1State, s2State, and gem5::ArmISA::te.
Referenced by getResultTe(), and gem5::ArmISA::Stage2LookUp::getTe().
Fault gem5::MMU::checkPermissions | ( | TlbEntry * | te, |
const RequestPtr & | req, | ||
Mode | mode, | ||
CachedState & | state | ||
) |
Definition at line 281 of file mmu.cc.
References gem5::ArmISA::MMU::Stats::alignFaults, gem5::ArmISA::ArmFault::AlignmentFault, AlignmentMask, gem5::ArmISA::MMU::CachedState::dacr, gem5::ArmISA::MMU::Stats::domainFaults, gem5::ArmISA::ArmFault::DomainLL, DPRINTF, gem5::BaseMMU::Execute, gem5::ArmISA::MMU::CachedState::hcr, gem5::ArmISA::MMU::CachedState::isPriv, gem5::ArmISA::MMU::CachedState::isSecure, gem5::ArmISA::MMU::CachedState::isStage2, gem5::ArmISA::ArmFault::LpaeTran, gem5::ArmISA::mask, gem5::ArmISA::mode, gem5::ArmISA::TlbEntry::NoAccess, gem5::NoFault, gem5::ArmISA::TlbEntry::Normal, panic, gem5::ArmISA::ArmFault::PermissionLL, gem5::ArmISA::MMU::Stats::permsFaults, gem5::ArmISA::ArmFault::PrefetchUncacheable, gem5::ArmISA::MMU::CachedState::scr, gem5::ArmISA::MMU::CachedState::sctlr, stats, gem5::ArmISA::te, UserMode, gem5::MipsISA::vaddr, gem5::ArmISA::ArmFault::VmsaTran, and gem5::BaseMMU::Write.
Fault gem5::MMU::checkPermissions64 | ( | TlbEntry * | te, |
const RequestPtr & | req, | ||
Mode | mode, | ||
ThreadContext * | tc, | ||
bool | stage2 | ||
) |
Definition at line 460 of file mmu.cc.
References gem5::ArmISA::mode, s1State, s2State, and gem5::ArmISA::te.
Referenced by getResultTe(), and gem5::ArmISA::Stage2LookUp::getTe().
Fault gem5::MMU::checkPermissions64 | ( | TlbEntry * | te, |
const RequestPtr & | req, | ||
Mode | mode, | ||
ThreadContext * | tc, | ||
CachedState & | state | ||
) |
Definition at line 467 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64, gem5::ArmISA::MMU::CachedState::aarch64EL, gem5::ArmISA::MMU::Stats::alignFaults, gem5::ArmISA::ArmFault::AlignmentFault, AlignmentMask, gem5::ArmISA::MMU::CachedState::curTranType, DPRINTF, gem5::ArmISA::EL0, gem5::BaseMMU::Execute, gem5::ArmISA::MMU::CachedState::hcr, gem5::ArmISA::MMU::CachedState::isStage2, gem5::ArmISA::ArmFault::LpaeTran, gem5::ArmISA::mask, gem5::ArmISA::mode, gem5::ArmISA::TlbEntry::NoAccess, gem5::NoFault, gem5::ArmISA::TlbEntry::Normal, gem5::ArmISA::ArmFault::PermissionLL, gem5::ArmISA::MMU::Stats::permsFaults, gem5::ArmISA::ArmFault::PrefetchUncacheable, gem5::ArmISA::purifyTaggedAddr(), s1PermBits64(), s2PermBits64(), gem5::ArmISA::MMU::CachedState::scr, gem5::ArmISA::MMU::CachedState::sctlr, stats, gem5::ArmISA::te, gem5::ArmISA::MMU::CachedState::ttbcr, updateMiscReg(), gem5::MipsISA::vaddr, and gem5::BaseMMU::Write.
|
protected |
Definition at line 111 of file mmu.cc.
References gem5::BaseMMU::data, gem5::BaseMMU::instruction, gem5::ArmISA::tlb, and gem5::BaseMMU::unified.
Referenced by init().
|
inline |
Definition at line 313 of file mmu.hh.
References gem5::BaseMMU::data, flush(), gem5::ArmISA::tlb, and gem5::BaseMMU::unified.
Referenced by gem5::ArmISA::DTLBIALL::operator()(), gem5::ArmISA::DTLBIASID::operator()(), and gem5::ArmISA::DTLBIMVA::operator()().
|
overridevirtual |
Resume execution after a successful drain.
Reimplemented from gem5::Drainable.
Definition at line 130 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::miscRegValid, s1State, and s2State.
|
protected |
Definition at line 738 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64EL, checkPAN(), gem5::ArmISA::EL0, gem5::ArmISA::EL1, gem5::ArmISA::EL2, gem5::ArmISA::EL3, gem5::ArmISA::MMU::CachedState::hcr, and gem5::ArmISA::mode.
Referenced by s1PermBits64().
|
overridevirtual |
Reimplemented from gem5::BaseMMU.
Definition at line 203 of file mmu.cc.
References gem5::AddrRange::contains(), gem5::pseudo_inst::decodeAddrOffset(), gem5::ArmISA::inAArch64(), m5opRange, gem5::ArmISA::mode, gem5::NoFault, gem5::BaseMMU::Read, gem5::Packet::setLE(), and gem5::AddrRange::start().
Referenced by translateMmuOn(), and translateSe().
|
inline |
Definition at line 265 of file mmu.hh.
References flushStage1(), and flushStage2().
Referenced by dflush(), flushStage1(), iflush(), gem5::ArmISA::TLBIALL::operator()(), gem5::ArmISA::TLBIALLEL::operator()(), gem5::ArmISA::TLBIVMALL::operator()(), and gem5::ArmISA::TLBIALLN::operator()().
|
inlineoverridevirtual |
Reimplemented from gem5::BaseMMU.
Definition at line 324 of file mmu.hh.
References dtbStage2, gem5::BaseMMU::flushAll(), gem5::ArmISA::TLB::flushAll(), and itbStage2.
|
inline |
Definition at line 278 of file mmu.hh.
References gem5::BaseMMU::data, flush(), gem5::BaseMMU::instruction, gem5::ArmISA::tlb, and gem5::BaseMMU::unified.
Referenced by flush(), gem5::ArmISA::TLBIASID::operator()(), gem5::ArmISA::TLBIMVAA::operator()(), and gem5::ArmISA::TLBIMVA::operator()().
|
inline |
Definition at line 293 of file mmu.hh.
References dtbStage2, gem5::ArmISA::TLB::flush(), and itbStage2.
Referenced by flush(), and gem5::ArmISA::TLBIIPA::operator()().
|
inline |
Definition at line 332 of file mmu.hh.
References _attr.
Referenced by gem5::ArmISA::ISA::addressTranslation(), and gem5::ArmISA::ISA::addressTranslation64().
|
inlineprotected |
Definition at line 65 of file mmu.hh.
References gem5::BaseMMU::dtb.
|
inlineprotected |
Definition at line 71 of file mmu.hh.
References gem5::BaseMMU::itb.
Fault gem5::MMU::getResultTe | ( | TlbEntry ** | te, |
const RequestPtr & | req, | ||
ThreadContext * | tc, | ||
Mode | mode, | ||
Translation * | translation, | ||
bool | timing, | ||
bool | functional, | ||
TlbEntry * | mergeTe, | ||
CachedState & | state | ||
) |
Definition at line 1489 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64, gem5::ArmISA::ArmFault::annotate(), checkPermissions(), checkPermissions64(), gem5::ArmISA::MMU::CachedState::curTranType, DPRINTF, gem5::ArmISA::Stage2LookUp::getTe(), getTE(), gem5::ArmISA::Stage2LookUp::isComplete(), isCompleteTranslation(), gem5::ArmISA::MMU::CachedState::isSecure, gem5::ArmISA::MMU::CachedState::isStage2, gem5::ArmISA::mode, gem5::NoFault, gem5::ArmISA::ArmFault::OVA, gem5::ArmISA::ArmFault::S1PTW, gem5::ArmISA::Stage2LookUp::setSelfDelete(), gem5::ArmISA::MMU::CachedState::stage2Req, and gem5::ArmISA::te.
Referenced by translateMmuOn().
|
protected |
Definition at line 153 of file mmu.cc.
References dtbStage2Walker, dtbWalker, gem5::BaseMMU::Execute, itbStage2Walker, itbWalker, and gem5::ArmISA::mode.
Referenced by getTE().
Fault gem5::MMU::getTE | ( | TlbEntry ** | te, |
const RequestPtr & | req, | ||
ThreadContext * | tc, | ||
Mode | mode, | ||
Translation * | translation, | ||
bool | timing, | ||
bool | functional, | ||
bool | is_secure, | ||
ArmTranslationType | tran_type, | ||
bool | stage2 | ||
) |
Definition at line 1397 of file mmu.cc.
References gem5::ArmISA::mode, s1State, s2State, and gem5::ArmISA::te.
Referenced by gem5::ArmISA::Stage2LookUp::finish(), getResultTe(), and gem5::ArmISA::Stage2LookUp::getTe().
Fault gem5::MMU::getTE | ( | TlbEntry ** | te, |
const RequestPtr & | req, | ||
ThreadContext * | tc, | ||
Mode | mode, | ||
Translation * | translation, | ||
bool | timing, | ||
bool | functional, | ||
bool | is_secure, | ||
ArmTranslationType | tran_type, | ||
CachedState & | state | ||
) |
Definition at line 1430 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64, gem5::ArmISA::MMU::CachedState::aarch64EL, gem5::ArmISA::MMU::CachedState::asid, DPRINTF, gem5::ArmISA::EL1, gem5::BaseMMU::Execute, getTableWalker(), isCompleteTranslation(), gem5::ArmISA::MMU::CachedState::isHyp, gem5::ArmISA::MMU::CachedState::isStage2, lookup(), gem5::ArmISA::mode, gem5::NoFault, gem5::ArmISA::MMU::Stats::prefetchFaults, gem5::ArmISA::ArmFault::PrefetchTLBMiss, gem5::ArmISA::purifyTaggedAddr(), gem5::ArmISA::MMU::CachedState::stage2DescReq, stats, gem5::ArmISA::te, gem5::ArmISA::MMU::CachedState::ttbcr, updateMiscReg(), gem5::MipsISA::vaddr, gem5::ArmISA::MMU::CachedState::vmid, and gem5::ArmISA::TableWalker::walk().
|
protected |
Definition at line 137 of file mmu.cc.
References dtbStage2, gem5::BaseMMU::Execute, getDTBPtr(), getITBPtr(), itbStage2, and gem5::ArmISA::mode.
Referenced by lookup(), and translateFunctional().
|
inline |
Definition at line 347 of file mmu.hh.
References _hasWalkCache.
Referenced by gem5::ArmISA::TableWalker::doLongDescriptor().
|
inline |
Definition at line 301 of file mmu.hh.
References flush(), gem5::BaseMMU::instruction, gem5::ArmISA::tlb, and gem5::BaseMMU::unified.
Referenced by gem5::ArmISA::ITLBIALL::operator()(), gem5::ArmISA::ITLBIASID::operator()(), and gem5::ArmISA::ITLBIMVA::operator()().
|
overridevirtual |
init() is called after all C++ SimObjects have been created and all ports are connected.
Initializations that are independent of unserialization but rely on a fully instantiated and connected SimObject graph should be done here.
Reimplemented from gem5::SimObject.
Definition at line 92 of file mmu.cc.
References _hasWalkCache, checkWalkCache(), dtbStage2, dtbStage2Walker, dtbWalker, getDTBPtr(), getITBPtr(), gem5::BaseMMU::init(), itbStage2, itbStage2Walker, itbWalker, gem5::ArmISA::TableWalker::setMmu(), and gem5::ArmISA::TLB::setTableWalker().
void gem5::MMU::invalidateMiscReg | ( | ) |
Definition at line 197 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::miscRegValid, and s1State.
Referenced by gem5::ArmISA::ISA::clear(), and gem5::ArmISA::ISA::setMiscReg().
|
protected |
Definition at line 1563 of file mmu.cc.
References gem5::ArmISA::TlbEntry::partial.
Referenced by getResultTe(), getTE(), and translateMmuOn().
TlbEntry * gem5::MMU::lookup | ( | Addr | vpn, |
uint16_t | asn, | ||
vmid_t | vmid, | ||
bool | hyp, | ||
bool | secure, | ||
bool | functional, | ||
bool | ignore_asn, | ||
ExceptionLevel | target_el, | ||
bool | in_host, | ||
bool | stage2, | ||
BaseMMU::Mode | mode | ||
) |
Lookup an entry in the TLB.
vpn | virtual address |
asn | context id/address space id to use |
vmid | The virtual machine ID used for stage 2 translation |
secure | if the lookup is secure |
hyp | if the lookup is done from hyp mode |
functional | if the lookup should modify state |
ignore_asn | if on lookup asn should be ignored |
target_el | selecting the translation regime |
in_host | if we are in host (EL2&0 regime) |
mode | to differentiate between read/writes/fetches. |
Definition at line 1407 of file mmu.cc.
References gem5::ArmISA::asid, gem5::ArmISA::TlbEntry::Lookup::asn, gem5::ArmISA::TlbEntry::Lookup::functional, getTlb(), gem5::ArmISA::TlbEntry::Lookup::hyp, gem5::ArmISA::TlbEntry::Lookup::ignoreAsn, gem5::ArmISA::TlbEntry::Lookup::inHost, gem5::ArmISA::mode, gem5::ArmISA::TlbEntry::Lookup::mode, gem5::ArmISA::TlbEntry::Lookup::secure, gem5::ArmISA::TlbEntry::Lookup::targetEL, gem5::ArmISA::tlb, gem5::ArmISA::TlbEntry::Lookup::va, gem5::ArmISA::va, and gem5::ArmISA::TlbEntry::Lookup::vmid.
Referenced by getTE(), and gem5::ArmISA::TableWalker::processWalkWrapper().
|
inline |
Definition at line 345 of file mmu.hh.
References _release.
Referenced by gem5::ArmISA::TableWalker::setMmu().
|
protected |
Definition at line 616 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64EL, gem5::QARMA::b11, DPRINTF, gem5::ArmISA::EL0, gem5::ArmISA::EL1, gem5::ArmISA::EL2, gem5::ArmISA::EL3, faultPAN(), gem5::ArmSystem::haveEL(), gem5::ArmISA::MMU::CachedState::isPriv, gem5::ArmISA::MMU::CachedState::isSecure, gem5::ArmISA::mode, gem5::RiscvISA::perm, gem5::MipsISA::r, gem5::ArmISA::MMU::CachedState::scr, gem5::ArmISA::MMU::CachedState::sctlr, gem5::ArmISA::te, UserMode, gem5::MipsISA::w, gem5::ArmISA::wxn, and gem5::RiscvISA::x.
Referenced by checkPermissions64().
|
protected |
Definition at line 576 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64EL, gem5::QARMA::b10, DPRINTF, gem5::ArmISA::EL2, gem5::ArmISA::EL3, gem5::ArmSystem::haveEL(), gem5::ArmISA::MMU::CachedState::isSecure, panic, gem5::MipsISA::r, gem5::ArmISA::MMU::CachedState::scr, gem5::ArmISA::te, gem5::MipsISA::w, and gem5::RiscvISA::x.
Referenced by checkPermissions64().
|
inline |
Accessor functions for memory attributes for last accessed TLB entry.
Definition at line 340 of file mmu.hh.
References _attr, and gem5::ArmISA::attr.
Referenced by translateMmuOff(), and translateMmuOn().
void gem5::MMU::setTestInterface | ( | SimObject * | ti | ) |
Definition at line 1583 of file mmu.cc.
References fatal_if, gem5::Named::name(), and gem5::MipsISA::ti.
|
overridevirtual |
Reimplemented from gem5::BaseMMU.
Definition at line 1569 of file mmu.cc.
References _attr, s1State, s2State, and gem5::BaseMMU::takeOverFrom().
Fault gem5::MMU::testTranslation | ( | const RequestPtr & | req, |
Mode | mode, | ||
TlbEntry::DomainType | domain, | ||
CachedState & | state | ||
) |
Definition at line 1595 of file mmu.cc.
References gem5::ArmISA::domain, gem5::ArmISA::MMU::CachedState::isPriv, gem5::ArmISA::mode, and gem5::NoFault.
Referenced by translateMmuOff(), and translateMmuOn().
Fault gem5::MMU::testWalk | ( | Addr | pa, |
Addr | size, | ||
Addr | va, | ||
bool | is_secure, | ||
Mode | mode, | ||
TlbEntry::DomainType | domain, | ||
LookupLevel | lookup_level, | ||
bool | stage2 | ||
) |
Definition at line 1607 of file mmu.cc.
References gem5::ArmISA::domain, gem5::ArmISA::mode, gem5::ArmISA::pa, s1State, s2State, and gem5::ArmISA::va.
Referenced by gem5::ArmISA::TableWalker::testWalk().
Fault gem5::MMU::testWalk | ( | Addr | pa, |
Addr | size, | ||
Addr | va, | ||
bool | is_secure, | ||
Mode | mode, | ||
TlbEntry::DomainType | domain, | ||
LookupLevel | lookup_level, | ||
CachedState & | state | ||
) |
Definition at line 1616 of file mmu.cc.
References gem5::ArmISA::domain, gem5::ArmISA::MMU::CachedState::isPriv, gem5::ArmISA::mode, gem5::NoFault, gem5::ArmISA::pa, and gem5::ArmISA::va.
Fault gem5::MMU::translateAtomic | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
BaseMMU::Mode | mode, | ||
ArmTranslationType | tran_type, | ||
bool | stage2 | ||
) |
Definition at line 1031 of file mmu.cc.
References gem5::FullSystem, gem5::ArmISA::mode, translateFs(), translateSe(), and updateMiscReg().
|
inlineoverridevirtual |
Reimplemented from gem5::BaseMMU.
Definition at line 208 of file mmu.hh.
References gem5::ArmISA::mode, and NormalTran.
Referenced by gem5::ArmISA::TableWalker::readDataUntimed(), gem5::Trace::TarmacParserRecord::readMemNoEffect(), and translateAtomic().
Fault gem5::MMU::translateAtomic | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
Mode | mode, | ||
ArmTranslationType | tran_type | ||
) |
Definition at line 1024 of file mmu.cc.
References gem5::ArmISA::mode, and translateAtomic().
Fault gem5::MMU::translateComplete | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
Translation * | translation, | ||
Mode | mode, | ||
ArmTranslationType | tran_type, | ||
bool | call_from_s2 | ||
) |
Definition at line 1091 of file mmu.cc.
References gem5::ArmISA::mode, and s1State.
Referenced by gem5::ArmISA::Stage2LookUp::finish(), and translateTiming().
Fault gem5::MMU::translateComplete | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
Translation * | translation, | ||
Mode | mode, | ||
ArmTranslationType | tran_type, | ||
bool | call_from_s2, | ||
CachedState & | state | ||
) |
Definition at line 1100 of file mmu.cc.
References DPRINTF, gem5::BaseMMU::Translation::finish(), gem5::FullSystem, gem5::BaseMMU::Translation::markDelayed(), gem5::ArmISA::mode, gem5::NoFault, gem5::ArmISA::MMU::CachedState::stage2Req, translateFs(), and translateSe().
Fault gem5::MMU::translateFs | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
Mode | mode, | ||
Translation * | translation, | ||
bool & | delay, | ||
bool | timing, | ||
ArmTranslationType | tran_type, | ||
bool | functional, | ||
CachedState & | state | ||
) |
Definition at line 940 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64, gem5::ArmISA::MMU::CachedState::aarch64EL, gem5::ArmISA::MMU::Stats::alignFaults, gem5::ArmISA::ArmFault::AlignmentFault, AlignmentMask, AllowUnaligned, gem5::ArmISA::MMU::CachedState::asid, DPRINTF, gem5::BaseMMU::Execute, gem5::ArmISA::ISA::getSelfDebug(), gem5::ArmISA::HaveVirtHostExt(), gem5::ArmISA::MMU::CachedState::hcr, gem5::ArmISA::MMU::CachedState::isPriv, gem5::ArmISA::MMU::CachedState::isSecure, gem5::ArmISA::MMU::CachedState::isStage2, gem5::ArmISA::longDescFormatInUse(), gem5::ArmISA::ArmFault::LpaeTran, gem5::ArmISA::mask, gem5::ArmISA::mode, gem5::ArmISA::TlbEntry::NoAccess, gem5::NoFault, gem5::ArmISA::purifyTaggedAddr(), S1S2NsTran, gem5::ArmISA::MMU::CachedState::scr, gem5::ArmISA::MMU::CachedState::sctlr, gem5::ArmISA::sd, stats, gem5::Request::STRICT_ORDER, translateMmuOff(), translateMmuOn(), gem5::ArmISA::MMU::CachedState::ttbcr, gem5::Request::UNCACHEABLE, UserMode, gem5::MipsISA::vaddr, gem5::ArmISA::vm, gem5::ArmISA::ArmFault::VmsaTran, and gem5::BaseMMU::Write.
Referenced by translateAtomic(), translateComplete(), and translateFunctional().
virtual TranslationGenPtr gem5::BaseMMU::translateFunctional |
Returns a translation generator for a region of virtual addresses, instead of directly translating a specific address.
|
inlineoverridevirtual |
Returns a translation generator for a region of virtual addresses, instead of directly translating a specific address.
Implements gem5::BaseMMU.
Definition at line 90 of file mmu.hh.
References gem5::ArmISA::mode, and gem5::ArmISA::PageBytes.
Referenced by gem5::ArmISA::ISA::addressTranslation(), gem5::ArmISA::ISA::addressTranslation64(), gem5::ArmISA::TableWalker::readDataUntimed(), gem5::Trace::TarmacTracerRecordV8::TraceMemEntryV8::TraceMemEntryV8(), and translateFunctional().
|
overridevirtual |
Reimplemented from gem5::BaseMMU.
Definition at line 1048 of file mmu.cc.
References gem5::ArmISA::mode, NormalTran, and translateFunctional().
Fault gem5::MMU::translateFunctional | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
BaseMMU::Mode | mode, | ||
ArmTranslationType | tran_type | ||
) |
Do a functional lookup on the TLB (for checker cpu) that behaves like a normal lookup without modifying any page table state.
Definition at line 1054 of file mmu.cc.
References gem5::ArmISA::mode, and translateFunctional().
Fault gem5::MMU::translateFunctional | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
BaseMMU::Mode | mode, | ||
ArmTranslationType | tran_type, | ||
bool | stage2 | ||
) |
Definition at line 1061 of file mmu.cc.
References gem5::FullSystem, gem5::ArmISA::mode, translateFs(), translateSe(), and updateMiscReg().
bool gem5::MMU::translateFunctional | ( | ThreadContext * | tc, |
Addr | vaddr, | ||
Addr & | paddr | ||
) |
Do a functional lookup on the TLB (for debugging) and don't modify any internal state.
tc | thread context to get the context id from |
vaddr | virtual address to translate |
pa | returned physical address |
Definition at line 169 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64, gem5::ArmISA::MMU::CachedState::aarch64EL, gem5::ArmISA::MMU::CachedState::asid, gem5::ArmISA::TlbEntry::Lookup::asn, gem5::ArmISA::MMU::CachedState::directToStage2, gem5::ArmISA::e, gem5::ArmISA::EL1, gem5::ArmISA::TlbEntry::Lookup::functional, getTlb(), gem5::ArmISA::TlbEntry::Lookup::hyp, gem5::ArmISA::TlbEntry::Lookup::ignoreAsn, gem5::ArmISA::TlbEntry::Lookup::inHost, gem5::ArmISA::MMU::CachedState::isHyp, gem5::ArmISA::MMU::CachedState::isSecure, gem5::ArmISA::TlbEntry::Lookup::mode, NormalTran, gem5::ArmISA::pa, gem5::BaseMMU::Read, gem5::ArmISA::TlbEntry::Lookup::secure, gem5::ArmISA::TlbEntry::Lookup::targetEL, gem5::ArmISA::tlb, updateMiscReg(), gem5::ArmISA::TlbEntry::Lookup::va, gem5::ArmISA::va, gem5::ArmISA::MMU::CachedState::vmid, and gem5::ArmISA::TlbEntry::Lookup::vmid.
Fault gem5::MMU::translateMmuOff | ( | ThreadContext * | tc, |
const RequestPtr & | req, | ||
Mode | mode, | ||
ArmTranslationType | tran_type, | ||
Addr | vaddr, | ||
bool | long_desc_format, | ||
CachedState & | state | ||
) |
Definition at line 793 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64, gem5::ArmISA::ArmFault::AddressSizeLL, gem5::ArmISA::TlbEntry::attributes, gem5::bits(), gem5::ArmISA::computeAddrTop(), gem5::ArmISA::currEL(), gem5::ArmISA::dc, DPRINTF, gem5::BaseMMU::Execute, gem5::ArmISA::f, gem5::ArmISA::HaveVirtHostExt(), gem5::ArmISA::MMU::CachedState::hcr, gem5::ArmISA::TlbEntry::innerAttrs, gem5::ArmISA::MMU::CachedState::isHyp, gem5::ArmISA::MMU::CachedState::isSecure, gem5::ArmISA::MMU::CachedState::isStage2, gem5::ArmISA::ArmFault::LpaeTran, gem5::ArmISA::MISCREG_TCR_EL1, gem5::ArmISA::mode, gem5::ArmISA::TlbEntry::mtype, gem5::ArmISA::MMU::CachedState::nmrr, gem5::ArmISA::TlbEntry::NoAccess, gem5::ArmISA::TlbEntry::Normal, gem5::ArmISA::TlbEntry::ns, gem5::ArmISA::TlbEntry::outerAttrs, gem5::ArmISA::TlbEntry::outerShareable, physAddrRange, gem5::ArmISA::MMU::CachedState::prrr, gem5::ThreadContext::readMiscReg(), S1CTran, gem5::ArmISA::MMU::CachedState::sctlr, gem5::Request::SECURE, setAttr(), gem5::ArmISA::TlbEntry::setAttributes(), gem5::ArmISA::TlbEntry::shareable, gem5::Request::STRICT_ORDER, gem5::ArmISA::TlbEntry::StronglyOrdered, testTranslation(), gem5::Request::UNCACHEABLE, gem5::MipsISA::vaddr, and gem5::BaseMMU::Write.
Referenced by translateFs().
Fault gem5::MMU::translateMmuOn | ( | ThreadContext * | tc, |
const RequestPtr & | req, | ||
Mode | mode, | ||
Translation * | translation, | ||
bool & | delay, | ||
bool | timing, | ||
bool | functional, | ||
Addr | vaddr, | ||
ArmFault::TranMethod | tranMethod, | ||
CachedState & | state | ||
) |
Definition at line 868 of file mmu.cc.
References gem5::ArmISA::MMU::Stats::alignFaults, gem5::ArmISA::ArmFault::AlignmentFault, AlignmentMask, DPRINTF, gem5::BaseMMU::Execute, finalizePhysical(), getResultTe(), isCompleteTranslation(), gem5::ArmISA::MMU::CachedState::isSecure, gem5::ArmISA::MMU::CachedState::isStage2, gem5::ArmISA::mask, gem5::ArmISA::mode, gem5::ArmISA::TlbEntry::NoAccess, gem5::NoFault, gem5::ArmISA::TlbEntry::Normal, gem5::ArmISA::pa, gem5::Request::SECURE, setAttr(), stats, gem5::Request::STRICT_ORDER, gem5::ArmISA::te, testTranslation(), gem5::Request::UNCACHEABLE, gem5::MipsISA::vaddr, and gem5::BaseMMU::Write.
Referenced by translateFs().
Fault gem5::MMU::translateSe | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
Mode | mode, | ||
Translation * | translation, | ||
bool & | delay, | ||
bool | timing, | ||
CachedState & | state | ||
) |
Definition at line 233 of file mmu.cc.
References gem5::ArmISA::MMU::CachedState::aarch64, gem5::ArmISA::MMU::CachedState::aarch64EL, gem5::ArmISA::ArmFault::AlignmentFault, AlignmentMask, AllowUnaligned, gem5::BaseMMU::Execute, finalizePhysical(), gem5::ThreadContext::getProcessPtr(), gem5::ArmISA::MMU::CachedState::isStage2, gem5::ArmISA::mask, gem5::ArmISA::mode, gem5::ArmISA::TlbEntry::NoAccess, NormalTran, gem5::MipsISA::p, gem5::ArmISA::purifyTaggedAddr(), gem5::ArmISA::MMU::CachedState::sctlr, gem5::ArmISA::MMU::CachedState::ttbcr, updateMiscReg(), gem5::MipsISA::vaddr, gem5::ArmISA::ArmFault::VmsaTran, and gem5::BaseMMU::Write.
Referenced by translateAtomic(), translateComplete(), and translateFunctional().
void gem5::ArmISA::MMU::translateTiming | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
BaseMMU::Translation * | translation, | ||
BaseMMU::Mode | mode, | ||
bool | stage2 | ||
) |
|
inlineoverridevirtual |
Reimplemented from gem5::BaseMMU.
Definition at line 219 of file mmu.hh.
References gem5::ArmISA::mode, and NormalTran.
Referenced by gem5::ArmISA::TableWalker::doL1DescriptorWrapper(), gem5::ArmISA::TableWalker::doL2DescriptorWrapper(), gem5::ArmISA::TableWalker::doLongDescriptorWrapper(), and gem5::ArmISA::TableWalker::processWalkWrapper().
void gem5::MMU::translateTiming | ( | const RequestPtr & | req, |
ThreadContext * | tc, | ||
Translation * | translation, | ||
Mode | mode, | ||
ArmTranslationType | tran_type, | ||
bool | stage2 | ||
) |
Definition at line 1078 of file mmu.cc.
References gem5::ArmISA::mode, translateComplete(), and updateMiscReg().
|
static |
Determine the EL to use for the purpose of a translation given a specific translation type.
If the translation type doesn't specify an EL, we use the current EL.
Definition at line 1368 of file mmu.cc.
References gem5::ArmISA::currEL(), gem5::ArmISA::EL0, gem5::ArmISA::EL1, gem5::ArmISA::EL2, gem5::ArmISA::EL3, HypMode, NormalTran, panic, S12E0Tran, S12E1Tran, S1CTran, S1E0Tran, S1E1Tran, S1E2Tran, S1E3Tran, S1S2NsTran, and gem5::X86ISA::type.
Referenced by gem5::ArmISA::MMU::CachedState::updateMiscReg(), and gem5::ArmISA::TableWalker::walk().
|
protected |
Definition at line 1161 of file mmu.cc.
References gem5::ThreadContext::contextId(), gem5::BaseMMU::data, DPRINTF, dtbStage2, gem5::BaseMMU::instruction, itbStage2, miscRegContext, s1State, s2State, gem5::ArmISA::TLB::setVMID(), gem5::ArmISA::tlb, gem5::BaseMMU::unified, and gem5::ArmISA::MMU::CachedState::updateMiscReg().
Referenced by checkPermissions64(), getTE(), translateAtomic(), translateFunctional(), translateSe(), and translateTiming().
|
protected |
Definition at line 445 of file mmu.hh.
Referenced by getAttr(), setAttr(), and takeOverFrom().
|
protected |
Definition at line 454 of file mmu.hh.
Referenced by hasWalkCache(), and init().
|
protected |
|
protected |
Definition at line 81 of file mmu.hh.
Referenced by flushAll(), flushStage2(), getTlb(), init(), and updateMiscReg().
|
protected |
Definition at line 86 of file mmu.hh.
Referenced by getTableWalker(), and init().
|
protected |
Definition at line 84 of file mmu.hh.
Referenced by getTableWalker(), and init().
|
protected |
|
protected |
Definition at line 80 of file mmu.hh.
Referenced by flushAll(), flushStage2(), getTlb(), init(), and updateMiscReg().
|
protected |
Definition at line 85 of file mmu.hh.
Referenced by getTableWalker(), and init().
|
protected |
Definition at line 83 of file mmu.hh.
Referenced by getTableWalker(), and init().
|
protected |
Definition at line 452 of file mmu.hh.
Referenced by finalizePhysical(), and MMU().
|
protected |
Definition at line 439 of file mmu.hh.
Referenced by updateMiscReg().
|
protected |
Definition at line 450 of file mmu.hh.
Referenced by MMU(), and translateMmuOff().
CachedState gem5::ArmISA::MMU::s1State |
Definition at line 442 of file mmu.hh.
Referenced by checkPermissions(), checkPermissions64(), drainResume(), getTE(), invalidateMiscReg(), takeOverFrom(), testWalk(), translateComplete(), and updateMiscReg().
CachedState gem5::ArmISA::MMU::s2State |
Definition at line 442 of file mmu.hh.
Referenced by checkPermissions(), checkPermissions64(), drainResume(), getTE(), takeOverFrom(), testWalk(), and updateMiscReg().
|
protected |
Referenced by checkPermissions(), checkPermissions64(), getTE(), translateFs(), and translateMmuOn().
TlbTestInterface* gem5::ArmISA::MMU::test |