diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2015-10-14 13:32:28 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2015-10-14 13:32:28 -0400 |
commit | 2a1f49fae6f4399d976a551a1715709faf1b19da (patch) | |
tree | 3c92dfd853a54d08928702fe6cce94f7c83128f8 | |
parent | 4453537eadb177bd7fd8c50e68e7b2baefc3e178 (diff) | |
download | gem5-2a1f49fae6f4399d976a551a1715709faf1b19da.tar.xz |
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.
-rw-r--r-- | src/mem/comm_monitor.cc | 6 | ||||
-rw-r--r-- | src/mem/comm_monitor.hh | 7 |
2 files changed, 13 insertions, 0 deletions
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; |