gem5
v20.1.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 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 m5::Coroutine< PacketPtr, SMMUAction > | Coroutine |
Private Member Functions | |
void | wakeup () |
Private Attributes | |
Coroutine * | coroutine |
std::string | myName |
Additional Inherited Members | |
Public Attributes inherited from Packet::SenderState | |
SenderState * | predecessor |
Definition at line 93 of file smmu_v3_proc.hh.
|
private |
Definition at line 96 of file smmu_v3_proc.hh.
|
protected |
Definition at line 104 of file smmu_v3_proc.hh.
SMMUProcess::SMMUProcess | ( | const std::string & | name, |
SMMUv3 & | _smmu | ||
) |
Definition at line 43 of file smmu_v3_proc.cc.
Referenced by scheduleWakeup().
|
virtual |
Definition at line 49 of file smmu_v3_proc.cc.
References coroutine.
|
protected |
Definition at line 179 of file smmu_v3_proc.cc.
References curTick(), and SMMUSignal::waiting.
Referenced by SMMUTranslationProcess::hazard4kRelease(), and SMMUTranslationProcess::hazardIdRelease().
Definition at line 125 of file smmu_v3_proc.cc.
References ArmISA::a, ACTION_DELAY, Clocked::clockEdge(), Clocked::clockPeriod(), System::isTimingMode(), scheduleWakeup(), smmu, and SMMUv3::system.
Referenced by SMMUTranslationProcess::completeTransaction(), SMMUTranslationProcess::configCacheLookup(), doRead(), doWrite(), SMMUTranslationProcess::ifcTLBLookup(), SMMUTranslationProcess::main(), SMMUTranslationProcess::microTLBLookup(), SMMUTranslationProcess::smmuTLBLookup(), SMMUTranslationProcess::smmuTranslation(), SMMUTranslationProcess::translateStage2(), SMMUTranslationProcess::walkCacheLookup(), SMMUTranslationProcess::walkStage1And2(), and SMMUTranslationProcess::walkStage2().
Definition at line 69 of file smmu_v3_proc.cc.
References ArmISA::a, ACTION_SEND_REQ, addr, ContextSwitchTaskId::DMA, doDelay(), doSemaphoreDown(), doSemaphoreUp(), m5::Coroutine< Arg, Ret >::CallerType::get(), Packet::getSize(), MemCmd::ReadReq, SMMUv3::requestorId, SMMUv3::requestPortSem, and smmu.
Referenced by SMMUTranslationProcess::doReadConfig(), SMMUTranslationProcess::doReadPTE(), and SMMUCommandExecProcess::main().
|
protected |
Definition at line 145 of file smmu_v3_proc.cc.
References SMMUSemaphore::count, doSleep(), and SMMUSemaphore::queue.
Referenced by SMMUTranslationProcess::completeTransaction(), SMMUTranslationProcess::configCacheLookup(), SMMUTranslationProcess::configCacheUpdate(), doRead(), doWrite(), SMMUTranslationProcess::ifcTLBLookup(), SMMUTranslationProcess::ifcTLBUpdate(), SMMUTranslationProcess::main(), SMMUTranslationProcess::microTLBLookup(), SMMUTranslationProcess::microTLBUpdate(), SMMUTranslationProcess::smmuTLBLookup(), SMMUTranslationProcess::smmuTLBUpdate(), SMMUTranslationProcess::smmuTranslation(), SMMUTranslationProcess::translateStage2(), SMMUTranslationProcess::walkCacheLookup(), SMMUTranslationProcess::walkCacheUpdate(), SMMUTranslationProcess::walkStage1And2(), and SMMUTranslationProcess::walkStage2().
|
protected |
Definition at line 157 of file smmu_v3_proc.cc.
References SMMUSemaphore::count, curTick(), SMMUSemaphore::queue, and scheduleWakeup().
Referenced by SMMUTranslationProcess::completeTransaction(), SMMUTranslationProcess::configCacheLookup(), SMMUTranslationProcess::configCacheUpdate(), doRead(), doWrite(), SMMUTranslationProcess::ifcTLBLookup(), SMMUTranslationProcess::ifcTLBUpdate(), SMMUTranslationProcess::main(), SMMUTranslationProcess::microTLBLookup(), SMMUTranslationProcess::microTLBUpdate(), SMMUTranslationProcess::smmuTLBLookup(), SMMUTranslationProcess::smmuTLBUpdate(), SMMUTranslationProcess::smmuTranslation(), SMMUTranslationProcess::translateStage2(), SMMUTranslationProcess::walkCacheLookup(), SMMUTranslationProcess::walkCacheUpdate(), SMMUTranslationProcess::walkStage1And2(), and SMMUTranslationProcess::walkStage2().
|
protected |
Definition at line 137 of file smmu_v3_proc.cc.
References ArmISA::a, and ACTION_SLEEP.
Referenced by doSemaphoreDown(), doWaitForSignal(), and SMMUCommandExecProcess::main().
|
protected |
Definition at line 172 of file smmu_v3_proc.cc.
References doSleep(), and SMMUSignal::waiting.
Referenced by SMMUTranslationProcess::hazard4kHold(), and SMMUTranslationProcess::hazardIdHold().
Definition at line 98 of file smmu_v3_proc.cc.
References ArmISA::a, ACTION_SEND_REQ, addr, ContextSwitchTaskId::DMA, doDelay(), doSemaphoreDown(), doSemaphoreUp(), m5::Coroutine< Arg, Ret >::CallerType::get(), SMMUv3::requestorId, SMMUv3::requestPortSem, SMMUv3::requestPortWidth, smmu, and MemCmd::WriteReq.
Referenced by SMMUTranslationProcess::sendEvent().
|
protectedpure virtual |
Implemented in SMMUTranslationProcess, and SMMUCommandExecProcess.
Referenced by reinit().
|
inline |
Definition at line 131 of file smmu_v3_proc.hh.
References myName.
Referenced by SMMUTranslationProcess::issuePrefetch().
|
protected |
Definition at line 61 of file smmu_v3_proc.cc.
References coroutine, and main().
Referenced by SMMUTranslationProcess::beginTransaction(), SMMUCommandExecProcess::SMMUCommandExecProcess(), and SMMUTranslationProcess::SMMUTranslationProcess().
SMMUAction SMMUProcess::run | ( | PacketPtr | pkt | ) |
Definition at line 203 of file smmu_v3_proc.cc.
References coroutine.
Referenced by SMMUv3::runProcessAtomic(), and SMMUv3::runProcessTiming().
|
protected |
Definition at line 194 of file smmu_v3_proc.cc.
References MipsISA::ep, EventManager::schedule(), smmu, SMMUProcess(), and wakeup().
Referenced by doDelay(), doSemaphoreUp(), and SMMUTranslationProcess::issuePrefetch().
|
private |
Definition at line 55 of file smmu_v3_proc.cc.
References SMMUv3::runProcess(), and smmu.
Referenced by scheduleWakeup().
|
private |
Definition at line 98 of file smmu_v3_proc.hh.
Referenced by reinit(), run(), and ~SMMUProcess().
|
private |
Definition at line 99 of file smmu_v3_proc.hh.
Referenced by name().
|
protected |
Definition at line 106 of file smmu_v3_proc.hh.
Referenced by SMMUTranslationProcess::completeTransaction(), SMMUTranslationProcess::configCacheLookup(), SMMUTranslationProcess::configCacheUpdate(), doDelay(), doRead(), SMMUTranslationProcess::doReadCD(), SMMUTranslationProcess::doReadSTE(), doWrite(), SMMUTranslationProcess::issuePrefetch(), SMMUCommandExecProcess::main(), SMMUTranslationProcess::main(), SMMUTranslationProcess::resumeTransaction(), scheduleWakeup(), SMMUTranslationProcess::sendEvent(), SMMUTranslationProcess::smmuTLBLookup(), SMMUTranslationProcess::smmuTLBUpdate(), SMMUTranslationProcess::smmuTranslation(), SMMUTranslationProcess::translateStage1And2(), SMMUTranslationProcess::translateStage2(), wakeup(), SMMUTranslationProcess::walkCacheLookup(), SMMUTranslationProcess::walkCacheUpdate(), SMMUTranslationProcess::walkStage1And2(), and SMMUTranslationProcess::walkStage2().