1
0

When not using a cache, LR/SC isn't legal even on cacheable memory

This commit is contained in:
Andrew Waterman 2017-04-19 16:52:23 -07:00 committed by Megan Wachs
parent 1be13d6b4c
commit 67404a665b

View File

@ -188,9 +188,10 @@ class TLB(lgMaxSize: Int, nEntries: Int)(implicit edge: TLEdgeOut, p: Parameters
(if (vpnBits == vpnBitsExtended) Bool(false) (if (vpnBits == vpnBitsExtended) Bool(false)
else vpn(vpnBits) =/= vpn(vpnBits-1)) else vpn(vpnBits) =/= vpn(vpnBits-1))
val lrscAllowed = Mux(Bool(usingDataScratchpad), 0.U, c_array)
val ae_array = val ae_array =
Mux(misaligned, eff_array, 0.U) | Mux(misaligned, eff_array, 0.U) |
Mux(Bool(usingAtomics) && io.req.bits.cmd.isOneOf(M_XLR, M_XSC), ~c_array, 0.U) Mux(Bool(usingAtomics) && io.req.bits.cmd.isOneOf(M_XLR, M_XSC), ~lrscAllowed, 0.U)
val ae_ld_array = Mux(isRead(io.req.bits.cmd), ae_array | ~pr_array, 0.U) val ae_ld_array = Mux(isRead(io.req.bits.cmd), ae_array | ~pr_array, 0.U)
val ae_st_array = val ae_st_array =
Mux(isWrite(io.req.bits.cmd), ae_array | ~pw_array, 0.U) | Mux(isWrite(io.req.bits.cmd), ae_array | ~pw_array, 0.U) |