summaryrefslogtreecommitdiff
path: root/util/tlm
diff options
context:
space:
mode:
authorAbdul Mutaal Ahmad <abdul.mutaal@gmail.com>2016-04-15 09:55:26 -0500
committerAbdul Mutaal Ahmad <abdul.mutaal@gmail.com>2016-04-15 09:55:26 -0500
commit1b46c175fcab7af3c24bf11e32118cb7c2257b2f (patch)
tree4d5ce4523de4fbbd384070d8808c7ca3a3e03c9a /util/tlm
parent90cb9827befb8e9bfb6cc6aa990390041b543d14 (diff)
downloadgem5-1b46c175fcab7af3c24bf11e32118cb7c2257b2f.tar.xz
misc: Bugfix in TLM memInhibit Command
memInhibitAsserted() has been removed from packet.hh. This change has been reflected in TLM based SystemC memory. This patch also adds a number of panics asserting the SystemC memory only sees requests it expects. Committed by Jason Lowe-Power <power.jg@gmail.com>
Diffstat (limited to 'util/tlm')
-rw-r--r--util/tlm/sc_port.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/util/tlm/sc_port.cc b/util/tlm/sc_port.cc
index 04efce87b..ab94f73ca 100644
--- a/util/tlm/sc_port.cc
+++ b/util/tlm/sc_port.cc
@@ -91,6 +91,13 @@ sc_transactor::recvAtomic(PacketPtr packet)
CAUGHT_UP;
SC_REPORT_INFO("transactor", "recvAtomic hasn't been tested much");
+ panic_if(packet->cacheResponding(), "Should not see packets where cache "
+ "is responding");
+
+ panic_if(!(packet->isRead() || packet->isWrite()),
+ "Should only see read and writes at TLM memory\n");
+
+
sc_core::sc_time delay = sc_core::SC_ZERO_TIME;
@@ -172,15 +179,17 @@ sc_transactor::recvTimingReq(PacketPtr packet)
{
CAUGHT_UP;
+ panic_if(packet->cacheResponding(), "Should not see packets where cache "
+ "is responding");
+
+ panic_if(!(packet->isRead() || packet->isWrite()),
+ "Should only see read and writes at TLM memory\n");
+
+
/* We should never get a second request after noting that a retry is
* required */
sc_assert(!needToSendRequestRetry);
- // simply drop inhibited packets and clean evictions
- if (packet->memInhibitAsserted() ||
- packet->cmd == MemCmd::CleanEvict)
- return true;
-
/* Remember if a request comes in while we're blocked so that a retry
* can be sent to gem5 */
if (blockingRequest) {