Go to the documentation of this file.
38 #ifndef __DEV_ARM_SMMU_V3_TRANSL_HH__
39 #define __DEV_ARM_SMMU_V3_TRANSL_HH__
129 unsigned stage,
unsigned level);
132 unsigned stage,
unsigned level,
133 bool leaf, uint8_t permissions);
178 uint32_t sid, uint32_t ssid);
180 unsigned stage,
unsigned level);
void microTLBUpdate(Yield &yield, const TranslResult &tr)
void hazardIdRegister()
Used to force ordering on transactions with the same orderId.
void issuePrefetch(Addr addr)
bool smmuTLBLookup(Yield &yield, TranslResult &tr)
void hazard4kHold(Yield &yield)
TranslResult smmuTranslation(Yield &yield)
TranslResult translateStage1And2(Yield &yield, Addr addr)
SMMUTranslationProcess(const std::string &name, SMMUv3 &_smmu, SMMUv3DeviceInterface &_ifc)
void configCacheUpdate(Yield &yield, const TranslContext &tc)
static SMMUTranslRequest prefetch(Addr addr, uint32_t sid, uint32_t ssid)
void hazardIdHold(Yield &yield)
#define GEM5_CLASS_VAR_USED
void sendEvent(Yield &yield, const SMMUEvent &ev)
static SMMUTranslRequest fromPacket(PacketPtr pkt, bool ats=false)
void doReadCD(Yield &yield, ContextDescriptor &cd, const StreamTableEntry &ste, uint32_t sid, uint32_t ssid)
bool configCacheLookup(Yield &yield, TranslContext &tc)
void doReadPTE(Yield &yield, Addr va, Addr addr, void *ptr, unsigned stage, unsigned level)
const std::string name() const
GEM5_CLASS_VAR_USED Tick faultTick
virtual ~SMMUTranslationProcess()
TranslResult walkStage1And2(Yield &yield, Addr addr, const ArmISA::PageTableOps *pt_ops, unsigned level, Addr walkPtr)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
TranslResult walkStage2(Yield &yield, Addr addr, bool final_tr, const ArmISA::PageTableOps *pt_ops, unsigned level, Addr walkPtr)
uint64_t Tick
Tick count type.
virtual void main(Yield &yield)
bool hazard4kCheck()
Used to force ordering on transactions with same (SID, SSID, 4k page) to avoid multiple identical pag...
uint8_t stage1TranslGranule
void beginTransaction(const SMMUTranslRequest &req)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
SMMUTranslRequest request
void walkCacheUpdate(Yield &yield, Addr va, Addr vaMask, Addr pa, unsigned stage, unsigned level, bool leaf, uint8_t permissions)
void ifcTLBUpdate(Yield &yield, const TranslResult &tr)
void completeTransaction(Yield &yield, const TranslResult &tr)
void smmuTLBUpdate(Yield &yield, const TranslResult &tr)
TranslResult combineTranslations(const TranslResult &s1tr, const TranslResult &s2tr) const
void walkCacheLookup(Yield &yield, const WalkCache::Entry *&walkEntry, Addr addr, uint16_t asid, uint16_t vmid, unsigned stage, unsigned level)
CallerType: A reference to an object of this class will be passed to the coroutine task.
bool ifcTLBLookup(Yield &yield, TranslResult &tr, bool &wasPrefetched)
void doReadConfig(Yield &yield, Addr addr, void *ptr, size_t size, uint32_t sid, uint32_t ssid)
bool findConfig(Yield &yield, TranslContext &tc, TranslResult &tr)
TranslResult bypass(Addr addr) const
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
bool microTLBLookup(Yield &yield, TranslResult &tr)
void doReadSTE(Yield &yield, StreamTableEntry &ste, uint32_t sid)
TranslResult translateStage2(Yield &yield, Addr addr, bool final_tr)
uint8_t stage2TranslGranule
void completePrefetch(Yield &yield)
SMMUv3DeviceInterface & ifc
Generated on Sun Jul 30 2023 01:56:55 for gem5 by doxygen 1.8.17