diff --git a/src/main/scala/rocket/DCache.scala b/src/main/scala/rocket/DCache.scala index 9429438c..2feae0e0 100644 --- a/src/main/scala/rocket/DCache.scala +++ b/src/main/scala/rocket/DCache.scala @@ -200,7 +200,7 @@ class DCacheModule(outer: DCache) extends HellaCacheModule(outer) { when (s1_valid_not_nacked || s1_flush_valid) { s2_req := s1_req s2_req.addr := s1_paddr - s2_uncached := !tlb.io.resp.cacheable || Bool(usingDataScratchpad) + s2_uncached := !tlb.io.resp.cacheable } val s2_read = isRead(s2_req.cmd) val s2_write = isWrite(s2_req.cmd) diff --git a/src/main/scala/rocket/TLB.scala b/src/main/scala/rocket/TLB.scala index 3ad59c4f..f01260b2 100644 --- a/src/main/scala/rocket/TLB.scala +++ b/src/main/scala/rocket/TLB.scala @@ -113,7 +113,7 @@ class TLB(instruction: Boolean, lgMaxSize: Int, nEntries: Int)(implicit edge: TL val legal_address = edge.manager.findSafe(mpu_physaddr).reduce(_||_) def fastCheck(member: TLManagerParameters => Boolean) = legal_address && edge.manager.fastProperty(mpu_physaddr, member, (b:Boolean) => Bool(b)) - val cacheable = fastCheck(_.supportsAcquireB) + val cacheable = fastCheck(_.supportsAcquireB) && (instruction || !usingDataScratchpad) val homogeneous = TLBPageLookup(edge.manager.managers, xLen, p(CacheBlockBytes), BigInt(1) << pgIdxBits)(mpu_physaddr).homogeneous val prot_r = fastCheck(_.supportsGet) && pmp.io.r val prot_w = fastCheck(_.supportsPutFull) && pmp.io.w