39#ifndef __ARCH_RISCV_TABLE_WALKER_HH__
40#define __ARCH_RISCV_TABLE_WALKER_HH__
51#include "params/RiscvPagetableWalker.hh"
120 const RequestPtr &_req,
bool _isFunctional =
false) :
129 bool _isTiming =
false);
203 using Params = RiscvPagetableWalkerParams;
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
virtual std::string name() const
Based on the RISC-V ISA privileged specifications V1.11, there is no implementation guidelines on the...
This class helps to implement RISCV's physical memory protection (pmp) primitive.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Ports are used to interface objects to each other.
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
WalkerPort(const std::string &_name, Walker *_walker)
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
Fault startFunctional(Addr &addr, unsigned &logBytes)
bool recvPacket(PacketPtr pkt)
std::vector< PacketPtr > writes
void setupWalk(Addr vaddr)
Fault stepWalk(PacketPtr &write)
WalkerState(Walker *_walker, BaseMMU::Translation *_translation, const RequestPtr &_req, bool _isFunctional=false)
BaseMMU::Translation * translation
Fault pageFault(bool present)
unsigned numInflight() const
Fault startFunctional(ThreadContext *_tc, Addr &addr, unsigned &logBytes, BaseMMU::Mode mode)
EventFunctionWrapper startWalkWrapperEvent
Event used to call startWalkWrapper.
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
bool sendTiming(WalkerState *sendingState, PacketPtr pkt)
bool recvTimingResp(PacketPtr pkt)
std::list< WalkerState * > currStates
Fault start(ThreadContext *_tc, BaseMMU::Translation *translation, const RequestPtr &req, BaseMMU::Mode mode)
RiscvPagetableWalkerParams Params
Walker(const Params ¶ms)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
ClockedObject declaration and implementation.
virtual void initState()
initState() is called on each SimObject when not restoring from a checkpoint.
const Params & params() const
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
std::shared_ptr< FaultBase > Fault
std::shared_ptr< Request > RequestPtr
const PortID InvalidPortID
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Declaration of the Packet class.
A virtual base opaque structure used to hold state associated with the packet (e.g....
WalkerSenderState(WalkerState *_senderWalk)