gem5
|
#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, uint8_t target_el) const |
bool | match (Addr va, uint16_t asn, uint8_t _vmid, bool hypLookUp, bool secure_lookup, bool ignore_asn, uint8_t 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 |
uint8_t | 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 193 of file pagetable.hh.
Referenced by match().
|
inline |
Definition at line 224 of file pagetable.hh.
Referenced by ArmISA::TLB::lookup(), ArmISA::Stage2LookUp::Stage2LookUp(), ArmISA::TLB::translateFs(), and ArmISA::TLB::translateFunctional().
|
inline |
Definition at line 187 of file pagetable.hh.
References ArmISA::PageShift, and pfn.
|
inline |
Definition at line 279 of file pagetable.hh.
References ap, asid, csprintf(), el, global, isHyp, N, ns, nstid, pfn, size, vmid, and vpn.
Referenced by 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 287 of file pagetable.hh.
References ap, asid, attributes, domain, global, hap, innerAttrs, isHyp, longDescFormat, lookupLevel, mtype, N, nonCacheable, ns, nstid, outerAttrs, outerShareable, paramOut(), pfn, pxn, SERIALIZE_ENUM, SERIALIZE_SCALAR, shareable, size, valid, vmid, vpn, and xn.
|
inline |
Definition at line 272 of file pagetable.hh.
References attributes, and updateAttributes().
Referenced by ArmISA::TableWalker::memAttrs(), ArmISA::TableWalker::memAttrsLPAE(), and ArmISA::TLB::translateFs().
|
inlineoverridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 317 of file pagetable.hh.
References ap, asid, attributes, domain, global, hap, innerAttrs, isHyp, longDescFormat, lookupLevel, mtype, N, nonCacheable, ns, nstid, outerAttrs, outerShareable, paramIn(), pfn, pxn, shareable, size, UNSERIALIZE_ENUM, UNSERIALIZE_SCALAR, valid, vmid, vpn, and xn.
|
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 230 of file pagetable.hh.
References attributes, innerAttrs, ArmISA::mask, ns, outerAttrs, outerShareable, and shareable.
Referenced by ArmISA::Stage2LookUp::mergeTe(), and setAttributes().
|
inline |
Definition at line 181 of file pagetable.hh.
References ArmISA::PageShift, and vpn.
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(), ArmISA::TLB::lookup(), print(), serialize(), and unserialize().
uint16_t ArmISA::TlbEntry::asid |
Definition at line 113 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAsid(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
uint64_t ArmISA::TlbEntry::attributes |
Definition at line 106 of file pagetable.hh.
Referenced by ArmISA::TableWalker::memAttrsAArch64(), ArmISA::TableWalker::memAttrsLPAE(), serialize(), setAttributes(), ArmISA::TLB::translateFs(), unserialize(), and updateAttributes().
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(), serialize(), ArmISA::TLB::translateFs(), and unserialize().
uint8_t ArmISA::TlbEntry::el |
Definition at line 136 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAllNs(), ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), match(), and print().
bool ArmISA::TlbEntry::global |
Definition at line 128 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
uint8_t ArmISA::TlbEntry::hap |
Definition at line 119 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TableWalker::insertTableEntry(), serialize(), and unserialize().
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(), serialize(), ArmISA::TLB::translateFs(), unserialize(), and updateAttributes().
bool ArmISA::TlbEntry::isHyp |
Definition at line 127 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAllNs(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), match(), print(), serialize(), and unserialize().
bool ArmISA::TlbEntry::longDescFormat |
Definition at line 125 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TableWalker::insertTableEntry(), serialize(), and unserialize().
LookupLevel ArmISA::TlbEntry::lookupLevel |
Definition at line 108 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TableWalker::insertTableEntry(), serialize(), and unserialize().
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(), serialize(), ArmISA::TLB::translateFs(), and unserialize().
uint8_t ArmISA::TlbEntry::N |
Definition at line 115 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), match(), ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
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(), serialize(), ArmISA::TLB::translateFs(), and unserialize().
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(), print(), serialize(), ArmISA::TLB::translateFs(), unserialize(), and updateAttributes().
bool ArmISA::TlbEntry::nstid |
Definition at line 134 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAllNs(), ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
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(), serialize(), ArmISA::TLB::translateFs(), unserialize(), and updateAttributes().
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(), serialize(), ArmISA::TLB::translateFs(), unserialize(), and updateAttributes().
Addr ArmISA::TlbEntry::pfn |
Definition at line 103 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), ArmISA::Stage2LookUp::mergeTe(), pAddr(), pageStart(), print(), serialize(), and unserialize().
bool ArmISA::TlbEntry::pxn |
Definition at line 147 of file pagetable.hh.
Referenced by ArmISA::TLB::checkPermissions(), ArmISA::TLB::checkPermissions64(), ArmISA::TableWalker::insertTableEntry(), serialize(), and unserialize().
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(), serialize(), ArmISA::TLB::translateFs(), unserialize(), and updateAttributes().
Addr ArmISA::TlbEntry::size |
Definition at line 104 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), ArmISA::TLB::lookup(), match(), ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
bool ArmISA::TlbEntry::valid |
Definition at line 129 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAllNs(), ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), match(), ArmISA::TLB::printTlb(), serialize(), and unserialize().
uint8_t ArmISA::TlbEntry::vmid |
Definition at line 114 of file pagetable.hh.
Referenced by ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), match(), print(), serialize(), and unserialize().
Addr ArmISA::TlbEntry::vpn |
Definition at line 105 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TableWalker::insertTableEntry(), match(), ArmISA::Stage2LookUp::mergeTe(), print(), serialize(), unserialize(), and updateVaddr().
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(), ArmISA::Stage2LookUp::mergeTe(), serialize(), and unserialize().