gem5 v24.0.0.0
|
#include <smmu_v3_proc.hh>
Public Member Functions | |
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 () |
Protected Types | |
typedef Coroutine::CallerType | Yield |
Protected Member Functions | |
void | reinit () |
virtual void | main (Yield &yield)=0 |
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 | |
SMMUv3 & | smmu |
Private Types | |
typedef gem5::Coroutine< PacketPtr, SMMUAction > | Coroutine |
Private Member Functions | |
void | wakeup () |
Private Attributes | |
Coroutine * | coroutine |
std::string | myName |
Additional Inherited Members | |
Public Attributes inherited from gem5::Packet::SenderState | |
SenderState * | predecessor |
Definition at line 97 of file smmu_v3_proc.hh.
|
private |
Definition at line 100 of file smmu_v3_proc.hh.
|
protected |
Definition at line 108 of file smmu_v3_proc.hh.
gem5::SMMUProcess::SMMUProcess | ( | const std::string & | name, |
SMMUv3 & | _smmu ) |
Definition at line 49 of file smmu_v3_proc.cc.
|
virtual |
Definition at line 55 of file smmu_v3_proc.cc.
References coroutine.
|
protected |
Definition at line 185 of file smmu_v3_proc.cc.
References gem5::curTick(), and gem5::SMMUSignal::waiting.
Referenced by gem5::SMMUTranslationProcess::hazard4kRelease(), and gem5::SMMUTranslationProcess::hazardIdRelease().
Definition at line 131 of file smmu_v3_proc.cc.
References gem5::ArmISA::a, gem5::ACTION_DELAY, gem5::Clocked::clockEdge(), gem5::Clocked::clockPeriod(), gem5::System::isTimingMode(), scheduleWakeup(), smmu, gem5::SMMUv3::system, and gem5::SMMUAction::type.
Referenced by gem5::SMMUTranslationProcess::completeTransaction(), gem5::SMMUTranslationProcess::configCacheLookup(), doRead(), doWrite(), gem5::SMMUTranslationProcess::ifcTLBLookup(), gem5::SMMUTranslationProcess::main(), gem5::SMMUTranslationProcess::microTLBLookup(), gem5::SMMUTranslationProcess::smmuTLBLookup(), gem5::SMMUTranslationProcess::smmuTranslation(), gem5::SMMUTranslationProcess::translateStage2(), gem5::SMMUTranslationProcess::walkCacheLookup(), gem5::SMMUTranslationProcess::walkStage1And2(), and gem5::SMMUTranslationProcess::walkStage2().
Definition at line 75 of file smmu_v3_proc.cc.
References gem5::ArmISA::a, gem5::ACTION_SEND_REQ, gem5::X86ISA::addr, gem5::context_switch_task_id::DMA, doDelay(), doSemaphoreDown(), doSemaphoreUp(), gem5::Coroutine< Arg, Ret >::CallerType::get(), gem5::Packet::getSize(), gem5::MemCmd::ReadReq, gem5::SMMUv3::requestorId, gem5::SMMUv3::requestPortSem, smmu, and gem5::SMMUAction::type.
Referenced by gem5::SMMUTranslationProcess::doReadConfig(), gem5::SMMUTranslationProcess::doReadPTE(), and gem5::SMMUCommandExecProcess::main().
|
protected |
Definition at line 151 of file smmu_v3_proc.cc.
References gem5::SMMUSemaphore::count, doSleep(), and gem5::SMMUSemaphore::queue.
Referenced by gem5::SMMUTranslationProcess::completeTransaction(), gem5::SMMUTranslationProcess::configCacheLookup(), gem5::SMMUTranslationProcess::configCacheUpdate(), doRead(), doWrite(), gem5::SMMUTranslationProcess::ifcTLBLookup(), gem5::SMMUTranslationProcess::ifcTLBUpdate(), gem5::SMMUTranslationProcess::main(), gem5::SMMUTranslationProcess::microTLBLookup(), gem5::SMMUTranslationProcess::microTLBUpdate(), gem5::SMMUTranslationProcess::smmuTLBLookup(), gem5::SMMUTranslationProcess::smmuTLBUpdate(), gem5::SMMUTranslationProcess::smmuTranslation(), gem5::SMMUTranslationProcess::translateStage2(), gem5::SMMUTranslationProcess::walkCacheLookup(), gem5::SMMUTranslationProcess::walkCacheUpdate(), gem5::SMMUTranslationProcess::walkStage1And2(), and gem5::SMMUTranslationProcess::walkStage2().
|
protected |
Definition at line 163 of file smmu_v3_proc.cc.
References gem5::SMMUSemaphore::count, gem5::curTick(), gem5::SMMUSemaphore::queue, and scheduleWakeup().
Referenced by gem5::SMMUTranslationProcess::completeTransaction(), gem5::SMMUTranslationProcess::configCacheLookup(), gem5::SMMUTranslationProcess::configCacheUpdate(), doRead(), doWrite(), gem5::SMMUTranslationProcess::ifcTLBLookup(), gem5::SMMUTranslationProcess::ifcTLBUpdate(), gem5::SMMUTranslationProcess::main(), gem5::SMMUTranslationProcess::microTLBLookup(), gem5::SMMUTranslationProcess::microTLBUpdate(), gem5::SMMUTranslationProcess::smmuTLBLookup(), gem5::SMMUTranslationProcess::smmuTLBUpdate(), gem5::SMMUTranslationProcess::smmuTranslation(), gem5::SMMUTranslationProcess::translateStage2(), gem5::SMMUTranslationProcess::walkCacheLookup(), gem5::SMMUTranslationProcess::walkCacheUpdate(), gem5::SMMUTranslationProcess::walkStage1And2(), and gem5::SMMUTranslationProcess::walkStage2().
|
protected |
Definition at line 143 of file smmu_v3_proc.cc.
References gem5::ArmISA::a, gem5::ACTION_SLEEP, and gem5::SMMUAction::type.
Referenced by doSemaphoreDown(), doWaitForSignal(), and gem5::SMMUCommandExecProcess::main().
|
protected |
Definition at line 178 of file smmu_v3_proc.cc.
References doSleep(), and gem5::SMMUSignal::waiting.
Referenced by gem5::SMMUTranslationProcess::hazard4kHold(), and gem5::SMMUTranslationProcess::hazardIdHold().
|
protected |
Definition at line 104 of file smmu_v3_proc.cc.
References gem5::ArmISA::a, gem5::ACTION_SEND_REQ, gem5::X86ISA::addr, gem5::context_switch_task_id::DMA, doDelay(), doSemaphoreDown(), doSemaphoreUp(), gem5::Coroutine< Arg, Ret >::CallerType::get(), gem5::SMMUv3::requestorId, gem5::SMMUv3::requestPortSem, gem5::SMMUv3::requestPortWidth, smmu, gem5::SMMUAction::type, and gem5::MemCmd::WriteReq.
Referenced by gem5::SMMUTranslationProcess::sendEvent(), and gem5::SMMUTranslationProcess::sendEventInterrupt().
|
protectedpure virtual |
Implemented in gem5::SMMUCommandExecProcess, and gem5::SMMUTranslationProcess.
Referenced by reinit().
|
inline |
Definition at line 135 of file smmu_v3_proc.hh.
References myName.
Referenced by gem5::SMMUTranslationProcess::issuePrefetch().
|
protected |
Definition at line 67 of file smmu_v3_proc.cc.
References coroutine, and main().
Referenced by gem5::SMMUTranslationProcess::beginTransaction(), gem5::SMMUCommandExecProcess::SMMUCommandExecProcess(), and gem5::SMMUTranslationProcess::SMMUTranslationProcess().
SMMUAction gem5::SMMUProcess::run | ( | PacketPtr | pkt | ) |
Definition at line 208 of file smmu_v3_proc.cc.
References coroutine.
Referenced by gem5::SMMUv3::runProcessAtomic(), and gem5::SMMUv3::runProcessTiming().
|
protected |
Definition at line 200 of file smmu_v3_proc.cc.
References gem5::MipsISA::ep, gem5::EventManager::schedule(), and smmu.
Referenced by doDelay(), doSemaphoreUp(), and gem5::SMMUTranslationProcess::issuePrefetch().
|
private |
Definition at line 61 of file smmu_v3_proc.cc.
References gem5::SMMUv3::runProcess(), and smmu.
|
private |
Definition at line 102 of file smmu_v3_proc.hh.
Referenced by reinit(), run(), and ~SMMUProcess().
|
private |
Definition at line 103 of file smmu_v3_proc.hh.
Referenced by name().
|
protected |
Definition at line 110 of file smmu_v3_proc.hh.
Referenced by gem5::SMMUTranslationProcess::abortTransaction(), gem5::SMMUTranslationProcess::completeTransaction(), gem5::SMMUTranslationProcess::configCacheLookup(), gem5::SMMUTranslationProcess::configCacheUpdate(), doDelay(), doRead(), gem5::SMMUTranslationProcess::doReadCD(), gem5::SMMUTranslationProcess::doReadSTE(), doWrite(), gem5::SMMUTranslationProcess::issuePrefetch(), gem5::SMMUCommandExecProcess::main(), gem5::SMMUTranslationProcess::main(), gem5::SMMUTranslationProcess::resumeTransaction(), scheduleWakeup(), gem5::SMMUTranslationProcess::sendEvent(), gem5::SMMUTranslationProcess::sendEventInterrupt(), gem5::SMMUTranslationProcess::smmuTLBLookup(), gem5::SMMUTranslationProcess::smmuTLBUpdate(), gem5::SMMUTranslationProcess::smmuTranslation(), gem5::SMMUTranslationProcess::translateStage2(), wakeup(), gem5::SMMUTranslationProcess::walkCacheLookup(), gem5::SMMUTranslationProcess::walkCacheUpdate(), gem5::SMMUTranslationProcess::walkStage1And2(), and gem5::SMMUTranslationProcess::walkStage2().