gem5 v24.0.0.0
|
#include <pagetable.hh>
Classes | |
struct | Lookup |
Public Types | |
enum class | MemoryType : std::uint8_t { StronglyOrdered , Device , Normal } |
enum class | DomainType : std::uint8_t { NoAccess = 0 , Client , Reserved , 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 | matchAddress (const Lookup &lookup) const |
bool | match (const Lookup &lookup) const |
bool | checkRegime (TranslationRegime target_regime) 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. | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. | |
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. | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. | |
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 |
GrainSize | tg |
uint8_t | N |
uint8_t | innerAttrs |
uint8_t | outerAttrs |
uint8_t | ap |
uint8_t | hap |
DomainType | domain |
MemoryType | mtype |
bool | longDescFormat |
bool | global |
bool | valid |
bool | ns |
bool | nstid |
TranslationRegime | regime |
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. | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. | |
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 264 of file pagetable.hh.
References warn.
|
inline |
Definition at line 284 of file pagetable.hh.
|
inline |
|
inline |
Definition at line 326 of file pagetable.hh.
References asid, gem5::ArmISA::TlbEntry::Lookup::asn, checkRegime(), global, gem5::ArmISA::TlbEntry::Lookup::ignoreAsn, match(), matchAddress(), nstid, gem5::ArmISA::TlbEntry::Lookup::secure, gem5::ArmISA::TlbEntry::Lookup::targetRegime, gem5::ArmISA::useVMID(), valid, gem5::ArmISA::TlbEntry::Lookup::vmid, and vmid.
Referenced by match().
|
inline |
Definition at line 312 of file pagetable.hh.
References N, gem5::ArmISA::TlbEntry::Lookup::size, size, gem5::ArmISA::TlbEntry::Lookup::va, and vpn.
Referenced by match().
Definition at line 351 of file pagetable.hh.
References N, pfn, size, and gem5::ArmISA::va.
Referenced by gem5::ArmISA::TLB::lookup(), gem5::ArmISA::Stage2LookUp::Stage2LookUp(), and gem5::ArmISA::MMU::translateFunctional().
|
inline |
Definition at line 306 of file pagetable.hh.
References gem5::ArmISA::PageShift, and pfn.
|
inline |
Definition at line 406 of file pagetable.hh.
References ap, asid, gem5::csprintf(), global, N, ns, nstid, pfn, regime, gem5::ArmISA::regimeToStr(), size, vmid, and vpn.
|
inlineoverridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 415 of file pagetable.hh.
References ap, asid, attributes, domain, global, hap, innerAttrs, 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 399 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 445 of file pagetable.hh.
References ap, asid, attributes, domain, global, hap, innerAttrs, 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 357 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 300 of file pagetable.hh.
References gem5::ArmISA::PageShift, and vpn.
uint8_t gem5::ArmISA::TlbEntry::ap |
Definition at line 228 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 222 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 215 of file pagetable.hh.
Referenced by serialize(), setAttributes(), gem5::ArmISA::MMU::translateMmuOff(), unserialize(), and updateAttributes().
DomainType gem5::ArmISA::TlbEntry::domain |
Definition at line 230 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), serialize(), and unserialize().
bool gem5::ArmISA::TlbEntry::global |
Definition at line 237 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 229 of file pagetable.hh.
Referenced by serialize(), and unserialize().
uint8_t gem5::ArmISA::TlbEntry::innerAttrs |
Definition at line 226 of file pagetable.hh.
Referenced by gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), gem5::ArmISA::MMU::translateMmuOff(), unserialize(), and updateAttributes().
bool gem5::ArmISA::TlbEntry::longDescFormat |
Definition at line 235 of file pagetable.hh.
Referenced by serialize(), and unserialize().
LookupLevel gem5::ArmISA::TlbEntry::lookupLevel |
Definition at line 217 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 232 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 225 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), matchAddress(), gem5::ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
bool gem5::ArmISA::TlbEntry::nonCacheable |
Definition at line 253 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 241 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 243 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 227 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 257 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 250 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 212 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 261 of file pagetable.hh.
Referenced by serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().
TranslationRegime gem5::ArmISA::TlbEntry::regime |
Definition at line 245 of file pagetable.hh.
Referenced by checkRegime(), gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), and print().
bool gem5::ArmISA::TlbEntry::shareable |
Definition at line 256 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 213 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TLB::lookup(), matchAddress(), gem5::ArmISA::Stage2LookUp::mergeTe(), pAddr(), print(), serialize(), and unserialize().
GrainSize gem5::ArmISA::TlbEntry::tg |
Definition at line 224 of file pagetable.hh.
TypeTLB gem5::ArmISA::TlbEntry::type |
Definition at line 248 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::checkPromotion(), serialize(), and unserialize().
bool gem5::ArmISA::TlbEntry::valid |
Definition at line 238 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::TableWalker::insertPartialTableEntry(), gem5::ArmISA::TableWalker::insertTableEntry(), match(), serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().
vmid_t gem5::ArmISA::TlbEntry::vmid |
Definition at line 223 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), match(), print(), serialize(), and unserialize().
Addr gem5::ArmISA::TlbEntry::vpn |
Definition at line 214 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), matchAddress(), gem5::ArmISA::Stage2LookUp::mergeTe(), print(), serialize(), unserialize(), and updateVaddr().
bool gem5::ArmISA::TlbEntry::xn |
Definition at line 260 of file pagetable.hh.
Referenced by gem5::ArmISA::TLB::insert(), gem5::ArmISA::Stage2LookUp::mergeTe(), serialize(), unserialize(), and gem5::ArmISA::TableWalker::walkAddresses().