dcache: Fix bug with dcbz closely following stores with the same tag
authorPaul Mackerras <paulus@ozlabs.org>
Sat, 25 Sep 2021 03:18:59 +0000 (13:18 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Sat, 25 Sep 2021 03:27:12 +0000 (13:27 +1000)
commit70270c066a0fbcce74ffe866199973fe937d7aea
tree20a7e9de5d876d5c99779f8aae8e852ec470cc10
parent9b3b57710a0b0898f293dde630799bbeb0e6bda2
dcache: Fix bug with dcbz closely following stores with the same tag

This fixes a bug where a dcbz can get incorrectly handled as an
ordinary 8-byte store if it arrives while the dcache state machine is
handling other stores with the same tag value (i.e. within the same
set-sized area of memory).  The logic that says whether to include a
new store in the current wishbone cycle didn't take into account
whether the new store was a dcbz.  This adds a "req.dcbz = '0'" factor
so that it does.  This is necessary because dcbz is handled more like
a cache line refill (but writing to memory rather than reading) than
an ordinary store.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
dcache.vhdl