38 #ifndef __DEV_ARM_SMMU_V3_HH__ 39 #define __DEV_ARM_SMMU_V3_HH__ 57 #include "params/SMMUv3.hh" 171 virtual void init()
override;
void unserialize(CheckpointIn &cp) override
Unserialize an object.
std::queue< SMMUAction > packetsTableWalkToRetry
Ports are used to interface objects to each other.
bool inSecureBlock(uint32_t offs) const
Cycles is a wrapper class for representing cycle counts, i.e.
SMMUAction runProcess(SMMUProcess *proc, PacketPtr pkt)
Stats::Distribution translationTimeDist
std::queue< SMMUAction > packetsToRetry
const PortID InvalidPortID
virtual void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
void serialize(CheckpointOut &cp) const override
Serialize an object.
Tick readControl(PacketPtr pkt)
Tick writeControl(PacketPtr pkt)
void scheduleSlaveRetries()
const unsigned walkCacheS1Levels
const unsigned masterPortWidth
EventWrapper< SMMUv3, &SMMUv3::processCommands > processCommandsEvent
Stats::Scalar steL1Fetches
void processCommand(const SMMUCommand &cmd)
Tick slaveRecvAtomic(PacketPtr pkt, PortID id)
Declaration of Statistics objects.
This is a simple scalar statistic, like a counter.
DrainState
Object drain/handover states.
virtual Port & getPort(const std::string &name, PortID id=InvalidPortID) override
Get a port with a given name and index.
std::vector< SMMUv3SlaveInterface * > slaveInterfaces
Stats::Scalar cdL1Fetches
void masterRecvReqRetry()
SMMUControlPort controlPort
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
void masterTableWalkRecvReqRetry()
SMMUCommandExecProcess commandExecutor
uint64_t Tick
Tick count type.
Stats::Distribution ptwTimeDist
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
A simple distribution stat.
ClockedObject declaration and implementation.
bool masterRecvTimingResp(PacketPtr pkt)
DrainState drain() override
Notify an object that it needs to drain its state.
SMMUSemaphore masterPortSem
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
SMMUMasterPort masterPort
virtual const std::string name() const
bool masterTableWalkRecvTimingResp(PacketPtr pkt)
SMMUAction runProcessTiming(SMMUProcess *proc, PacketPtr pkt)
Declaration of the Packet class.
std::ostream CheckpointOut
const PageTableOps * getPageTableOps(uint8_t trans_granule)
const bool walkCacheNonfinalEnable
const bool walkCacheEnable
bool slaveRecvTimingReq(PacketPtr pkt, PortID id)
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
const bool ipaCacheEnable
const unsigned walkCacheS2Levels
const bool configCacheEnable
SMMUAction runProcessAtomic(SMMUProcess *proc, PacketPtr pkt)
virtual void regStats() override
Callback to set stat parameters.
SMMUMasterTableWalkPort masterTableWalkPort