1
0

Incorporate feedback to make the NExtPerhipheryInterrupts come from DeviceBlock itself

This commit is contained in:
Megan Wachs 2016-08-26 10:09:03 -07:00
parent 41aa80c5d7
commit 53ee54dbd1
3 changed files with 7 additions and 3 deletions

View File

@ -116,7 +116,7 @@ class BasePlatformConfig extends Config (
} }
case BuildCoreplex => (p: Parameters) => Module(new DefaultCoreplex(p)) case BuildCoreplex => (p: Parameters) => Module(new DefaultCoreplex(p))
case NExtTopInterrupts => 2 case NExtTopInterrupts => 2
case NExtPeripheryInterrupts => 0 case NExtPeripheryInterrupts => site(ExtraDevices).nInterrupts
// Note that PLIC asserts that this is > 0. // Note that PLIC asserts that this is > 0.
case NExtInterrupts => site(NExtTopInterrupts) + site(NExtPeripheryInterrupts) case NExtInterrupts => site(NExtTopInterrupts) + site(NExtPeripheryInterrupts)
case AsyncDebugBus => false case AsyncDebugBus => false
@ -269,7 +269,6 @@ class WithTestRAM extends Config(
extra: Bundle, p: Parameters) { extra: Bundle, p: Parameters) {
val testram = Module(new TileLinkTestRAM(ramSize)(p)) val testram = Module(new TileLinkTestRAM(ramSize)(p))
testram.io <> mmioPorts("testram") testram.io <> mmioPorts("testram")
interrupts.foreach(x => x := Bool(false))
} }
} }
new TestRAMDevice new TestRAMDevice

View File

@ -14,6 +14,10 @@ abstract class DeviceBlock {
def nClientPorts: Int def nClientPorts: Int
/** Address map entries for all of the devices */ /** Address map entries for all of the devices */
def addrMapEntries: Seq[AddrMapEntry] def addrMapEntries: Seq[AddrMapEntry]
/**
* The total number of interrupt signals coming
* from all the devices */
def nInterrupts : Int = 0
/** /**
* The function that elaborates all the extra devices and connects them * The function that elaborates all the extra devices and connects them
@ -48,6 +52,8 @@ abstract class DeviceBlock {
"}\n" "}\n"
}.mkString }.mkString
} }
} }
class EmptyDeviceBlock extends DeviceBlock { class EmptyDeviceBlock extends DeviceBlock {

View File

@ -196,7 +196,6 @@ class WithBusMasterTest extends Config(
val busmaster = Module(new ExampleBusMaster()(p)) val busmaster = Module(new ExampleBusMaster()(p))
busmaster.io.mmio <> mmioPorts("busmaster") busmaster.io.mmio <> mmioPorts("busmaster")
clientPorts.head <> busmaster.io.mem clientPorts.head <> busmaster.io.mem
interrupts.foreach(x => x := Bool(false))
} }
} }
new BusMasterDevice new BusMasterDevice