From 2a1f49fae6f4399d976a551a1715709faf1b19da Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Wed, 14 Oct 2015 13:32:28 -0400 Subject: [PATCH] mem: Pass snoop retries through the CommMonitor Allow the monitor to be placed after a snooping port, and do not fail on snoop retries, but instead pass them on to the slave port. --- src/mem/comm_monitor.cc | 6 ++++++ src/mem/comm_monitor.hh | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/mem/comm_monitor.cc b/src/mem/comm_monitor.cc index 85d7be2f4..fa1950be3 100644 --- a/src/mem/comm_monitor.cc +++ b/src/mem/comm_monitor.cc @@ -344,6 +344,12 @@ CommMonitor::recvTimingSnoopResp(PacketPtr pkt) return masterPort.sendTimingSnoopResp(pkt); } +void +CommMonitor::recvRetrySnoopResp() +{ + slavePort.sendRetrySnoopResp(); +} + bool CommMonitor::isSnooping() const { diff --git a/src/mem/comm_monitor.hh b/src/mem/comm_monitor.hh index df61b0b80..5ccce8037 100644 --- a/src/mem/comm_monitor.hh +++ b/src/mem/comm_monitor.hh @@ -167,6 +167,11 @@ class CommMonitor : public MemObject mon.recvReqRetry(); } + void recvRetrySnoopResp() + { + mon.recvRetrySnoopResp(); + } + private: CommMonitor& mon; @@ -248,6 +253,8 @@ class CommMonitor : public MemObject bool recvTimingSnoopResp(PacketPtr pkt); + void recvRetrySnoopResp(); + AddrRangeList getAddrRanges() const; bool isSnooping() const; -- 2.30.2