|
gem5 [DEVELOP-FOR-25.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 |
| int | blockFragmentSize |
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. | |
| void | endWalk () |
| Fault | pageFault (bool present) |
| uint64_t | offsetFunc (Addr logicalAddr, int top, int lsb) |
Friends | |
| class | Walker |
Definition at line 80 of file pagetable_walker.hh.
|
private |
| Enumerator | |
|---|---|
| Ready | |
| Waiting | |
| PDE2 | |
| PDE1 | |
| PDE0 | |
| PTE | |
Definition at line 85 of file pagetable_walker.hh.
|
private |
Definition at line 351 of file pagetable_walker.cc.
References nextState, read, Ready, and walker.
Referenced by stepWalk().
|
inline |
Definition at line 127 of file pagetable_walker.hh.
| void gem5::VegaISA::Walker::WalkerState::initState | ( | BaseMMU::Mode | _mode, |
| Addr | baseAddr, | ||
| Addr | vaddr, | ||
| bool | is_functional = false ) |
Definition at line 122 of file pagetable_walker.cc.
References gem5::VegaISA::Walker::baseAddr, dataSize, DPRINTF, enableNX, entry, mode, nextState, gem5::VegaISA::PageShift, PDE2, gem5::Request::PHYSICAL, read, gem5::MemCmd::ReadReq, Ready, started, state, timing, gem5::MipsISA::vaddr, and walker.
Referenced by gem5::VegaISA::Walker::startTiming().
| bool gem5::VegaISA::Walker::WalkerState::isRetrying | ( | ) |
Definition at line 481 of file pagetable_walker.cc.
References retrying.
Referenced by gem5::VegaISA::Walker::recvReqRetry().
|
inline |
Definition at line 126 of file pagetable_walker.hh.
References walker.
|
private |
Definition at line 510 of file pagetable_walker.cc.
Referenced by walkStateMachine().
|
private |
Definition at line 494 of file pagetable_walker.cc.
References DPRINTF, enableNX, entry, gem5::BaseMMU::Execute, gem5::VegaISA::INST_PAGE, gem5::VegaISA::LOAD_PAGE, mode, gem5::X86ISA::present, gem5::BaseMMU::Read, gem5::VegaISA::STORE_PAGE, and gem5::BaseMMU::Write.
Referenced by walkStateMachine().
| void gem5::VegaISA::Walker::WalkerState::retry | ( | ) |
Definition at line 487 of file pagetable_walker.cc.
References retrying, and sendPackets().
Referenced by gem5::VegaISA::Walker::recvReqRetry().
|
private |
Port related methods.
Definition at line 363 of file pagetable_walker.cc.
References gem5::X86ISA::addr, DPRINTF, read, retrying, and walker.
Referenced by retry(), and startWalk().
| Fault gem5::VegaISA::Walker::WalkerState::startFunctional | ( | Addr | base, |
| Addr | vaddr, | ||
| PageTableEntry & | pte, | ||
| unsigned & | logBytes ) |
Definition at line 73 of file pagetable_walker.cc.
References gem5::RiscvISA::base, DPRINTF, entry, nextState, gem5::NoFault, gem5::VegaISA::PageShift, read, started, state, stepWalk(), gem5::MipsISA::vaddr, and walker.
| void gem5::VegaISA::Walker::WalkerState::startWalk | ( | ) |
Definition at line 160 of file pagetable_walker.cc.
References DPRINTF, entry, gem5::ArmISA::mask, nextState, gem5::NoFault, gem5::VegaISA::PageShift, read, sendPackets(), started, state, stepWalk(), timingFault, tlbPkt, and walker.
Referenced by gem5::VegaISA::Walker::recvTimingResp(), and gem5::VegaISA::Walker::startTiming().
|
private |
References gem5::X86ISA::present.
|
private |
Definition at line 198 of file pagetable_walker.cc.
References DPRINTF, endWalk(), gem5::Packet::getSize(), gem5::NoFault, read, gem5::MemCmd::ReadReq, Ready, gem5::Packet::req, gem5::Flags< T >::set(), state, gem5::Request::UNCACHEABLE, Waiting, walker, and walkStateMachine().
Referenced by startFunctional(), and startWalk().
|
private |
Definition at line 232 of file pagetable_walker.cc.
References blockFragmentSize, DPRINTF, enableNX, entry, gem5::BaseMMU::Execute, gem5::VegaISA::fragment, gem5::ArmISA::mask, mode, nextState, offsetFunc(), pageFault(), gem5::VegaISA::PageShift, panic, PDE0, PDE1, PDE2, PTE, state, and gem5::MipsISA::vaddr.
Referenced by stepWalk().
|
friend |
Definition at line 82 of file pagetable_walker.hh.
References Walker.
Referenced by getWalker(), Walker, and WalkerState().
|
protected |
Definition at line 106 of file pagetable_walker.hh.
Referenced by WalkerState(), and walkStateMachine().
|
protected |
Definition at line 96 of file pagetable_walker.hh.
Referenced by initState(), and WalkerState().
|
protected |
Definition at line 97 of file pagetable_walker.hh.
Referenced by initState(), pageFault(), WalkerState(), and walkStateMachine().
|
protected |
Definition at line 98 of file pagetable_walker.hh.
Referenced by initState(), pageFault(), startFunctional(), startWalk(), and walkStateMachine().
|
protected |
Definition at line 101 of file pagetable_walker.hh.
Referenced by initState(), pageFault(), and walkStateMachine().
|
protected |
Definition at line 95 of file pagetable_walker.hh.
Referenced by endWalk(), initState(), startFunctional(), startWalk(), WalkerState(), and walkStateMachine().
|
protected |
Definition at line 99 of file pagetable_walker.hh.
Referenced by endWalk(), initState(), sendPackets(), startFunctional(), startWalk(), and stepWalk().
|
protected |
Definition at line 102 of file pagetable_walker.hh.
Referenced by isRetrying(), retry(), sendPackets(), and WalkerState().
|
protected |
Definition at line 103 of file pagetable_walker.hh.
Referenced by initState(), startFunctional(), startWalk(), and WalkerState().
|
protected |
Definition at line 94 of file pagetable_walker.hh.
Referenced by initState(), startFunctional(), startWalk(), stepWalk(), WalkerState(), and walkStateMachine().
|
protected |
Definition at line 104 of file pagetable_walker.hh.
Referenced by initState().
|
protected |
Definition at line 100 of file pagetable_walker.hh.
Referenced by startWalk().
|
protected |
Definition at line 105 of file pagetable_walker.hh.
Referenced by startWalk(), and WalkerState().
|
protected |
Definition at line 93 of file pagetable_walker.hh.
Referenced by endWalk(), getWalker(), initState(), name(), sendPackets(), startFunctional(), startWalk(), stepWalk(), and WalkerState().