diff options
author | Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> | 2016-04-15 09:55:26 -0500 |
---|---|---|
committer | Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> | 2016-04-15 09:55:26 -0500 |
commit | 1b46c175fcab7af3c24bf11e32118cb7c2257b2f (patch) | |
tree | 4d5ce4523de4fbbd384070d8808c7ca3a3e03c9a | |
parent | 90cb9827befb8e9bfb6cc6aa990390041b543d14 (diff) | |
download | gem5-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>
-rw-r--r-- | util/tlm/sc_port.cc | 19 |
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) { |