|
gem5
v21.1.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, vmid_t _vmid, bool hyp_lookup, bool secure_lookup, ExceptionLevel target_el, bool in_host) const |
| bool | match (Addr va, uint16_t asn, vmid_t _vmid, bool hyp_lookup, 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 gem5::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 |
| vmid_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 gem5::Serializable | |
| 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... | |
Definition at line 86 of file pagetable.hh.
|
strong |
| Enumerator | |
|---|---|
| NoAccess | |
| Client | |
| Reserved | |
| Manager | |
Definition at line 96 of file pagetable.hh.
|
strong |
| Enumerator | |
|---|---|
| StronglyOrdered | |
| Device | |
| Normal | |
Definition at line 89 of file pagetable.hh.
|
inline |
Definition at line 152 of file pagetable.hh.
References warn.
|
inline |
Definition at line 169 of file pagetable.hh.
|
inline |
Definition at line 225 of file pagetable.hh.
References el, gem5::ArmISA::EL0, gem5::ArmISA::EL1, gem5::ArmISA::EL2, and gem5::ArmISA::EL3.
Referenced by match().
|
inline |
Definition at line 203 of file pagetable.hh.
References asid, checkELMatch(), global, isHyp, match(), N, nstid, size, gem5::ArmISA::v, gem5::ArmISA::va, valid, vmid, and vpn.
|
inline |
Definition at line 243 of file pagetable.hh.
References N, pfn, size, and gem5::ArmISA::va.
Referenced by gem5::ArmISA::TLB::lookup(), and gem5::ArmISA::Stage2LookUp::Stage2LookUp().
|
inline |
Definition at line 189 of file pagetable.hh.
References gem5::ArmISA::PageShift, and pfn.
|
inline |
|
inlineoverridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
| cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 306 of file pagetable.hh.
References ap, asid, attributes, domain, global, hap, innerAttrs, isHyp, longDescFormat, lookupLevel, mtype, N, nonCacheable, ns, nstid, outerAttrs, outerShareable, gem5::paramOut(), pfn, pxn, SERIALIZE_ENUM, SERIALIZE_SCALAR, shareable, size, valid, vmid, vpn, and xn.
|
inline |
Definition at line 291 of file pagetable.hh.
References attributes, gem5::ArmISA::lpae, and updateAttributes().
Referenced by gem5::ArmISA::TLB::translateMmuOff().
|
inlineoverridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
| cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 336 of file pagetable.hh.
References ap, asid, attributes, domain, global, hap, innerAttrs, isHyp, longDescFormat, lookupLevel, mtype, N, nonCacheable, ns, nstid, outerAttrs, outerShareable, gem5::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 249 of file pagetable.hh.
References attributes, innerAttrs, gem5::ArmISA::mask, ns, outerAttrs, outerShareable, and shareable.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), and setAttributes().
|
inline |
Definition at line 183 of file pagetable.hh.
References gem5::ArmISA::PageShift, and vpn.
| uint8_t gem5::ArmISA::TlbEntry::ap |
Definition at line 120 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), print(), serialize(), and unserialize().
| uint16_t gem5::ArmISA::TlbEntry::asid |
Definition at line 115 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
| uint64_t gem5::ArmISA::TlbEntry::attributes |
Definition at line 108 of file pagetable.hh.
Referenced by serialize(), setAttributes(), gem5::ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
| DomainType gem5::ArmISA::TlbEntry::domain |
Definition at line 122 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), serialize(), and unserialize().
| ExceptionLevel gem5::ArmISA::TlbEntry::el |
Definition at line 138 of file pagetable.hh.
Referenced by checkELMatch(), gem5::ArmISA::TLB::lookup(), and print().
| bool gem5::ArmISA::TlbEntry::global |
Definition at line 130 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
| uint8_t gem5::ArmISA::TlbEntry::hap |
Definition at line 121 of file pagetable.hh.
Referenced by serialize(), and unserialize().
| uint8_t gem5::ArmISA::TlbEntry::innerAttrs |
Definition at line 118 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
| bool gem5::ArmISA::TlbEntry::isHyp |
Definition at line 129 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().
| bool gem5::ArmISA::TlbEntry::longDescFormat |
Definition at line 127 of file pagetable.hh.
Referenced by serialize(), and unserialize().
| LookupLevel gem5::ArmISA::TlbEntry::lookupLevel |
Definition at line 110 of file pagetable.hh.
Referenced by serialize(), and unserialize().
| MemoryType gem5::ArmISA::TlbEntry::mtype |
Definition at line 124 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::TLB::translateMmuOff(), and unserialize().
| uint8_t gem5::ArmISA::TlbEntry::N |
Definition at line 117 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), gem5::ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
| bool gem5::ArmISA::TlbEntry::nonCacheable |
Definition at line 141 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), and unserialize().
| bool gem5::ArmISA::TlbEntry::ns |
Definition at line 134 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), print(), serialize(), gem5::ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
| bool gem5::ArmISA::TlbEntry::nstid |
Definition at line 136 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), match(), print(), serialize(), and unserialize().
| uint8_t gem5::ArmISA::TlbEntry::outerAttrs |
Definition at line 119 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
| bool gem5::ArmISA::TlbEntry::outerShareable |
Definition at line 145 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
| Addr gem5::ArmISA::TlbEntry::pfn |
Definition at line 105 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), gem5::ArmISA::Stage2LookUp::mergeTe(), pAddr(), pageStart(), print(), serialize(), and unserialize().
| bool gem5::ArmISA::TlbEntry::pxn |
Definition at line 149 of file pagetable.hh.
Referenced by serialize(), and unserialize().
| bool gem5::ArmISA::TlbEntry::shareable |
Definition at line 144 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::TLB::translateMmuOff(), unserialize(), and updateAttributes().
| Addr gem5::ArmISA::TlbEntry::size |
Definition at line 106 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), match(), gem5::ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
| bool gem5::ArmISA::TlbEntry::valid |
Definition at line 131 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), serialize(), and unserialize().
| vmid_t gem5::ArmISA::TlbEntry::vmid |
Definition at line 116 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().
| Addr gem5::ArmISA::TlbEntry::vpn |
Definition at line 107 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), gem5::ArmISA::Stage2LookUp::mergeTe(), print(), serialize(), unserialize(), and updateVaddr().
| bool gem5::ArmISA::TlbEntry::xn |
Definition at line 148 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), and unserialize().