1
0

Make ErrorDevice UNCACHEABLE instead of UNCACHED

...even though it still supports Acquire.  This avoids needing to flush
the D$ on FENCE.I because of the presence of the ErrorDevice.
This commit is contained in:
Andrew Waterman 2018-01-05 14:00:42 -08:00
parent ad0b9a0b1b
commit 000cde2f8a
2 changed files with 2 additions and 2 deletions

View File

@ -26,7 +26,7 @@ abstract class DevNullDevice(params: ErrorParams, beatBytes: Int = 4)
Seq(TLManagerParameters( Seq(TLManagerParameters(
address = params.address, address = params.address,
resources = device.reg("mem"), resources = device.reg("mem"),
regionType = RegionType.UNCACHED, regionType = RegionType.UNCACHEABLE,
executable = true, executable = true,
supportsAcquireT = xfer, supportsAcquireT = xfer,
supportsAcquireB = xfer, supportsAcquireB = xfer,

View File

@ -40,7 +40,7 @@ case class TLManagerParameters(
require (supportsAcquireB.contains(supportsAcquireT), s"AcquireB($supportsAcquireB) < AcquireT($supportsAcquireT)") require (supportsAcquireB.contains(supportsAcquireT), s"AcquireB($supportsAcquireB) < AcquireT($supportsAcquireT)")
// Make sure that the regionType agrees with the capabilities // Make sure that the regionType agrees with the capabilities
require (!supportsAcquireB || regionType >= RegionType.UNCACHED) // acquire -> uncached, tracked, cached require (!supportsAcquireB || regionType >= RegionType.UNCACHEABLE) // acquire -> uncached, tracked, cached
require (regionType <= RegionType.UNCACHED || supportsAcquireB) // tracked, cached -> acquire require (regionType <= RegionType.UNCACHED || supportsAcquireB) // tracked, cached -> acquire
require (regionType != RegionType.UNCACHED || supportsGet) // uncached -> supportsGet require (regionType != RegionType.UNCACHED || supportsGet) // uncached -> supportsGet