1
0

Merge remote-tracking branch 'origin/master' into refactored_rbb

This commit is contained in:
Megan Wachs 2018-01-08 09:11:27 -08:00
commit a530646d15
4 changed files with 4 additions and 4 deletions

View File

@ -195,7 +195,7 @@ trait HasMasterTLMMIOPortBundle {
trait HasMasterTLMMIOPortModuleImp extends LazyModuleImp with HasMasterTLMMIOPortBundle { trait HasMasterTLMMIOPortModuleImp extends LazyModuleImp with HasMasterTLMMIOPortBundle {
val outer: HasMasterTLMMIOPort val outer: HasMasterTLMMIOPort
val mmio_tl = IO(HeterogeneousBag.fromNode(outer.mmio_tl.in)) 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. /** Adds an TL port to the system intended to be a slave on an MMIO device bus.

View File

@ -26,7 +26,7 @@ abstract class DevNullDevice(params: ErrorParams, beatBytes: Int = 4)
Seq(TLManagerParameters( Seq(TLManagerParameters(
address = params.address, address = params.address,
resources = device.reg("mem"), resources = device.reg("mem"),
regionType = RegionType.UNCACHED, regionType = RegionType.UNCACHEABLE,
executable = true, executable = true,
supportsAcquireT = xfer, supportsAcquireT = xfer,
supportsAcquireB = xfer, supportsAcquireB = xfer,

View File

@ -722,7 +722,7 @@ class DCacheModule(outer: DCache) extends HellaCacheModule(outer) {
metaArb.io.in(5).bits.data := metaArb.io.in(4).bits.data 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. // 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) { if (supports_flush) {
when (tl_out_a.fire() && !s2_uncached) { flushed := false } when (tl_out_a.fire() && !s2_uncached) { flushed := false }
when (flushing) { when (flushing) {

View File

@ -40,7 +40,7 @@ case class TLManagerParameters(
require (supportsAcquireB.contains(supportsAcquireT), s"AcquireB($supportsAcquireB) < AcquireT($supportsAcquireT)") require (supportsAcquireB.contains(supportsAcquireT), s"AcquireB($supportsAcquireB) < AcquireT($supportsAcquireT)")
// Make sure that the regionType agrees with the capabilities // 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 || supportsAcquireB) // tracked, cached -> acquire
require (regionType != RegionType.UNCACHED || supportsGet) // uncached -> supportsGet require (regionType != RegionType.UNCACHED || supportsGet) // uncached -> supportsGet