Go to the documentation of this file.
32 #ifndef __DEV_AMDGPU_PAGETABLE_WALKER_HH__
33 #define __DEV_AMDGPU_PAGETABLE_WALKER_HH__
40 #include "debug/GPUPTWalker.hh"
42 #include "params/VegaPagetableWalker.hh"
108 DPRINTF(GPUPTWalker,
"Walker::WalkerState %p %p %d\n",
113 bool is_functional =
false);
127 bool &doEndWalk,
Fault &fault);
188 assert(
tlb ==
nullptr);
199 DPRINTF(GPUPTWalker,
"Walker::Walker %p\n",
this);
206 #endif // __DEV_AMDGPU_PAGETABLE_WALKER_HH__
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
Walker(const VegaPagetableWalkerParams &p)
Walker * getWalker() const
Fault pageFault(bool present)
RequestorID deviceRequestorId
void recvTimingResp(PacketPtr pkt)
Fault startFunctional(Addr base, Addr vaddr, PageTableEntry &pte, unsigned &logBytes)
void startTiming(PacketPtr pkt, Addr base, Addr vaddr, BaseMMU::Mode mode)
WalkerSenderState(WalkerState *_senderWalk)
const PortID InvalidPortID
bool sendTiming(WalkerState *sendingState, PacketPtr pkt)
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
Fault startFunctional(Addr base, Addr vaddr, PageTableEntry &pte, unsigned &logBytes, BaseMMU::Mode mode)
void setBaseAddr(Addr ta)
void walkerResponse(WalkerState *state, VegaTlbEntry &entry, PacketPtr pkt)
virtual std::string name() const
std::shared_ptr< FaultBase > Fault
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint64_t offsetFunc(Addr logicalAddr, int top, int lsb)
RequestorID getDevRequestor() const
void setTLB(GpuTLB *_tlb)
A virtual base opaque structure used to hold state associated with the packet (e.g....
std::list< WalkerState * > currStates
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
gem5 methods
WalkerPort(const std::string &_name, Walker *_walker)
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
Ports are used to interface objects to each other.
WalkerState(Walker *_walker, PacketPtr pkt, bool is_functional=false)
void initState(BaseMMU::Mode _mode, Addr baseAddr, Addr vaddr, bool is_functional=false)
void sendPackets()
Port related methods.
void setDevRequestor(RequestorID mid)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void walkStateMachine(PageTableEntry &pte, Addr &nextRead, bool &doEndWalk, Fault &fault)
Generated on Sun Jul 30 2023 01:56:47 for gem5 by doxygen 1.8.17