Merge pull request #1174 from freechipsproject/error-device-tracked
Claim that ErrorDevice is TRACKED
This commit is contained in:
commit
3525489fff
@ -26,7 +26,7 @@ abstract class DevNullDevice(params: ErrorParams, beatBytes: Int = 4)
|
||||
Seq(TLManagerParameters(
|
||||
address = params.address,
|
||||
resources = device.reg("mem"),
|
||||
regionType = RegionType.UNCACHED,
|
||||
regionType = RegionType.UNCACHEABLE,
|
||||
executable = true,
|
||||
supportsAcquireT = xfer,
|
||||
supportsAcquireB = xfer,
|
||||
|
@ -722,7 +722,7 @@ class DCacheModule(outer: DCache) extends HellaCacheModule(outer) {
|
||||
metaArb.io.in(5).bits.data := metaArb.io.in(4).bits.data
|
||||
|
||||
// Only flush D$ on FENCE.I if some cached executable regions are untracked.
|
||||
val supports_flush = !edge.manager.managers.forall(m => !m.supportsAcquireT || !m.executable || m.regionType >= RegionType.TRACKED)
|
||||
val supports_flush = !edge.manager.managers.forall(m => !m.supportsAcquireT || !m.executable || m.regionType >= RegionType.TRACKED || m.regionType <= RegionType.UNCACHEABLE)
|
||||
if (supports_flush) {
|
||||
when (tl_out_a.fire() && !s2_uncached) { flushed := false }
|
||||
when (flushing) {
|
||||
|
@ -40,7 +40,7 @@ case class TLManagerParameters(
|
||||
require (supportsAcquireB.contains(supportsAcquireT), s"AcquireB($supportsAcquireB) < AcquireT($supportsAcquireT)")
|
||||
|
||||
// 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 || supportsGet) // uncached -> supportsGet
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user