Go to the documentation of this file.
38 #ifndef __ARCH_GENERIC_MMU_HH__
39 #define __ARCH_GENERIC_MMU_HH__
45 #include "params/BaseMMU.hh"
84 virtual bool squashed()
const {
return false; }
108 void init()
override;
120 Translation *translation,
Mode mode);
BaseTLB * getTlb(Mode mode) const
virtual bool squashed() const
This function is used by the page table walker to determine if it should translate the a pending requ...
void translate(Range &range) const override
Subclasses implement this function to complete TranslationGen.
virtual void markDelayed()=0
Signal that the translation has been delayed due to a hw page table walk.
void init() override
Called at init time, this method is traversing the TLB hierarchy and pupulating the instruction/data/...
This structure represents a single, contiguous translation, or carries information about whatever fau...
virtual Fault translateFunctional(const RequestPtr &req, ThreadContext *tc, Mode mode)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
std::shared_ptr< FaultBase > Fault
std::set< BaseTLB * > unified
std::shared_ptr< Request > RequestPtr
void demapPage(Addr vaddr, uint64_t asn)
Abstract superclass for simulation objects.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
TranslationGen is a base class for a generator object which returns information about address transla...
virtual void translateTiming(const RequestPtr &req, ThreadContext *tc, Translation *translation, Mode mode)
std::set< BaseTLB * > instruction
It is possible from the MMU to traverse the entire hierarchy of TLBs, starting from the DTB and ITB (...
int ContextID
Globally unique thread context ID.
virtual Fault finalizePhysical(const RequestPtr &req, ThreadContext *tc, Mode mode) const
virtual Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, Mode mode)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
MMUTranslationGen(Addr page_bytes, Addr new_start, Addr new_size, ThreadContext *new_tc, BaseMMU *new_mmu, BaseMMU::Mode new_mode, Request::Flags new_flags)
virtual void takeOverFrom(BaseMMU *old_mmu)
virtual void finish(const Fault &fault, const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode)=0
std::set< BaseTLB * > data
std::unique_ptr< TranslationGen > TranslationGenPtr
Generated on Sun Jul 30 2023 01:56:47 for gem5 by doxygen 1.8.17