Go to the documentation of this file.
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;
220 #endif // __ARCH_RISCV_PAGE_TABLE_WALKER_HH__
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
This class helps to implement RISCV's physical memory protection (pmp) primitive.
RiscvPagetableWalkerParams Params
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
std::vector< PacketPtr > writes
void setupWalk(Addr vaddr)
Fault startFunctional(ThreadContext *_tc, Addr &addr, unsigned &logBytes, BaseMMU::Mode mode)
Walker(const Params ¶ms)
Fault startFunctional(Addr &addr, unsigned &logBytes)
bool recvPacket(PacketPtr pkt)
Based on the RISC-V ISA privileged specifications V1.11, there is no implementation guidelines on the...
const PortID InvalidPortID
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
Fault start(ThreadContext *_tc, BaseMMU::Translation *translation, const RequestPtr &req, BaseMMU::Mode mode)
WalkerPort(const std::string &_name, Walker *_walker)
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
BaseMMU::Translation * translation
Fault pageFault(bool present)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual std::string name() const
std::shared_ptr< FaultBase > Fault
const Params & params() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
std::shared_ptr< Request > RequestPtr
EventFunctionWrapper startWalkWrapperEvent
Event used to call startWalkWrapper.
A virtual base opaque structure used to hold state associated with the packet (e.g....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
unsigned numInflight() const
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
Fault stepWalk(PacketPtr &write)
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
Ports are used to interface objects to each other.
bool recvTimingResp(PacketPtr pkt)
WalkerState(Walker *_walker, BaseMMU::Translation *_translation, const RequestPtr &_req, bool _isFunctional=false)
bool sendTiming(WalkerState *sendingState, PacketPtr pkt)
WalkerSenderState(WalkerState *_senderWalk)
std::list< WalkerState * > currStates
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void initState(ThreadContext *_tc, BaseMMU::Mode _mode, bool _isTiming=false)
Generated on Sun Jul 30 2023 01:56:47 for gem5 by doxygen 1.8.17