gem5
v20.0.0.2
|
#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... | |
![]() | |
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 const std::string & | currentSection () |
Gets the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
static void | unserializeGlobals (CheckpointIn &cp) |
Definition at line 83 of file pagetable.hh.
|
strong |
Enumerator | |
---|---|
NoAccess | |
Client | |
Reserved | |
Manager |
Definition at line 92 of file pagetable.hh.
|
strong |
Enumerator | |
---|---|
StronglyOrdered | |
Device | |
Normal |
Definition at line 86 of file pagetable.hh.
|
inline |
Definition at line 147 of file pagetable.hh.
References warn.
|
inline |
Definition at line 164 of file pagetable.hh.
|
inline |
Definition at line 219 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 190 of file pagetable.hh.
|
inline |
Definition at line 197 of file pagetable.hh.
References ArmISA::asid, and ArmISA::v.
Definition at line 229 of file pagetable.hh.
Referenced by ArmISA::TLB::lookup(), ArmISA::Stage2LookUp::Stage2LookUp(), ArmISA::TLB::translateFunctional(), and ArmISA::TLB::translateMmuOn().
|
inline |
Definition at line 184 of file pagetable.hh.
References ArmISA::PageShift.
|
inline |
Definition at line 284 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 292 of file pagetable.hh.
References ArmISA::domain, paramOut(), SERIALIZE_ENUM, and SERIALIZE_SCALAR.
|
inline |
Definition at line 277 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 322 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 235 of file pagetable.hh.
References ArmISA::mask.
Referenced by ArmISA::Stage2LookUp::mergeTe().
|
inline |
Definition at line 178 of file pagetable.hh.
References ArmISA::PageShift.
uint8_t ArmISA::TlbEntry::ap |
Definition at line 115 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 110 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 103 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 117 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 133 of file pagetable.hh.
Referenced by ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::lookup().
bool ArmISA::TlbEntry::global |
Definition at line 125 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::TLB::lookup().
uint8_t ArmISA::TlbEntry::hap |
Definition at line 116 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), and ArmISA::TableWalker::insertTableEntry().
uint8_t ArmISA::TlbEntry::innerAttrs |
Definition at line 113 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 124 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAllNs(), ArmISA::TLB::insert(), and ArmISA::TableWalker::insertTableEntry().
bool ArmISA::TlbEntry::longDescFormat |
Definition at line 122 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), and ArmISA::TableWalker::insertTableEntry().
LookupLevel ArmISA::TlbEntry::lookupLevel |
Definition at line 105 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), and ArmISA::TableWalker::insertTableEntry().
MemoryType ArmISA::TlbEntry::mtype |
Definition at line 119 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 112 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::Stage2LookUp::mergeTe().
bool ArmISA::TlbEntry::nonCacheable |
Definition at line 136 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 129 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 131 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 114 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 140 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 100 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 144 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), and ArmISA::TableWalker::insertTableEntry().
bool ArmISA::TlbEntry::shareable |
Definition at line 139 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 101 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 126 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 111 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 102 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::Stage2LookUp::mergeTe().
bool ArmISA::TlbEntry::xn |
Definition at line 143 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), and ArmISA::Stage2LookUp::mergeTe().