From: Tiago Mück Date: Fri, 17 Jul 2020 15:49:31 +0000 (-0500) Subject: mem-ruby: warns on masked functional writes X-Git-Tag: develop-gem5-snapshot~93 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dde0e3f0dfb9d61aba96eeec0f661e276ec9e7de;p=gem5.git mem-ruby: warns on masked functional writes It's not expected to issue masked functional writes or to receive functional writes to an address with a pending masked write. Change-Id: Ibc8ba5f642ff72f897e3a50011c0da6d3000b741 Signed-off-by: Tiago Mück Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/41133 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- diff --git a/src/mem/ruby/slicc_interface/RubyRequest.cc b/src/mem/ruby/slicc_interface/RubyRequest.cc index f2099dbd3..3cafabed5 100644 --- a/src/mem/ruby/slicc_interface/RubyRequest.cc +++ b/src/mem/ruby/slicc_interface/RubyRequest.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 ARM Limited + * Copyright (c) 2019,2021 ARM Limited * All rights reserved. * * The license below extends only to copyright in the software and shall @@ -82,6 +82,13 @@ RubyRequest::functionalWrite(Packet *pkt) if (!data) return false; + if (pkt->isMaskedWrite() || m_pkt->isMaskedWrite()) { + warn("Skiping functional write to/from a masked write packet" + " (addr: %#x, other addr: %#x).\n", m_PhysicalAddress, + pkt->getAddr()); + return false; + } + Addr wBase = pkt->getAddr(); Addr wTail = wBase + pkt->getSize(); Addr mBase = m_PhysicalAddress;