mem: Implemement backdoor interface for Bridge
Change-Id: I5ff62b03c34e41395a957a0799925ddd9c275458 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67291 Reviewed-by: Nicolas Boichat <drinkcat@google.com> Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Gabe Black <gabeblack@google.com> Reviewed-by: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -347,6 +347,14 @@ Bridge::BridgeResponsePort::recvAtomic(PacketPtr pkt)
|
||||
return delay * bridge.clockPeriod() + memSidePort.sendAtomic(pkt);
|
||||
}
|
||||
|
||||
Tick
|
||||
Bridge::BridgeResponsePort::recvAtomicBackdoor(
|
||||
PacketPtr pkt, MemBackdoorPtr &backdoor)
|
||||
{
|
||||
return delay * bridge.clockPeriod() + memSidePort.sendAtomicBackdoor(
|
||||
pkt, backdoor);
|
||||
}
|
||||
|
||||
void
|
||||
Bridge::BridgeResponsePort::recvFunctional(PacketPtr pkt)
|
||||
{
|
||||
@@ -371,6 +379,13 @@ Bridge::BridgeResponsePort::recvFunctional(PacketPtr pkt)
|
||||
memSidePort.sendFunctional(pkt);
|
||||
}
|
||||
|
||||
void
|
||||
Bridge::BridgeResponsePort::recvMemBackdoorReq(
|
||||
const MemBackdoorReq &req, MemBackdoorPtr &backdoor)
|
||||
{
|
||||
memSidePort.sendMemBackdoorReq(req, backdoor);
|
||||
}
|
||||
|
||||
bool
|
||||
Bridge::BridgeRequestPort::trySatisfyFunctional(PacketPtr pkt)
|
||||
{
|
||||
|
||||
@@ -195,23 +195,35 @@ class Bridge : public ClockedObject
|
||||
|
||||
/** When receiving a timing request from the peer port,
|
||||
pass it to the bridge. */
|
||||
bool recvTimingReq(PacketPtr pkt);
|
||||
bool recvTimingReq(PacketPtr pkt) override;
|
||||
|
||||
/** When receiving a retry request from the peer port,
|
||||
pass it to the bridge. */
|
||||
void recvRespRetry();
|
||||
void recvRespRetry() override;
|
||||
|
||||
/** When receiving a Atomic requestfrom the peer port,
|
||||
/** When receiving an Atomic request from the peer port,
|
||||
pass it to the bridge. */
|
||||
Tick recvAtomic(PacketPtr pkt);
|
||||
Tick recvAtomic(PacketPtr pkt) override;
|
||||
|
||||
/** When receiving an Atomic backdoor request from the peer port,
|
||||
pass it to the bridge. */
|
||||
Tick recvAtomicBackdoor(
|
||||
PacketPtr pkt, MemBackdoorPtr &backdoor) override;
|
||||
|
||||
|
||||
/** When receiving a Functional request from the peer port,
|
||||
pass it to the bridge. */
|
||||
void recvFunctional(PacketPtr pkt);
|
||||
void recvFunctional(PacketPtr pkt) override;
|
||||
|
||||
/** When receiving a Functional backdoor request from the peer port,
|
||||
pass it to the bridge. */
|
||||
void recvMemBackdoorReq(
|
||||
const MemBackdoorReq &req, MemBackdoorPtr &backdoor) override;
|
||||
|
||||
|
||||
/** When receiving a address range request the peer port,
|
||||
pass it to the bridge. */
|
||||
AddrRangeList getAddrRanges() const;
|
||||
AddrRangeList getAddrRanges() const override;
|
||||
};
|
||||
|
||||
|
||||
@@ -303,11 +315,11 @@ class Bridge : public ClockedObject
|
||||
|
||||
/** When receiving a timing request from the peer port,
|
||||
pass it to the bridge. */
|
||||
bool recvTimingResp(PacketPtr pkt);
|
||||
bool recvTimingResp(PacketPtr pkt) override;
|
||||
|
||||
/** When receiving a retry request from the peer port,
|
||||
pass it to the bridge. */
|
||||
void recvReqRetry();
|
||||
void recvReqRetry() override;
|
||||
};
|
||||
|
||||
/** Response port of the bridge. */
|
||||
|
||||
Reference in New Issue
Block a user