gem5
[DEVELOP-FOR-23.0]
|
#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... | |
![]() | |
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 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().