gem5
v20.1.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, bool in_host) const |
bool | match (Addr va, uint16_t asn, uint8_t _vmid, bool hypLookUp, bool secure_lookup, bool ignore_asn, ExceptionLevel target_el, bool in_host) const |
bool | checkELMatch (ExceptionLevel target_el, bool in_host) 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 () |
Gets the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
Serializes all the SimObjects. More... | |
static void | unserializeGlobals (CheckpointIn &cp) |
Definition at line 81 of file pagetable.hh.
|
strong |
Enumerator | |
---|---|
NoAccess | |
Client | |
Reserved | |
Manager |
Definition at line 90 of file pagetable.hh.
|
strong |
Enumerator | |
---|---|
StronglyOrdered | |
Device | |
Normal |
Definition at line 84 of file pagetable.hh.
|
inline |
Definition at line 145 of file pagetable.hh.
References warn.
|
inline |
Definition at line 162 of file pagetable.hh.
|
inline |
Definition at line 218 of file pagetable.hh.
References el, ArmISA::EL0, ArmISA::EL1, ArmISA::EL2, and ArmISA::EL3.
Referenced by match().
|
inline |
Definition at line 196 of file pagetable.hh.
References asid, checkELMatch(), global, isHyp, match(), N, nstid, size, ArmISA::v, ArmISA::va, valid, vmid, and vpn.
|
inline |
Definition at line 236 of file pagetable.hh.
References N, pfn, size, and ArmISA::va.
Referenced by ArmISA::TLB::lookup(), and ArmISA::Stage2LookUp::Stage2LookUp().
|
inline |
Definition at line 182 of file pagetable.hh.
References ArmISA::PageShift, and pfn.
|
inline |
|
inlineoverridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 299 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 284 of file pagetable.hh.
References attributes, ArmISA::lpae, and updateAttributes().
Referenced by 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 329 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 242 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 176 of file pagetable.hh.
References ArmISA::PageShift, and vpn.
uint8_t ArmISA::TlbEntry::ap |
Definition at line 113 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TLB::lookup(), print(), serialize(), and unserialize().
uint16_t ArmISA::TlbEntry::asid |
Definition at line 108 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
uint64_t ArmISA::TlbEntry::attributes |
Definition at line 101 of file pagetable.hh.
Referenced by serialize(), setAttributes(), ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
DomainType ArmISA::TlbEntry::domain |
Definition at line 115 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), serialize(), and unserialize().
ExceptionLevel ArmISA::TlbEntry::el |
Definition at line 131 of file pagetable.hh.
Referenced by checkELMatch(), ArmISA::TLB::lookup(), and print().
bool ArmISA::TlbEntry::global |
Definition at line 123 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
uint8_t ArmISA::TlbEntry::hap |
Definition at line 114 of file pagetable.hh.
Referenced by serialize(), and unserialize().
uint8_t ArmISA::TlbEntry::innerAttrs |
Definition at line 111 of file pagetable.hh.
Referenced by ArmISA::Stage2LookUp::mergeTe(), serialize(), ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
bool ArmISA::TlbEntry::isHyp |
Definition at line 122 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().
bool ArmISA::TlbEntry::longDescFormat |
Definition at line 120 of file pagetable.hh.
Referenced by serialize(), and unserialize().
LookupLevel ArmISA::TlbEntry::lookupLevel |
Definition at line 103 of file pagetable.hh.
Referenced by serialize(), and unserialize().
MemoryType ArmISA::TlbEntry::mtype |
Definition at line 117 of file pagetable.hh.
Referenced by ArmISA::Stage2LookUp::mergeTe(), serialize(), ArmISA::TLB::translateMmuOff(), and unserialize().
uint8_t ArmISA::TlbEntry::N |
Definition at line 110 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), match(), ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
bool ArmISA::TlbEntry::nonCacheable |
Definition at line 134 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::Stage2LookUp::mergeTe(), serialize(), and unserialize().
bool ArmISA::TlbEntry::ns |
Definition at line 127 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TLB::lookup(), print(), serialize(), ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
bool ArmISA::TlbEntry::nstid |
Definition at line 129 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
uint8_t ArmISA::TlbEntry::outerAttrs |
Definition at line 112 of file pagetable.hh.
Referenced by ArmISA::Stage2LookUp::mergeTe(), serialize(), ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
bool ArmISA::TlbEntry::outerShareable |
Definition at line 138 of file pagetable.hh.
Referenced by ArmISA::Stage2LookUp::mergeTe(), serialize(), ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
Addr ArmISA::TlbEntry::pfn |
Definition at line 98 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TLB::lookup(), ArmISA::Stage2LookUp::mergeTe(), pAddr(), pageStart(), print(), serialize(), and unserialize().
bool ArmISA::TlbEntry::pxn |
Definition at line 142 of file pagetable.hh.
Referenced by serialize(), and unserialize().
bool ArmISA::TlbEntry::shareable |
Definition at line 137 of file pagetable.hh.
Referenced by ArmISA::Stage2LookUp::mergeTe(), serialize(), ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
Addr ArmISA::TlbEntry::size |
Definition at line 99 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::TLB::lookup(), match(), ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
bool ArmISA::TlbEntry::valid |
Definition at line 124 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), match(), serialize(), and unserialize().
uint8_t ArmISA::TlbEntry::vmid |
Definition at line 109 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().
Addr ArmISA::TlbEntry::vpn |
Definition at line 100 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), match(), ArmISA::Stage2LookUp::mergeTe(), print(), serialize(), unserialize(), and updateVaddr().
bool ArmISA::TlbEntry::xn |
Definition at line 141 of file pagetable.hh.
Referenced by ArmISA::TLB::insert(), ArmISA::Stage2LookUp::mergeTe(), serialize(), and unserialize().