32#ifndef __DEV_AMDGPU_PAGETABLE_WALKER_HH__
33#define __DEV_AMDGPU_PAGETABLE_WALKER_HH__
40#include "debug/GPUPTWalker.hh"
42#include "params/VegaPagetableWalker.hh"
110 DPRINTF(GPUPTWalker,
"Walker::WalkerState %p %p %d\n",
115 bool is_functional =
false);
129 bool &doEndWalk,
Fault &fault);
190 assert(
tlb ==
nullptr);
201 DPRINTF(GPUPTWalker,
"Walker::Walker %p\n",
this);
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
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...
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
WalkerPort(const std::string &_name, Walker *_walker)
Fault pageFault(bool present)
Fault startFunctional(Addr base, Addr vaddr, PageTableEntry &pte, unsigned &logBytes)
uint64_t offsetFunc(Addr logicalAddr, int top, int lsb)
Walker * getWalker() const
void walkStateMachine(PageTableEntry &pte, Addr &nextRead, bool &doEndWalk, Fault &fault)
void sendPackets()
Port related methods.
WalkerState(Walker *_walker, PacketPtr pkt, bool is_functional=false)
void setDevRequestor(RequestorID mid)
void recvTimingResp(PacketPtr pkt)
void walkerResponse(WalkerState *state, VegaTlbEntry &entry, PacketPtr pkt)
void setTLB(GpuTLB *_tlb)
Walker(const VegaPagetableWalkerParams &p)
bool sendTiming(WalkerState *sendingState, PacketPtr pkt)
Fault startFunctional(Addr base, Addr vaddr, PageTableEntry &pte, unsigned &logBytes, BaseMMU::Mode mode)
RequestorID getDevRequestor() const
std::list< WalkerState * > currStates
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
gem5 methods
void setBaseAddr(Addr ta)
RequestorID deviceRequestorId
void startTiming(PacketPtr pkt, Addr base, Addr vaddr, BaseMMU::Mode mode)
ClockedObject declaration and implementation.
virtual void initState()
initState() is called on each SimObject when not restoring from a checkpoint.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< FaultBase > Fault
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)