gem5 v24.0.0.0
|
#include <pagetable_walker.hh>
Public Member Functions | |
WalkerState (Walker *_walker, BaseMMU::Translation *_translation, const RequestPtr &_req, bool _isFunctional=false) | |
void | initState (ThreadContext *_tc, BaseMMU::Mode _mode, bool _isTiming=false) |
Fault | startWalk () |
Fault | startFunctional (Addr &addr, unsigned &logBytes) |
bool | recvPacket (PacketPtr pkt) |
unsigned | numInflight () const |
bool | isRetrying () |
bool | wasStarted () |
bool | isTiming () |
void | retry () |
void | squash () |
std::string | name () const |
Protected Attributes | |
Walker * | walker |
ThreadContext * | tc |
RequestPtr | req |
State | state |
State | nextState |
int | level |
unsigned | inflight |
TlbEntry | entry |
PacketPtr | read |
std::vector< PacketPtr > | writes |
Fault | timingFault |
BaseMMU::Translation * | translation |
BaseMMU::Mode | mode |
SATP | satp |
STATUS | status |
PrivilegeMode | pmode |
bool | functional |
bool | timing |
bool | retrying |
bool | started |
bool | squashed |
Private Types | |
enum | State { Ready , Waiting , Translate } |
Private Member Functions | |
void | setupWalk (Addr vaddr) |
Fault | stepWalk (PacketPtr &write) |
void | sendPackets () |
void | endWalk () |
Fault | pageFault (bool present) |
Friends | |
class | Walker |
Definition at line 86 of file pagetable_walker.hh.
|
private |
Enumerator | |
---|---|
Ready | |
Waiting | |
Translate |
Definition at line 90 of file pagetable_walker.hh.
|
inline |
Definition at line 120 of file pagetable_walker.hh.
|
private |
Definition at line 493 of file pagetable_walker.cc.
void gem5::RiscvISA::Walker::WalkerState::initState | ( | ThreadContext * | _tc, |
BaseMMU::Mode | _mode, | ||
bool | _isTiming = false ) |
Definition at line 183 of file pagetable_walker.cc.
References gem5::RiscvISA::MISCREG_SATP, gem5::RiscvISA::MISCREG_STATUS, gem5::RiscvISA::mode, gem5::ThreadContext::readMiscReg(), state, and gem5::ArmISA::status.
Referenced by gem5::RiscvISA::Walker::start(), and gem5::RiscvISA::Walker::startFunctional().
bool gem5::RiscvISA::Walker::WalkerState::isRetrying | ( | ) |
Definition at line 638 of file pagetable_walker.cc.
Referenced by gem5::RiscvISA::Walker::recvReqRetry().
bool gem5::RiscvISA::Walker::WalkerState::isTiming | ( | ) |
Definition at line 644 of file pagetable_walker.cc.
Referenced by gem5::RiscvISA::Walker::start().
|
inline |
Definition at line 140 of file pagetable_walker.hh.
References gem5::Named::name(), and walker.
unsigned gem5::RiscvISA::Walker::WalkerState::numInflight | ( | ) | const |
Definition at line 632 of file pagetable_walker.cc.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
private |
Definition at line 669 of file pagetable_walker.cc.
References DPRINTF, and gem5::RiscvISA::mode.
bool gem5::RiscvISA::Walker::WalkerState::recvPacket | ( | PacketPtr | pkt | ) |
Definition at line 527 of file pagetable_walker.cc.
References gem5::Packet::headerDelay, gem5::Packet::isRead(), gem5::Packet::isResponse(), gem5::RiscvISA::mode, gem5::NoFault, gem5::Packet::payloadDelay, gem5::sext(), state, and gem5::RiscvISA::vaddr.
Referenced by gem5::RiscvISA::Walker::recvTimingResp().
void gem5::RiscvISA::Walker::WalkerState::retry | ( | ) |
Definition at line 662 of file pagetable_walker.cc.
Referenced by gem5::RiscvISA::Walker::recvReqRetry().
|
private |
Definition at line 599 of file pagetable_walker.cc.
|
private |
Definition at line 501 of file pagetable_walker.cc.
References DPRINTF, flags, gem5::X86ISA::level, gem5::RiscvISA::LEVEL_BITS, gem5::RiscvISA::LEVEL_MASK, gem5::RiscvISA::PageShift, gem5::Request::PHYSICAL, gem5::MemCmd::ReadReq, gem5::sext(), gem5::ArmISA::shift, state, and gem5::RiscvISA::vaddr.
void gem5::RiscvISA::Walker::WalkerState::squash | ( | ) |
Definition at line 656 of file pagetable_walker.cc.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
Definition at line 294 of file pagetable_walker.cc.
References gem5::X86ISA::addr, gem5::NoFault, gem5::RiscvISA::PageShift, and state.
Referenced by gem5::RiscvISA::Walker::startFunctional().
Fault gem5::RiscvISA::Walker::WalkerState::startWalk | ( | ) |
Definition at line 265 of file pagetable_walker.cc.
References gem5::NoFault, and state.
Referenced by gem5::RiscvISA::Walker::start(), and gem5::RiscvISA::Walker::startWalkWrapper().
Definition at line 318 of file pagetable_walker.cc.
References gem5::Packet::cmd, DPRINTF, flags, gem5::Packet::getAddr(), gem5::Packet::getLE(), gem5::Packet::getSize(), gem5::X86ISA::level, gem5::RiscvISA::LEVEL_BITS, gem5::RiscvISA::LEVEL_MASK, gem5::RiscvISA::mask, gem5::RiscvISA::mode, gem5::NoFault, gem5::RiscvISA::PageShift, gem5::RiscvISA::PRV_S, gem5::BaseMMU::Read, gem5::MemCmd::ReadReq, gem5::Packet::req, gem5::Packet::setLE(), gem5::ArmISA::shift, state, gem5::ArmISA::status, gem5::BaseMMU::Write, and gem5::MemCmd::WriteReq.
bool gem5::RiscvISA::Walker::WalkerState::wasStarted | ( | ) |
Definition at line 650 of file pagetable_walker.cc.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
friend |
Definition at line 88 of file pagetable_walker.hh.
|
protected |
Definition at line 105 of file pagetable_walker.hh.
|
protected |
Definition at line 114 of file pagetable_walker.hh.
|
protected |
Definition at line 104 of file pagetable_walker.hh.
|
protected |
Definition at line 103 of file pagetable_walker.hh.
|
protected |
Definition at line 110 of file pagetable_walker.hh.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
protected |
Definition at line 102 of file pagetable_walker.hh.
|
protected |
Definition at line 113 of file pagetable_walker.hh.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
protected |
Definition at line 106 of file pagetable_walker.hh.
|
protected |
Definition at line 100 of file pagetable_walker.hh.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
protected |
Definition at line 116 of file pagetable_walker.hh.
|
protected |
Definition at line 111 of file pagetable_walker.hh.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
protected |
Definition at line 118 of file pagetable_walker.hh.
|
protected |
Definition at line 117 of file pagetable_walker.hh.
|
protected |
Definition at line 101 of file pagetable_walker.hh.
|
protected |
Definition at line 112 of file pagetable_walker.hh.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
protected |
Definition at line 99 of file pagetable_walker.hh.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
protected |
Definition at line 115 of file pagetable_walker.hh.
|
protected |
Definition at line 108 of file pagetable_walker.hh.
|
protected |
Definition at line 109 of file pagetable_walker.hh.
Referenced by gem5::RiscvISA::Walker::startWalkWrapper().
|
protected |
Definition at line 98 of file pagetable_walker.hh.
Referenced by name().
|
protected |
Definition at line 107 of file pagetable_walker.hh.