|
gem5
v19.0.0.0
|
#include <pagetable.hh>
Public Types | |
| enum | MemoryType : std::uint8_t { MemoryType::StronglyOrdered, MemoryType::Device, MemoryType::Normal } |
| enum | DomainType : std::uint8_t { DomainType::NoAccess = 0, DomainType::Client, DomainType::Reserved, DomainType::Manager } |
Public Member Functions | |
| TlbEntry (Addr _asn, Addr _vaddr, Addr _paddr, bool uncacheable, bool read_only) | |
| TlbEntry () | |
| void | updateVaddr (Addr new_vaddr) |
| Addr | pageStart () const |
| bool | match (Addr va, uint8_t _vmid, bool hypLookUp, bool secure_lookup, ExceptionLevel target_el) const |
| bool | match (Addr va, uint16_t asn, uint8_t _vmid, bool hypLookUp, bool secure_lookup, bool ignore_asn, ExceptionLevel target_el) const |
| bool | checkELMatch (ExceptionLevel target_el) const |
| Addr | pAddr (Addr va) const |
| void | updateAttributes () |
| void | setAttributes (bool lpae) |
| std::string | print () const |
| void | serialize (CheckpointOut &cp) const override |
| Serialize an object. More... | |
| void | unserialize (CheckpointIn &cp) override |
| Unserialize an object. More... | |
Public Member Functions inherited from Serializable | |
| 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) |
Public Attributes | |
| Addr | pfn |
| Addr | size |
| Addr | vpn |
| uint64_t | attributes |
| LookupLevel | lookupLevel |
| uint16_t | asid |
| uint8_t | vmid |
| uint8_t | N |
| uint8_t | innerAttrs |
| uint8_t | outerAttrs |
| uint8_t | ap |
| uint8_t | hap |
| DomainType | domain |
| MemoryType | mtype |
| bool | longDescFormat |
| bool | isHyp |
| bool | global |
| bool | valid |
| bool | ns |
| bool | nstid |
| ExceptionLevel | el |
| bool | nonCacheable |
| bool | shareable |
| bool | outerShareable |
| bool | xn |
| bool | pxn |
Additional Inherited Members | |
Static Public Member Functions inherited from Serializable | |
| static const std::string & | currentSection () |
| Get the fully-qualified name of the active section. More... | |
| static void | serializeAll (const std::string &cpt_dir) |
| static void | unserializeGlobals (CheckpointIn &cp) |
Static Public Attributes inherited from Serializable | |
| static int | ckptCount = 0 |
| static int | ckptMaxCount = 0 |
| static int | ckptPrevCount = -1 |
Definition at line 86 of file pagetable.hh.
|
strong |
| Enumerator | |
|---|---|
| NoAccess | |
| Client | |
| Reserved | |
| Manager | |
Definition at line 95 of file pagetable.hh.
|
strong |
| Enumerator | |
|---|---|
| StronglyOrdered | |
| Device | |
| Normal | |
Definition at line 89 of file pagetable.hh.
|
inline |
Definition at line 150 of file pagetable.hh.
References warn.
|
inline |
Definition at line 167 of file pagetable.hh.
|
inline |
Definition at line 222 of file pagetable.hh.
References ArmISA::EL0, ArmISA::EL1, ArmISA::EL2, and ArmISA::EL3.
Referenced by ArmISA::TLB::flushAllNs(), ArmISA::TLB::flushAllSecurity(), and ArmISA::TLB::flushAsid().
|
inline |
Definition at line 193 of file pagetable.hh.
|
inline |
Definition at line 200 of file pagetable.hh.
References ArmISA::asid, and ArmISA::v.
Definition at line 232 of file pagetable.hh.
Referenced by ArmISA::TLB::lookup(), ArmISA::Stage2LookUp::Stage2LookUp(), ArmISA::TLB::translateFunctional(), and ArmISA::TLB::translateMmuOn().
|
inline |
Definition at line 187 of file pagetable.hh.
References ArmISA::PageShift.
|
inline |
Definition at line 287 of file pagetable.hh.
References csprintf().
Referenced by ArmISA::TLB::_flushMva(), ArmISA::TLB::flushAllNs(), ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), and ArmISA::TLB::printTlb().
|
inlineoverridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
| cp | Checkpoint state |
Implements Serializable.
Definition at line 295 of file pagetable.hh.
References ArmISA::domain, paramOut(), SERIALIZE_ENUM, and SERIALIZE_SCALAR.
|
inline |
Definition at line 280 of file pagetable.hh.
Referenced by ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsLPAE(), and ArmISA::TLB::translateMmuOff().
|
inlineoverridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
| cp | Checkpoint state |
Implements Serializable.
Definition at line 325 of file pagetable.hh.
References paramIn(), UNSERIALIZE_ENUM, and UNSERIALIZE_SCALAR.
|
inline |
Formatting for Physical Address Register (PAR) Only including lower bits (TLB info here) PAR (32-bit format): PA [31:12] LPAE [11] (Large Physical Address Extension) TLB info [10:1] NOS [10] (Not Outer Sharable) NS [9] (Non-Secure) – [8] (Implementation Defined) SH [7] (Sharable) Inner[6:4](Inner memory attributes) Outer[3:2](Outer memory attributes) SS [1] (SuperSection) F [0] (Fault, Fault Status in [6:1] if faulted)
Definition at line 238 of file pagetable.hh.
References ArmISA::mask.
Referenced by ArmISA::Stage2LookUp::mergeTe().
|
inline |
Definition at line 181 of file pagetable.hh.
References ArmISA::PageShift.
| uint8_t ArmISA::TlbEntry::ap |
Definition at line 118 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::lookup().
| uint16_t ArmISA::TlbEntry::asid |
Definition at line 113 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAsid(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::lookup().
| uint64_t ArmISA::TlbEntry::attributes |
Definition at line 106 of file pagetable.hh.
Referenced by ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::TLB::translateMmuOff(), and ArmISA::TLB::translateMmuOn().
| DomainType ArmISA::TlbEntry::domain |
Definition at line 120 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::translateMmuOn().
| ExceptionLevel ArmISA::TlbEntry::el |
Definition at line 136 of file pagetable.hh.
Referenced by ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::lookup().
| bool ArmISA::TlbEntry::global |
Definition at line 128 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::lookup().
| uint8_t ArmISA::TlbEntry::hap |
Definition at line 119 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), and ArmISA::TableWalker::insertTableEntry().
| uint8_t ArmISA::TlbEntry::innerAttrs |
Definition at line 116 of file pagetable.hh.
Referenced by ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::Stage2LookUp::mergeTe(), ArmISA::TLB::translateMmuOff(), and ArmISA::TLB::translateMmuOn().
| bool ArmISA::TlbEntry::isHyp |
Definition at line 127 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAllNs(), ArmISA::TLB::insert(), and ArmISA::TableWalker::insertTableEntry().
| bool ArmISA::TlbEntry::longDescFormat |
Definition at line 125 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), and ArmISA::TableWalker::insertTableEntry().
| LookupLevel ArmISA::TlbEntry::lookupLevel |
Definition at line 108 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), and ArmISA::TableWalker::insertTableEntry().
| MemoryType ArmISA::TlbEntry::mtype |
Definition at line 122 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::Stage2LookUp::mergeTe(), ArmISA::TLB::translateMmuOff(), and ArmISA::TLB::translateMmuOn().
| uint8_t ArmISA::TlbEntry::N |
Definition at line 115 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::Stage2LookUp::mergeTe().
| bool ArmISA::TlbEntry::nonCacheable |
Definition at line 139 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::Stage2LookUp::mergeTe(), and ArmISA::TLB::translateMmuOn().
| bool ArmISA::TlbEntry::ns |
Definition at line 132 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TLB::translateMmuOff(), and ArmISA::TLB::translateMmuOn().
| bool ArmISA::TlbEntry::nstid |
Definition at line 134 of file pagetable.hh.
Referenced by ArmISA::TLB::_flushMva(), ArmISA::TLB::flushAllNs(), ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::lookup().
| uint8_t ArmISA::TlbEntry::outerAttrs |
Definition at line 117 of file pagetable.hh.
Referenced by ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::Stage2LookUp::mergeTe(), ArmISA::TLB::translateMmuOff(), and ArmISA::TLB::translateMmuOn().
| bool ArmISA::TlbEntry::outerShareable |
Definition at line 143 of file pagetable.hh.
Referenced by ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::Stage2LookUp::mergeTe(), and ArmISA::TLB::translateMmuOff().
| Addr ArmISA::TlbEntry::pfn |
Definition at line 103 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), and ArmISA::Stage2LookUp::mergeTe().
| bool ArmISA::TlbEntry::pxn |
Definition at line 147 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), and ArmISA::TableWalker::insertTableEntry().
| bool ArmISA::TlbEntry::shareable |
Definition at line 142 of file pagetable.hh.
Referenced by ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::memAttrsLPAE(), ArmISA::Stage2LookUp::mergeTe(), ArmISA::TLB::translateMmuOff(), and ArmISA::TLB::translateMmuOn().
| Addr ArmISA::TlbEntry::size |
Definition at line 104 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), and ArmISA::Stage2LookUp::mergeTe().
| bool ArmISA::TlbEntry::valid |
Definition at line 129 of file pagetable.hh.
Referenced by ArmISA::TLB::_flushMva(), ArmISA::TLB::flushAllNs(), ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::printTlb().
| uint8_t ArmISA::TlbEntry::vmid |
Definition at line 114 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), ArmISA::TLB::insert(), and ArmISA::TableWalker::insertTableEntry().
| Addr ArmISA::TlbEntry::vpn |
Definition at line 105 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::Stage2LookUp::mergeTe().
| bool ArmISA::TlbEntry::xn |
Definition at line 146 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::Stage2LookUp::mergeTe().