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 (...
BaseTLB * getTlb(Mode mode) const
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
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...
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
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.
std::unique_ptr< TranslationGen > TranslationGenPtr
int ContextID
Globally unique thread context ID.
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...