Go to the documentation of this file.
88 respQueue(_ifc, *this)
115 addrRange(_addrRange)
122 unsigned size = pkt->
getSize();
125 panic(
"SMMU: invalid address on control port %x, packet size %d",
146 reqQueue(_ifc, *this),
147 snoopRespQueue(_ifc, *this)
160 respQueue(_ifc, *this)
166 panic(
"Functional access on ATS port!");
virtual void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
bool recvTimingReq(PacketPtr pkt)
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
SMMUATSMemoryPort(const std::string &_name, SMMUv3DeviceInterface &_ifc)
SMMUATSDevicePort(const std::string &_name, SMMUv3DeviceInterface &_ifc)
virtual AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
virtual bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
virtual bool recvTimingReq(PacketPtr pkt)
Receive a timing request from the peer.
virtual bool recvTimingReq(PacketPtr pkt)
Receive a timing request from the peer.
SMMUv3DeviceInterface & ifc
The QueuedRequestPort combines two queues, a request queue and a snoop response queue,...
bool contains(const Addr &a) const
Determine if the range contains an address.
SMMUv3DeviceInterface & ifc
SMMUTableWalkPort(const std::string &_name, SMMUv3 &_smmu)
virtual bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
static scfx_rep_node * list
Tick writeControl(PacketPtr pkt)
SMMUDevicePort(const std::string &_name, SMMUv3DeviceInterface &_ifc, PortID _id=InvalidPortID)
uint32_t headerDelay
The extra delay from seeing the packet until the header is transmitted.
bool recvTimingResp(PacketPtr pkt)
SMMUv3DeviceInterface & ifc
virtual bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
Tick atsRecvAtomic(PacketPtr pkt)
The simple timing port uses a queued port to implement recvFunctional and recvTimingReq through recvA...
uint32_t payloadDelay
The extra pipelining delay from seeing the packet until the end of payload is transmitted by the comp...
bool atsRecvTimingReq(PacketPtr pkt)
RespPacketQueue respQueue
bool trySatisfyFunctional(PacketPtr pkt)
Check the list of buffered packets against the supplied functional request.
virtual Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
void tableWalkRecvReqRetry()
A queued port is a port that has an infinite queue for outgoing packets and thus decouples the module...
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint64_t Tick
Tick count type.
Tick readControl(PacketPtr pkt)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
bool tableWalkRecvTimingResp(PacketPtr pkt)
virtual void recvFunctional(PacketPtr pkt)
Receive a functional request packet from the peer.
virtual void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
Tick recvAtomic(PacketPtr pkt)
SMMURequestPort(const std::string &_name, SMMUv3 &_smmu)
SMMUControlPort(const std::string &_name, SMMUv3 &_smmu, AddrRange _addrRange)
virtual void recvFunctional(PacketPtr pkt)
Receive a functional request packet from the peer.
virtual Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
bool atsRecvTimingResp(PacketPtr pkt)
#define panic(...)
This implements a cprintf based panic() function.
Generated on Sun Jul 30 2023 01:56:55 for gem5 by doxygen 1.8.17