Go to the documentation of this file.
38 #ifndef __DEV_ARM_SMMU_V3_HH__
39 #define __DEV_ARM_SMMU_V3_HH__
57 #include "params/SMMUv3.hh"
171 virtual void init()
override;
const unsigned walkCacheS2Levels
Tick recvAtomic(PacketPtr pkt, PortID id)
const unsigned walkCacheS1Levels
EventWrapper< SMMUv3, &SMMUv3::processCommands > processCommandsEvent
const bool ipaCacheEnable
const PortID InvalidPortID
const bool configCacheEnable
bool recvTimingResp(PacketPtr pkt)
const PageTableOps * getPageTableOps(uint8_t trans_granule)
uint64_t Tick
Tick count type.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
SMMUAction runProcess(SMMUProcess *proc, PacketPtr pkt)
void scheduleDeviceRetries()
SMMUAction runProcessTiming(SMMUProcess *proc, PacketPtr pkt)
std::queue< SMMUAction > packetsTableWalkToRetry
const bool walkCacheEnable
SMMURequestPort requestPort
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
DrainState
Object drain/handover states.
SMMUAction runProcessAtomic(SMMUProcess *proc, PacketPtr pkt)
This is a simple scalar statistic, like a counter.
bool recvTimingReq(PacketPtr pkt, PortID id)
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
const RequestorID requestorId
bool inSecureBlock(uint32_t offs) const
Ports are used to interface objects to each other.
Stats::Distribution translationTimeDist
SMMUCommandExecProcess commandExecutor
const unsigned requestPortWidth
SMMUTableWalkPort tableWalkPort
Tick readControl(PacketPtr pkt)
std::vector< SMMUv3DeviceInterface * > deviceInterfaces
std::queue< SMMUAction > packetsToRetry
SMMUControlPort controlPort
A simple distribution stat.
void serialize(CheckpointOut &cp) const override
Serialize an object.
virtual const std::string name() const
DrainState drain() override
Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are pa...
SMMUSemaphore requestPortSem
void tableWalkRecvReqRetry()
Stats::Scalar steL1Fetches
virtual void regStats() override
Callback to set stat parameters.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Tick writeControl(PacketPtr pkt)
Cycles is a wrapper class for representing cycle counts, i.e.
virtual Port & getPort(const std::string &name, PortID id=InvalidPortID) override
Get a port with a given name and index.
std::ostream CheckpointOut
virtual void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
bool tableWalkRecvTimingResp(PacketPtr pkt)
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void processCommand(const SMMUCommand &cmd)
Stats::Distribution ptwTimeDist
Stats::Scalar cdL1Fetches
const bool walkCacheNonfinalEnable
Generated on Wed Sep 30 2020 14:02:10 for gem5 by doxygen 1.8.17