|
gem5
v21.2.1.1
|
#include <pagetable.hh>
Classes | |
| struct | Lookup |
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 } |
| typedef enums::ArmLookupLevel | LookupLevel |
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 (const Lookup &lookup) 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 |
| TypeTLB | type |
| bool | partial |
| 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 165 of file pagetable.hh.
| typedef enums::ArmLookupLevel gem5::ArmISA::TlbEntry::LookupLevel |
Definition at line 168 of file pagetable.hh.
|
strong |
| Enumerator | |
|---|---|
| NoAccess | |
| Client | |
| Reserved | |
| Manager | |
Definition at line 177 of file pagetable.hh.
|
strong |
| Enumerator | |
|---|---|
| StronglyOrdered | |
| Device | |
| Normal | |
Definition at line 170 of file pagetable.hh.
|
inline |
Definition at line 262 of file pagetable.hh.
References warn.
|
inline |
Definition at line 282 of file pagetable.hh.
|
inline |
Definition at line 330 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 310 of file pagetable.hh.
References asid, gem5::ArmISA::TlbEntry::Lookup::asn, checkELMatch(), global, gem5::ArmISA::TlbEntry::Lookup::hyp, gem5::ArmISA::TlbEntry::Lookup::ignoreAsn, gem5::ArmISA::TlbEntry::Lookup::inHost, isHyp, N, nstid, gem5::ArmISA::TlbEntry::Lookup::secure, size, gem5::ArmISA::TlbEntry::Lookup::targetEL, gem5::ArmISA::v, gem5::ArmISA::TlbEntry::Lookup::va, valid, gem5::ArmISA::TlbEntry::Lookup::vmid, vmid, and vpn.
Definition at line 348 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 304 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 411 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, type, valid, vmid, vpn, and xn.
|
inline |
Definition at line 396 of file pagetable.hh.
References attributes, gem5::ArmISA::lpae, and updateAttributes().
Referenced by gem5::ArmISA::MMU::translateMmuOff().
|
inlineoverridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
| cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 442 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, type, 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 354 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 298 of file pagetable.hh.
References gem5::ArmISA::PageShift, and vpn.
| uint8_t gem5::ArmISA::TlbEntry::ap |
Definition at line 225 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), print(), serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().
| uint16_t gem5::ArmISA::TlbEntry::asid |
Definition at line 220 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 213 of file pagetable.hh.
Referenced by serialize(), setAttributes(), gem5::ArmISA::MMU::translateMmuOff(), unserialize(), and updateAttributes().
| DomainType gem5::ArmISA::TlbEntry::domain |
Definition at line 227 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), serialize(), and unserialize().
| ExceptionLevel gem5::ArmISA::TlbEntry::el |
Definition at line 243 of file pagetable.hh.
Referenced by checkELMatch(), gem5::ArmISA::TLB::lookup(), and print().
| bool gem5::ArmISA::TlbEntry::global |
Definition at line 235 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 226 of file pagetable.hh.
Referenced by serialize(), and unserialize().
| uint8_t gem5::ArmISA::TlbEntry::innerAttrs |
Definition at line 223 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::MMU::translateMmuOff(), unserialize(), and updateAttributes().
| bool gem5::ArmISA::TlbEntry::isHyp |
Definition at line 234 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().
| bool gem5::ArmISA::TlbEntry::longDescFormat |
Definition at line 232 of file pagetable.hh.
Referenced by serialize(), and unserialize().
| LookupLevel gem5::ArmISA::TlbEntry::lookupLevel |
Definition at line 215 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::match(), gem5::ArmISA::TLB::multiInsert(), serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().
| MemoryType gem5::ArmISA::TlbEntry::mtype |
Definition at line 229 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::MMU::translateMmuOff(), and unserialize().
| uint8_t gem5::ArmISA::TlbEntry::N |
Definition at line 222 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 251 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 239 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), print(), serialize(), gem5::ArmISA::MMU::translateMmuOff(), unserialize(), and updateAttributes().
| bool gem5::ArmISA::TlbEntry::nstid |
Definition at line 241 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 224 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::MMU::translateMmuOff(), unserialize(), and updateAttributes().
| bool gem5::ArmISA::TlbEntry::outerShareable |
Definition at line 255 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::MMU::translateMmuOff(), unserialize(), and updateAttributes().
| bool gem5::ArmISA::TlbEntry::partial |
Definition at line 248 of file pagetable.hh.
Referenced by gem5::ArmISA::MMU::isCompleteTranslation(), gem5::ArmISA::TLB::lookup(), gem5::ArmISA::TLB::match(), and gem5::ArmISA::TLB::multiInsert().
| Addr gem5::ArmISA::TlbEntry::pfn |
Definition at line 210 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), gem5::ArmISA::Stage2LookUp::mergeTe(), pAddr(), pageStart(), print(), serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().
| bool gem5::ArmISA::TlbEntry::pxn |
Definition at line 259 of file pagetable.hh.
Referenced by serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().
| bool gem5::ArmISA::TlbEntry::shareable |
Definition at line 254 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::MMU::translateMmuOff(), unserialize(), and updateAttributes().
| Addr gem5::ArmISA::TlbEntry::size |
Definition at line 211 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), match(), gem5::ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
| TypeTLB gem5::ArmISA::TlbEntry::type |
Definition at line 246 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::checkPromotion(), serialize(), and unserialize().
| bool gem5::ArmISA::TlbEntry::valid |
Definition at line 236 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().
| vmid_t gem5::ArmISA::TlbEntry::vmid |
Definition at line 221 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().
| Addr gem5::ArmISA::TlbEntry::vpn |
Definition at line 212 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 258 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().