gem5
v22.1.0.0
|
#include <pagetable_walker.hh>
Public Member Functions | |
WalkerState (Walker *_walker, PacketPtr pkt, bool is_functional=false) | |
void | initState (BaseMMU::Mode _mode, Addr baseAddr, Addr vaddr, bool is_functional=false) |
void | startWalk () |
Fault | startFunctional (Addr base, Addr vaddr, PageTableEntry &pte, unsigned &logBytes) |
bool | isRetrying () |
void | retry () |
std::string | name () const |
Walker * | getWalker () const |
Protected Attributes | |
Walker * | walker |
State | state |
State | nextState |
int | dataSize |
bool | enableNX |
VegaTlbEntry | entry |
PacketPtr | read |
Fault | timingFault |
BaseMMU::Mode | mode |
bool | retrying |
bool | started |
bool | timing |
PacketPtr | tlbPkt |
Private Types | |
enum | State { Ready , Waiting , PDE2 , PDE1 , PDE0 , PTE } |
Private Member Functions | |
Fault | stepWalk () |
void | stepTimingWalk () |
void | walkStateMachine (PageTableEntry &pte, Addr &nextRead, bool &doEndWalk, Fault &fault) |
void | sendPackets () |
Port related methods. More... | |
void | endWalk () |
Fault | pageFault (bool present) |
uint64_t | offsetFunc (Addr logicalAddr, int top, int lsb) |
Friends | |
class | Walker |
Definition at line 76 of file pagetable_walker.hh.
|
private |
Enumerator | |
---|---|
Ready | |
Waiting | |
PDE2 | |
PDE1 | |
PDE0 | |
PTE |
Definition at line 81 of file pagetable_walker.hh.
|
inline |
Definition at line 104 of file pagetable_walker.hh.
|
private |
Definition at line 331 of file pagetable_walker.cc.
|
inline |
Definition at line 121 of file pagetable_walker.hh.
References walker.
Referenced by gem5::VegaISA::Walker::startFunctional().
void gem5::VegaISA::Walker::WalkerState::initState | ( | BaseMMU::Mode | _mode, |
Addr | baseAddr, | ||
Addr | vaddr, | ||
bool | is_functional = false |
||
) |
Definition at line 123 of file pagetable_walker.cc.
References gem5::VegaISA::Walker::baseAddr, DPRINTF, flags, gem5::ArmISA::mode, gem5::VegaISA::PageShift, gem5::Request::PHYSICAL, gem5::MemCmd::ReadReq, state, and gem5::MipsISA::vaddr.
Referenced by gem5::VegaISA::Walker::startFunctional(), and gem5::VegaISA::Walker::startTiming().
bool gem5::VegaISA::Walker::WalkerState::isRetrying | ( | ) |
Definition at line 429 of file pagetable_walker.cc.
Referenced by gem5::VegaISA::Walker::recvReqRetry().
|
inline |
Definition at line 120 of file pagetable_walker.hh.
References gem5::Named::name(), and walker.
|
private |
Definition at line 458 of file pagetable_walker.cc.
|
private |
Definition at line 442 of file pagetable_walker.cc.
References DPRINTF, gem5::BaseMMU::Execute, gem5::VegaISA::INST_PAGE, gem5::VegaISA::LOAD_PAGE, gem5::ArmISA::mode, gem5::X86ISA::present, gem5::BaseMMU::Read, gem5::VegaISA::STORE_PAGE, and gem5::BaseMMU::Write.
void gem5::VegaISA::Walker::WalkerState::retry | ( | ) |
Definition at line 435 of file pagetable_walker.cc.
Referenced by gem5::VegaISA::Walker::recvReqRetry().
|
private |
Fault gem5::VegaISA::Walker::WalkerState::startFunctional | ( | Addr | base, |
Addr | vaddr, | ||
PageTableEntry & | pte, | ||
unsigned & | logBytes | ||
) |
Definition at line 73 of file pagetable_walker.cc.
References DPRINTF, entry, gem5::Packet::getAddr(), gem5::System::getDeviceMemory(), nextState, gem5::NoFault, gem5::VegaISA::PageShift, read, started, state, stepWalk(), gem5::VegaISA::Walker::system, gem5::MipsISA::vaddr, and walker.
Referenced by gem5::VegaISA::Walker::startFunctional().
void gem5::VegaISA::Walker::WalkerState::startWalk | ( | ) |
Definition at line 161 of file pagetable_walker.cc.
References DPRINTF, gem5::mask(), gem5::NoFault, gem5::VegaISA::PageShift, and state.
Referenced by gem5::VegaISA::Walker::recvTimingResp(), and gem5::VegaISA::Walker::startTiming().
|
private |
|
private |
Definition at line 199 of file pagetable_walker.cc.
References DPRINTF, flags, gem5::Packet::getSize(), gem5::NoFault, gem5::MemCmd::ReadReq, gem5::Packet::req, state, and gem5::Request::UNCACHEABLE.
Referenced by startFunctional().
|
private |
Definition at line 233 of file pagetable_walker.cc.
References DPRINTF, gem5::BaseMMU::Execute, gem5::VegaISA::fragment, gem5::mask(), gem5::ArmISA::mode, gem5::VegaISA::PageShift, panic, panic_if, state, and gem5::MipsISA::vaddr.
|
friend |
Definition at line 78 of file pagetable_walker.hh.
|
protected |
Definition at line 92 of file pagetable_walker.hh.
|
protected |
Definition at line 93 of file pagetable_walker.hh.
|
protected |
Definition at line 94 of file pagetable_walker.hh.
Referenced by startFunctional().
|
protected |
Definition at line 97 of file pagetable_walker.hh.
|
protected |
Definition at line 91 of file pagetable_walker.hh.
Referenced by startFunctional().
|
protected |
Definition at line 95 of file pagetable_walker.hh.
Referenced by startFunctional().
|
protected |
Definition at line 98 of file pagetable_walker.hh.
|
protected |
Definition at line 99 of file pagetable_walker.hh.
Referenced by startFunctional().
|
protected |
Definition at line 90 of file pagetable_walker.hh.
Referenced by startFunctional(), and WalkerState().
|
protected |
Definition at line 100 of file pagetable_walker.hh.
|
protected |
Definition at line 96 of file pagetable_walker.hh.
|
protected |
Definition at line 101 of file pagetable_walker.hh.
|
protected |
Definition at line 89 of file pagetable_walker.hh.
Referenced by getWalker(), name(), startFunctional(), and WalkerState().