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);
void translate(Range &range) const override
Subclasses implement this function to complete TranslationGen.
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 bool squashed() const
This function is used by the page table walker to determine if it should translate the a pending requ...
virtual void finish(const Fault &fault, const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode)=0
virtual void markDelayed()=0
Signal that the translation has been delayed due to a hw page table walk.
std::set< BaseTLB * > instruction
It is possible from the MMU to traverse the entire hierarchy of TLBs, starting from the DTB and ITB (...
void init() override
Called at init time, this method is traversing the TLB hierarchy and pupulating the instruction/data/...
virtual Fault translateFunctional(const RequestPtr &req, ThreadContext *tc, Mode mode)
virtual TranslationGenPtr translateFunctional(Addr start, Addr size, ThreadContext *tc, BaseMMU::Mode mode, Request::Flags flags)=0
Returns a translation generator for a region of virtual addresses, instead of directly translating a ...
virtual void takeOverFrom(BaseMMU *old_mmu)
void demapPage(Addr vaddr, uint64_t asn)
std::set< BaseTLB * > data
virtual void translateTiming(const RequestPtr &req, ThreadContext *tc, Translation *translation, Mode mode)
std::set< BaseTLB * > unified
BaseTLB * getTlb(Mode mode) const
virtual Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, Mode mode)
virtual Fault finalizePhysical(const RequestPtr &req, ThreadContext *tc, Mode mode) const
Abstract superclass for simulation objects.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
TranslationGen is a base class for a generator object which returns information about address transla...
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
std::shared_ptr< FaultBase > Fault
std::shared_ptr< Request > RequestPtr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
int ContextID
Globally unique thread context ID.
std::unique_ptr< TranslationGen > TranslationGenPtr
Declaration of a request, the overall memory request consisting of the parts of the request that are ...
This structure represents a single, contiguous translation, or carries information about whatever fau...