|
gem5 [DEVELOP-FOR-25.0]
|
#include <smmu_v3_transl.hh>
Classes | |
| struct | Fault |
| struct | TranslContext |
| struct | TranslResult |
Public Member Functions | |
| SMMUTranslationProcess (const std::string &name, SMMUv3 &_smmu, SMMUv3DeviceInterface &_ifc) | |
| virtual | ~SMMUTranslationProcess () |
| void | beginTransaction (const SMMUTranslRequest &req) |
| void | resumeTransaction () |
Public Member Functions inherited from gem5::SMMUProcess | |
| SMMUProcess (const std::string &name, SMMUv3 &_smmu) | |
| virtual | ~SMMUProcess () |
| SMMUAction | run (PacketPtr pkt) |
| const std::string | name () const |
Public Member Functions inherited from gem5::Packet::SenderState | |
| SenderState () | |
| virtual | ~SenderState () |
Private Types | |
| enum | FaultType : uint8_t { FAULT_NONE , FAULT_UUT = 0x1 , FAULT_BAD_STREAMID = 0x2 , FAULT_STE_FETCH = 0x3 , FAULT_BAD_STE = 0x4 , FAULT_BAD_ATS_TREQ = 0x5 , FAULT_STREAM_DISABLED = 0x6 , FAULT_TRANSL_FORBIDDEN = 0x7 , FAULT_BAD_SUBSTREAMID = 0x8 , FAULT_CD_FETCH = 0x9 , FAULT_BAD_CD = 0xa , FAULT_WALK_EABT = 0xb , FAULT_TRANSLATION = 0x10 , FAULT_ADDR_SIZE = 0x11 , FAULT_ACCESS = 0x12 , FAULT_PERMISSION = 0x13 , FAULT_TLB_CONFLICT = 0x20 , FAULT_CFG_CONFLICT = 0x21 , FAULT_PAGE_REQUEST = 0x24 , FAULT_VMS_FETCH = 0x25 } |
| enum | FaultClass { CD = 0x0 , TT = 0x1 , IN = 0x2 , RESERVED = 0x3 } |
Private Member Functions | |
| virtual void | main (Yield &yield) |
| TranslResult | bypass (Addr addr) const |
| TranslResult | smmuTranslation (Yield &yield) |
| bool | microTLBLookup (Yield &yield, TranslResult &tr) |
| bool | ifcTLBLookup (Yield &yield, TranslResult &tr, bool &wasPrefetched) |
| bool | smmuTLBLookup (Yield &yield, TranslResult &tr) |
| void | microTLBUpdate (Yield &yield, const TranslResult &tr) |
| void | ifcTLBUpdate (Yield &yield, const TranslResult &tr) |
| void | smmuTLBUpdate (Yield &yield, const TranslResult &tr) |
| bool | configCacheLookup (Yield &yield, TranslContext &tc) |
| void | configCacheUpdate (Yield &yield, const TranslContext &tc) |
| bool | findConfig (Yield &yield, TranslContext &tc, TranslResult &tr) |
| void | walkCacheLookup (Yield &yield, const WalkCache::Entry *&walkEntry, Addr addr, uint16_t asid, uint16_t vmid, unsigned stage, unsigned level) |
| void | walkCacheUpdate (Yield &yield, Addr va, Addr vaMask, Addr pa, unsigned stage, unsigned level, bool leaf, uint8_t permissions) |
| TranslResult | walkStage1And2 (Yield &yield, Addr addr, const ArmISA::PageTableOps *pt_ops, unsigned level, Addr walkPtr) |
| TranslResult | walkStage2 (Yield &yield, Addr addr, bool final_tr, const ArmISA::PageTableOps *pt_ops, unsigned level, Addr walkPtr) |
| TranslResult | translateStage1And2 (Yield &yield, Addr addr) |
| TranslResult | translateStage2 (Yield &yield, Addr addr, bool final_tr) |
| TranslResult | combineTranslations (const TranslResult &s1tr, const TranslResult &s2tr) const |
| bool | hazard4kCheck () |
| Used to force ordering on transactions with same (SID, SSID, 4k page) to avoid multiple identical page-table walks. | |
| void | hazard4kRegister () |
| void | hazard4kHold (Yield &yield) |
| void | hazard4kRelease () |
| void | hazardIdRegister () |
| Used to force ordering on transactions with the same orderId. | |
| void | hazardIdHold (Yield &yield) |
| void | hazardIdRelease () |
| void | issuePrefetch (Addr addr) |
| void | abortTransaction (Yield &yield, const TranslResult &tr) |
| void | completeTransaction (Yield &yield, const TranslResult &tr) |
| void | completePrefetch (Yield &yield) |
| SMMUEvent | generateEvent (const TranslResult &tr) |
| void | sendEvent (Yield &yield, const SMMUEvent &ev) |
| void | sendEventInterrupt (Yield &yield) |
| void | doReadSTE (Yield &yield, StreamTableEntry &ste, uint32_t sid) |
| TranslResult | doReadCD (Yield &yield, ContextDescriptor &cd, const StreamTableEntry &ste, uint32_t sid, uint32_t ssid) |
| void | doReadConfig (Yield &yield, Addr addr, void *ptr, size_t size, uint32_t sid, uint32_t ssid) |
| void | doReadPTE (Yield &yield, Addr va, Addr addr, void *ptr, unsigned stage, unsigned level) |
Private Attributes | |
| SMMUv3DeviceInterface & | ifc |
| SMMUTranslRequest | request |
| TranslContext | context |
| Tick | recvTick |
| GEM5_CLASS_VAR_USED Tick | faultTick |
Additional Inherited Members | |
Public Attributes inherited from gem5::Packet::SenderState | |
| SenderState * | predecessor |
Protected Types inherited from gem5::SMMUProcess | |
| typedef Coroutine::CallerType | Yield |
Protected Member Functions inherited from gem5::SMMUProcess | |
| void | reinit () |
| void | doRead (Yield &yield, Addr addr, void *ptr, size_t size) |
| void | doWrite (Yield &yield, Addr addr, const void *ptr, size_t size) |
| void | doDelay (Yield &yield, Cycles cycles) |
| void | doSleep (Yield &yield) |
| void | doSemaphoreDown (Yield &yield, SMMUSemaphore &sem) |
| void | doSemaphoreUp (SMMUSemaphore &sem) |
| void | doWaitForSignal (Yield &yield, SMMUSignal &sig) |
| void | doBroadcastSignal (SMMUSignal &sig) |
| void | scheduleWakeup (Tick when) |
Protected Attributes inherited from gem5::SMMUProcess | |
| SMMUv3 & | smmu |
Definition at line 70 of file smmu_v3_transl.hh.
|
private |
| Enumerator | |
|---|---|
| CD | |
| TT | |
| IN | |
| RESERVED | |
Definition at line 111 of file smmu_v3_transl.hh.
|
private |
Definition at line 86 of file smmu_v3_transl.hh.
| gem5::SMMUTranslationProcess::SMMUTranslationProcess | ( | const std::string & | name, |
| SMMUv3 & | _smmu, | ||
| SMMUv3DeviceInterface & | _ifc ) |
Definition at line 86 of file smmu_v3_transl.cc.
References ifc, gem5::SMMUProcess::name(), gem5::SMMUProcess::reinit(), and gem5::SMMUProcess::SMMUProcess().
Referenced by issuePrefetch().
|
virtual |
Definition at line 100 of file smmu_v3_transl.cc.
References ifc.
|
private |
Definition at line 1235 of file smmu_v3_transl.cc.
References gem5::ArmISA::a, gem5::ACTION_SEND_RESP, gem5::CR0_EVENTQEN_MASK, DPRINTF, gem5::MipsISA::event, generateEvent(), ifc, panic, request, sendEvent(), and gem5::SMMUProcess::smmu.
Referenced by main().
| void gem5::SMMUTranslationProcess::beginTransaction | ( | const SMMUTranslRequest & | req | ) |
Definition at line 114 of file smmu_v3_transl.cc.
References gem5::SMMUProcess::reinit(), and request.
Referenced by gem5::SMMUv3DeviceInterface::atsRecvAtomic(), gem5::SMMUv3DeviceInterface::atsRecvTimingReq(), issuePrefetch(), gem5::SMMUv3DeviceInterface::recvAtomic(), gem5::SMMUv3DeviceInterface::recvTimingReq(), and resumeTransaction().
|
private |
Definition at line 242 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::X86ISA::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by main(), and smmuTranslation().
|
private |
Definition at line 1036 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by walkStage1And2().
|
private |
Definition at line 1337 of file smmu_v3_transl.cc.
References gem5::ArmISA::a, gem5::ACTION_TERMINATE, and ifc.
Referenced by main().
|
private |
Definition at line 1275 of file smmu_v3_transl.cc.
References gem5::ArmISA::a, gem5::ACTION_SEND_REQ_FINAL, gem5::ACTION_SEND_RESP, gem5::ACTION_SEND_RESP_ATS, gem5::SMMUTranslationProcess::TranslResult::addr, gem5::curTick(), gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), ifc, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), panic, recvTick, request, gem5::Packet::setAddr(), and gem5::SMMUProcess::smmu.
Referenced by main().
|
private |
Definition at line 511 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslContext::asid, gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, gem5::SMMUTranslationProcess::TranslContext::httb, request, gem5::SMMUTranslationProcess::TranslContext::s2t0sz, gem5::SMMUProcess::smmu, gem5::SMMUTranslationProcess::TranslContext::stage1Enable, gem5::SMMUTranslationProcess::TranslContext::stage1TranslGranule, gem5::SMMUTranslationProcess::TranslContext::stage2Enable, gem5::SMMUTranslationProcess::TranslContext::stage2TranslGranule, gem5::SMMUTranslationProcess::TranslContext::t0sz, gem5::SMMUTranslationProcess::TranslContext::ttb0, gem5::SMMUTranslationProcess::TranslContext::ttb1, and gem5::SMMUTranslationProcess::TranslContext::vmid.
Referenced by smmuTranslation().
|
private |
Definition at line 551 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslContext::asid, gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, gem5::SMMUTranslationProcess::TranslContext::httb, request, gem5::SMMUTranslationProcess::TranslContext::s2t0sz, gem5::SMMUProcess::smmu, gem5::SMMUTranslationProcess::TranslContext::stage1Enable, gem5::SMMUTranslationProcess::TranslContext::stage1TranslGranule, gem5::SMMUTranslationProcess::TranslContext::stage2Enable, gem5::SMMUTranslationProcess::TranslContext::stage2TranslGranule, gem5::SMMUTranslationProcess::TranslContext::t0sz, gem5::SMMUTranslationProcess::TranslContext::ttb0, gem5::SMMUTranslationProcess::TranslContext::ttb1, and gem5::SMMUTranslationProcess::TranslContext::vmid.
Referenced by smmuTranslation().
|
private |
Definition at line 1496 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::bits(), CD, gem5::ArmISA::cd, gem5::SMMUTranslationProcess::Fault::clss, context, doReadConfig(), DPRINTF, gem5::SMMUTranslationProcess::TranslResult::fault, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), panic, gem5::StreamTableEntry::s1cdmax, gem5::StreamTableEntry::s1ctxptr, gem5::StreamTableEntry::s1fmt, gem5::SMMUProcess::smmu, gem5::ST_CD_ADDR_SHIFT, gem5::STAGE1_CFG_1L, gem5::STAGE1_CFG_2L_4K, gem5::STAGE1_CFG_2L_64K, and translateStage2().
Referenced by findConfig().
|
private |
Definition at line 1576 of file smmu_v3_transl.cc.
References gem5::X86ISA::addr, and gem5::SMMUProcess::doRead().
Referenced by doReadCD(), and doReadSTE().
|
private |
Definition at line 1584 of file smmu_v3_transl.cc.
References gem5::X86ISA::addr, gem5::RiscvISA::base, gem5::SMMUProcess::doRead(), gem5::X86ISA::level, gem5::ArmISA::mask, and gem5::ArmISA::va.
Referenced by walkStage1And2(), and walkStage2().
|
private |
Definition at line 1428 of file smmu_v3_transl.cc.
References gem5::StreamTableEntry::_pad, gem5::bits(), doReadConfig(), DPRINTF, gem5::MipsISA::index, panic, gem5::SMMUProcess::smmu, gem5::ArmISA::span, gem5::ST_CFG_FMT_2LEVEL, gem5::ST_CFG_FMT_LINEAR, gem5::ST_CFG_FMT_MASK, gem5::ST_CFG_SIZE_MASK, gem5::ST_CFG_SPLIT_MASK, gem5::ST_CFG_SPLIT_SHIFT, gem5::ST_L2_ADDR_MASK, gem5::ST_L2_SPAN_MASK, and gem5::VMT_BASE_ADDR_MASK.
Referenced by findConfig().
|
private |
Definition at line 583 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslContext::asid, gem5::ArmISA::cd, gem5::CD_TTB_SHIFT, gem5::StreamTableEntry::config, context, doReadCD(), doReadSTE(), gem5::SMMUTranslationProcess::TranslContext::httb, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), panic, request, gem5::SMMUTranslationProcess::TranslContext::s2t0sz, gem5::StreamTableEntry::s2t0sz, gem5::StreamTableEntry::s2tg, gem5::StreamTableEntry::s2ttb, gem5::StreamTableEntry::s2vmid, gem5::SMMUTranslationProcess::TranslContext::stage1Enable, gem5::SMMUTranslationProcess::TranslContext::stage1TranslGranule, gem5::SMMUTranslationProcess::TranslContext::stage2Enable, gem5::SMMUTranslationProcess::TranslContext::stage2TranslGranule, gem5::STE_CONFIG_BYPASS, gem5::STE_CONFIG_STAGE1_AND_2, gem5::STE_CONFIG_STAGE1_ONLY, gem5::STE_CONFIG_STAGE2_ONLY, gem5::STE_S2TTB_SHIFT, gem5::SMMUTranslationProcess::TranslContext::t0sz, gem5::TRANS_GRANULE_INVALID, gem5::SMMUTranslationProcess::TranslContext::ttb0, gem5::SMMUTranslationProcess::TranslContext::ttb1, and gem5::SMMUTranslationProcess::TranslContext::vmid.
Referenced by smmuTranslation().
|
private |
Definition at line 1350 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::Fault::clss, gem5::MipsISA::event, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_PERMISSION, FAULT_TRANSLATION, gem5::SMMUTranslationProcess::Fault::ipa, panic, request, gem5::SMMUTranslationProcess::Fault::stage2, and gem5::SMMUTranslationProcess::Fault::type.
Referenced by abortTransaction().
|
private |
Used to force ordering on transactions with same (SID, SSID, 4k page) to avoid multiple identical page-table walks.
Definition at line 1054 of file smmu_v3_transl.cc.
Referenced by main().
|
private |
Definition at line 1080 of file smmu_v3_transl.cc.
References gem5::SMMUProcess::doWaitForSignal(), DPRINTF, ifc, and request.
Referenced by main().
|
private |
|
private |
Definition at line 1118 of file smmu_v3_transl.cc.
References gem5::SMMUProcess::doBroadcastSignal(), DPRINTF, ifc, panic, and request.
Referenced by main().
|
private |
Definition at line 1153 of file smmu_v3_transl.cc.
References gem5::SMMUProcess::doWaitForSignal(), DPRINTF, ifc, gem5::AMBA::orderId(), and request.
Referenced by main().
|
private |
Used to force ordering on transactions with the same orderId.
This attempts to model AXI IDs.
Definition at line 1138 of file smmu_v3_transl.cc.
References DPRINTF, ifc, gem5::AMBA::orderId(), request, and gem5::SMMU_MAX_TRANS_ID.
Referenced by main().
|
private |
Definition at line 1192 of file smmu_v3_transl.cc.
References gem5::SMMUProcess::doBroadcastSignal(), DPRINTF, ifc, gem5::AMBA::orderId(), panic, and request.
Referenced by main().
|
private |
Definition at line 347 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, ifc, request, and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by main().
|
private |
Definition at line 445 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, gem5::SMMUTLB::ALLOC_ANY_BUT_LAST_WAY, gem5::SMMUTLB::ALLOC_ANY_WAY, gem5::SMMUTLB::ALLOC_LAST_WAY, context, gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, ifc, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), request, and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by main().
|
private |
Definition at line 1217 of file smmu_v3_transl.cc.
References gem5::X86ISA::addr, beginTransaction(), gem5::csprintf(), ifc, gem5::SMMUProcess::name(), gem5::SMMUTranslRequest::prefetch(), request, gem5::SMMUProcess::scheduleWakeup(), gem5::SMMUProcess::smmu, and SMMUTranslationProcess().
Referenced by main().
|
privatevirtual |
Implements gem5::SMMUProcess.
Definition at line 140 of file smmu_v3_transl.cc.
References gem5::ArmISA::a, abortTransaction(), gem5::ACTION_INITIAL_NOP, bypass(), completePrefetch(), completeTransaction(), gem5::CR0_SMMUEN_MASK, gem5::curTick(), gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), hazard4kCheck(), hazard4kHold(), hazard4kRegister(), hazard4kRelease(), hazardIdHold(), hazardIdRegister(), hazardIdRelease(), ifc, ifcTLBLookup(), ifcTLBUpdate(), gem5::SMMUTranslationProcess::TranslResult::isFaulting(), issuePrefetch(), microTLBLookup(), microTLBUpdate(), panic, recvTick, request, gem5::SMMUProcess::smmu, and smmuTranslation().
|
private |
Definition at line 316 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, ifc, request, and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by main().
|
private |
Definition at line 413 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, gem5::SMMUTLB::ALLOC_ANY_WAY, context, gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, ifc, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), request, and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by main().
| void gem5::SMMUTranslationProcess::resumeTransaction | ( | ) |
Definition at line 122 of file smmu_v3_transl.cc.
References beginTransaction(), gem5::curTick(), DPRINTF, faultTick, request, and gem5::SMMUProcess::smmu.
Definition at line 1376 of file smmu_v3_transl.cc.
References gem5::SMMUEvent::data, gem5::SMMUProcess::doWrite(), DPRINTF, gem5::ArmISA::mask, panic, gem5::SMMUEvent::print(), gem5::Q_BASE_ADDR_MASK, gem5::Q_BASE_SIZE_MASK, sendEventInterrupt(), and gem5::SMMUProcess::smmu.
Referenced by abortTransaction().
|
private |
Definition at line 1409 of file smmu_v3_transl.cc.
References gem5::SMMUProcess::doWrite(), DPRINTF, gem5::E_BASE_ADDR_MASK, and gem5::SMMUProcess::smmu.
Referenced by sendEvent().
|
private |
Definition at line 382 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, context, gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, request, gem5::SMMUProcess::smmu, and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by smmuTranslation().
|
private |
Definition at line 482 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, context, gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), request, gem5::SMMUProcess::smmu, and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by smmuTranslation().
|
private |
Definition at line 254 of file smmu_v3_transl.cc.
References bypass(), configCacheLookup(), configCacheUpdate(), context, gem5::curTick(), gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), findConfig(), gem5::SMMUTranslationProcess::TranslResult::isFaulting(), request, gem5::SMMUProcess::smmu, smmuTLBLookup(), smmuTLBUpdate(), translateStage1And2(), and translateStage2().
Referenced by main().
|
private |
Definition at line 890 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::X86ISA::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, context, DPRINTF, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, gem5::ArmISA::getPageTableOps(), gem5::ArmISA::GrainMap_tg0, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), gem5::WalkCache::Entry::leaf, gem5::X86ISA::level, gem5::WalkCache::Entry::pa, gem5::WalkCache::Entry::permissions, translateStage2(), gem5::WalkCache::Entry::vaMask, walkCacheLookup(), walkStage1And2(), and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by smmuTranslation().
|
private |
Definition at line 947 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::X86ISA::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, context, gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, gem5::ArmISA::getPageTableOps(), gem5::ArmISA::GrainMap_tg0, gem5::IPACache::Entry::ipaMask, gem5::SMMUTranslationProcess::TranslResult::isFaulting(), gem5::WalkCache::Entry::leaf, gem5::X86ISA::level, gem5::IPACache::Entry::pa, gem5::WalkCache::Entry::pa, gem5::IPACache::Entry::permissions, gem5::WalkCache::Entry::permissions, gem5::SMMUProcess::smmu, gem5::WalkCache::Entry::vaMask, walkCacheLookup(), walkStage2(), and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by doReadCD(), smmuTranslation(), translateStage1And2(), and walkStage1And2().
|
private |
Definition at line 653 of file smmu_v3_transl.cc.
References gem5::X86ISA::addr, gem5::ArmISA::asid, context, gem5::SMMUProcess::doDelay(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::getPageTableOps(), gem5::ArmISA::GrainMap_tg0, gem5::X86ISA::level, gem5::WalkCache::Entry::pa, and gem5::SMMUProcess::smmu.
Referenced by translateStage1And2(), and translateStage2().
|
private |
Definition at line 695 of file smmu_v3_transl.cc.
References context, gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::ArmISA::e, gem5::X86ISA::level, gem5::ArmISA::pa, gem5::SMMUProcess::smmu, and gem5::ArmISA::va.
Referenced by walkStage1And2(), and walkStage2().
|
private |
Definition at line 736 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::X86ISA::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, gem5::SMMUTranslationProcess::Fault::clss, combineTranslations(), context, gem5::SMMUProcess::doDelay(), doReadPTE(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, FAULT_PERMISSION, FAULT_TRANSLATION, IN, gem5::ArmISA::PageTableOps::index(), gem5::SMMUTranslationProcess::TranslResult::isFaulting(), gem5::ArmISA::PageTableOps::isLeaf(), gem5::ArmISA::PageTableOps::isValid(), gem5::ArmISA::PageTableOps::isWritable(), gem5::ArmISA::PageTableOps::lastLevel(), gem5::X86ISA::level, gem5::ArmISA::PageTableOps::nextLevelPointer(), gem5::ArmISA::PageTableOps::pageMask(), request, gem5::SMMUProcess::smmu, translateStage2(), walkCacheUpdate(), gem5::ArmISA::PageTableOps::walkMask(), and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by translateStage1And2().
|
private |
Definition at line 823 of file smmu_v3_transl.cc.
References gem5::SMMUTranslationProcess::TranslResult::addr, gem5::X86ISA::addr, gem5::SMMUTranslationProcess::TranslResult::addrMask, context, gem5::SMMUProcess::doDelay(), doReadPTE(), gem5::SMMUProcess::doSemaphoreDown(), gem5::SMMUProcess::doSemaphoreUp(), DPRINTF, gem5::SMMUTranslationProcess::TranslResult::fault, FAULT_NONE, FAULT_PERMISSION, FAULT_TRANSLATION, gem5::ArmISA::PageTableOps::index(), gem5::ArmISA::PageTableOps::isLeaf(), gem5::ArmISA::PageTableOps::isValid(), gem5::ArmISA::PageTableOps::isWritable(), gem5::ArmISA::PageTableOps::lastLevel(), gem5::X86ISA::level, gem5::ArmISA::PageTableOps::nextLevelPointer(), gem5::ArmISA::PageTableOps::pageMask(), request, gem5::SMMUProcess::smmu, TT, walkCacheUpdate(), gem5::ArmISA::PageTableOps::walkMask(), and gem5::SMMUTranslationProcess::TranslResult::writable.
Referenced by translateStage2().
|
private |
Definition at line 159 of file smmu_v3_transl.hh.
Referenced by doReadCD(), findConfig(), ifcTLBUpdate(), microTLBUpdate(), smmuTLBLookup(), smmuTLBUpdate(), smmuTranslation(), translateStage1And2(), translateStage2(), walkCacheLookup(), walkCacheUpdate(), walkStage1And2(), and walkStage2().
|
private |
Definition at line 162 of file smmu_v3_transl.hh.
Referenced by resumeTransaction().
|
private |
Definition at line 156 of file smmu_v3_transl.hh.
Referenced by abortTransaction(), completePrefetch(), completeTransaction(), hazard4kCheck(), hazard4kHold(), hazard4kRegister(), hazard4kRelease(), hazardIdHold(), hazardIdRegister(), hazardIdRelease(), ifcTLBLookup(), ifcTLBUpdate(), issuePrefetch(), main(), microTLBLookup(), microTLBUpdate(), SMMUTranslationProcess(), and ~SMMUTranslationProcess().
|
private |
Definition at line 161 of file smmu_v3_transl.hh.
Referenced by completeTransaction(), and main().
|
private |
Definition at line 158 of file smmu_v3_transl.hh.
Referenced by abortTransaction(), beginTransaction(), completeTransaction(), configCacheLookup(), configCacheUpdate(), findConfig(), generateEvent(), hazard4kCheck(), hazard4kHold(), hazard4kRegister(), hazard4kRelease(), hazardIdHold(), hazardIdRegister(), hazardIdRelease(), ifcTLBLookup(), ifcTLBUpdate(), issuePrefetch(), main(), microTLBLookup(), microTLBUpdate(), resumeTransaction(), smmuTLBLookup(), smmuTLBUpdate(), smmuTranslation(), walkStage1And2(), and walkStage2().