diff --git a/src/main/scala/coreplex/Ports.scala b/src/main/scala/coreplex/Ports.scala index 90092e4b..438e0d1e 100644 --- a/src/main/scala/coreplex/Ports.scala +++ b/src/main/scala/coreplex/Ports.scala @@ -195,7 +195,7 @@ trait HasMasterTLMMIOPortBundle { trait HasMasterTLMMIOPortModuleImp extends LazyModuleImp with HasMasterTLMMIOPortBundle { val outer: HasMasterTLMMIOPort val mmio_tl = IO(HeterogeneousBag.fromNode(outer.mmio_tl.in)) - (mmio_tl zip outer.mmio_tl.out) foreach { case (i, (o, _)) => i <> o } + (mmio_tl zip outer.mmio_tl.in) foreach { case (i, (o, _)) => i <> o } } /** Adds an TL port to the system intended to be a slave on an MMIO device bus. diff --git a/src/main/scala/devices/tilelink/Error.scala b/src/main/scala/devices/tilelink/Error.scala index d9df000c..89c099df 100644 --- a/src/main/scala/devices/tilelink/Error.scala +++ b/src/main/scala/devices/tilelink/Error.scala @@ -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, diff --git a/src/main/scala/rocket/DCache.scala b/src/main/scala/rocket/DCache.scala index e3982151..9eea5875 100644 --- a/src/main/scala/rocket/DCache.scala +++ b/src/main/scala/rocket/DCache.scala @@ -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) { diff --git a/src/main/scala/tilelink/Parameters.scala b/src/main/scala/tilelink/Parameters.scala index 3ab22ee1..d6dcd257 100644 --- a/src/main/scala/tilelink/Parameters.scala +++ b/src/main/scala/tilelink/Parameters.scala @@ -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