Go to the documentation of this file.
51 port(_stage1Tlb->getTableWalker(),
p->sys),
52 requestorId(
p->sys->getRequestorId(_stage1Tlb->getTableWalker()))
68 auto req = std::make_shared<Request>();
111 uint8_t *_data,
Event *_event,
Addr _oVAddr)
112 :
data(_data), numBytes(0),
event(_event), parent(_parent), oVAddr(_oVAddr),
115 req = std::make_shared<Request>();
134 parent.getDMAPort().dmaAction(
136 tc->
getCpuPtr()->clockPeriod(), req->getFlags());
145 ArmStage2MMUParams::create()
@ NO_ACCESS
The request should not cause a memory access.
ArmStage2MMUParams Params
std::shared_ptr< Request > RequestPtr
void sendFunctional(PacketPtr pkt) const
Send a functional request packet, where the data is instantly updated everywhere in the memory system...
Stage2MMU(const Params *p)
This translation class is used to trigger the data fetch once a timing translation returns the transl...
DmaPort port
Port to issue translation requests from.
Stage2Translation(Stage2MMU &_parent, uint8_t *_data, Event *_event, Addr _oVAddr)
void setVirt(Addr vaddr, int size, Request::Flags flags, int requestorId)
void finish(const Fault &fault, const RequestPtr &req, ThreadContext *tc, BaseTLB::Mode mode)
virtual void annotate(AnnotationIDs id, uint64_t val)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
std::shared_ptr< FaultBase > Fault
constexpr decltype(nullptr) NoFault
RequestorID requestorId
Request id for requests generated by this MMU.
ProbePointArg< PacketInfo > Packet
Packet probe point.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
@ PT_WALK
The request is a page table walk.
void dataStatic(T *p)
Set the data pointer to the following value that should not be freed.
void translateTiming(ThreadContext *tc)
void readDataTimed(ThreadContext *tc, Addr descAddr, Stage2Translation *translation, int numBytes, Request::Flags flags)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Fault readDataUntimed(ThreadContext *tc, Addr oVAddr, Addr descAddr, uint8_t *data, int numBytes, Request::Flags flags, bool isFunctional)
Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, Mode mode, ArmTranslationType tranType)
Tick sendAtomic(PacketPtr pkt)
Send an atomic request packet, where the data is moved and the state is updated in zero time,...
void setMMU(Stage2MMU *m, RequestorID requestor_id)
virtual BaseCPU * getCpuPtr()=0
bool translateFunctional(ThreadContext *tc, Addr vaddr, Addr &paddr)
Do a functional lookup on the TLB (for debugging) and don't modify any internal state.
Abstract superclass for simulation objects.
Generated on Wed Sep 30 2020 14:02:01 for gem5 by doxygen 1.8.17