summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/ruby/system/RubyPort.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc
index 5b94f80ed..fd535cca2 100644
--- a/src/mem/ruby/system/RubyPort.cc
+++ b/src/mem/ruby/system/RubyPort.cc
@@ -237,6 +237,14 @@ RubyPort::MemSlavePort::recvTimingReq(PacketPtr pkt)
panic("RubyPort should never see request with the "
"cacheResponding flag set\n");
+ // ruby doesn't support cache maintenance operations at the
+ // moment, as a workaround, we respond right away
+ if (pkt->req->isCacheMaintenance()) {
+ warn_once("Cache maintenance operations are not supported in Ruby.\n");
+ pkt->makeResponse();
+ schedTimingResp(pkt, curTick());
+ return true;
+ }
// Check for pio requests and directly send them to the dedicated
// pio port.
if (pkt->cmd != MemCmd::MemFenceReq) {