From 84dc2ae822f300f3e399424574155ea1adee60f5 Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Tue, 11 Apr 2017 12:34:18 -0700 Subject: [PATCH 1/2] CacheCork: remove probe support --- src/main/scala/uncore/tilelink2/CacheCork.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/scala/uncore/tilelink2/CacheCork.scala b/src/main/scala/uncore/tilelink2/CacheCork.scala index f08ff8d7..36977bff 100644 --- a/src/main/scala/uncore/tilelink2/CacheCork.scala +++ b/src/main/scala/uncore/tilelink2/CacheCork.scala @@ -14,6 +14,7 @@ class TLCacheCork(unsafe: Boolean = false)(implicit p: Parameters) extends LazyM val node = TLAdapterNode( clientFn = { case cp => cp.copy(clients = cp.clients.map { c => c.copy( + supportsProbe = TransferSizes.none, sourceId = IdRange(c.sourceId.start*2, c.sourceId.end*2))})}, managerFn = { case mp => mp.copy( From 1c36ab8bf75fc41ef33b166fee0fcdb3e4e1349f Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Tue, 11 Apr 2017 12:35:44 -0700 Subject: [PATCH 2/2] Fragmenter: forbid multiple sink IDs Otherwise a slave might respond with different IDs for different requests and the Fragmenter would violate the requirement that control signals remain unchanged for a burst. --- src/main/scala/uncore/tilelink2/Fragmenter.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/scala/uncore/tilelink2/Fragmenter.scala b/src/main/scala/uncore/tilelink2/Fragmenter.scala index f40a8727..fd06fe87 100644 --- a/src/main/scala/uncore/tilelink2/Fragmenter.scala +++ b/src/main/scala/uncore/tilelink2/Fragmenter.scala @@ -57,6 +57,7 @@ class TLFragmenter(val minSize: Int, val maxSize: Int, val alwaysMin: Boolean = val beatBytes = manager.beatBytes val fifoId = managers(0).fifoId require (fifoId.isDefined && managers.map(_.fifoId == fifoId).reduce(_ && _)) + require (manager.endSinkId <= 1) // We don't support fragmenting to sub-beat accesses require (minSize >= beatBytes)