misc: Bugfix in TLM memInhibit Command
authorAbdul Mutaal Ahmad <abdul.mutaal@gmail.com>
Fri, 15 Apr 2016 14:55:26 +0000 (09:55 -0500)
committerAbdul Mutaal Ahmad <abdul.mutaal@gmail.com>
Fri, 15 Apr 2016 14:55:26 +0000 (09:55 -0500)
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>

util/tlm/sc_port.cc

index 04efce87b7d18995a1a1942541282d16aa07ca9a..ab94f73ca9681267b5d7d3ae8a0edc2e62f47e4a 100644 (file)
@@ -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) {