From f75126c39c9925fc2073a82e03c270372e6bb06d Mon Sep 17 00:00:00 2001 From: Albert Ou Date: Wed, 11 Mar 2015 23:24:58 -0700 Subject: [PATCH] Require self probes for all built-in Acquire types This ensures that puts by the RoCC accelerator properly invalidates its tile's L1 D$, with which it currently shares the same TileLink port. --- uncore/src/main/scala/tilelink.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/uncore/src/main/scala/tilelink.scala b/uncore/src/main/scala/tilelink.scala index 531d3f52..7ea79ad1 100644 --- a/uncore/src/main/scala/tilelink.scala +++ b/uncore/src/main/scala/tilelink.scala @@ -117,8 +117,9 @@ class Acquire extends ClientToManagerChannel def hasMultibeatData(dummy: Int = 0): Bool = Bool(tlDataBeats > 1) && isBuiltInType() && Acquire.typesWithMultibeatData.contains(a_type) - //TODO: This function is a hack to support Rocket icache snooping Rocket nbdcache: - def requiresSelfProbe(dummy: Int = 0) = isBuiltInType() && a_type === Acquire.getBlockType + //TODO: This function is a hack to support Rocket icache snooping Rocket nbdcache + // and nbdcache invalidations after RoCC accelerator puts + def requiresSelfProbe(dummy: Int = 0) = isBuiltInType() def getBuiltInGrantType(dummy: Int = 0): UInt = { MuxLookup(this.a_type, Grant.putAckType, Array(