Cores now have an extra CoreParam, useSupervisor which was set to the default false. Whether a core has supervisor mode is the union of this and useVM which defaults true so not change was made by this addition. BusTopologies are now set with the Config system rather than a system mixin and so all configs now include the config most similar to the previous mixin Testchipip was updated to be able to replace the systembus, in this new config system, with a ring bus. The L2 cache repo needed a similar update on how to find the buses. It currently points to the ucb-bar fork Treadle is bumped to its release branch
171 lines
8.4 KiB
Scala
171 lines
8.4 KiB
Scala
package chipyard
|
|
|
|
import freechips.rocketchip.config.{Config}
|
|
|
|
// ---------------------
|
|
// Heterogenous Configs
|
|
// ---------------------
|
|
|
|
class LargeBoomAndRocketConfig extends Config(
|
|
new chipyard.iobinders.WithUARTAdapter ++ // display UART with a SimUARTAdapter
|
|
new chipyard.iobinders.WithTieOffInterrupts ++ // tie off top-level interrupts
|
|
new chipyard.iobinders.WithBlackBoxSimMem ++ // drive the master AXI4 memory with a SimAXIMem
|
|
new chipyard.iobinders.WithTiedOffDebug ++ // tie off debug (since we are using SimSerial for testing)
|
|
new chipyard.iobinders.WithSimSerial ++ // drive TSI with SimSerial for testing
|
|
new testchipip.WithTSI ++ // use testchipip serial offchip link
|
|
new chipyard.config.WithBootROM ++ // use default bootrom
|
|
new chipyard.config.WithUART ++ // add a UART
|
|
new chipyard.config.WithL2TLBs(1024) ++ // use L2 TLBs
|
|
new chipyard.config.WithRenumberHarts ++ // avoid hartid overlap
|
|
new boom.common.WithLargeBooms ++ // 3-wide boom
|
|
new boom.common.WithNBoomCores(1) ++ // single-core boom
|
|
new freechips.rocketchip.subsystem.WithNoMMIOPort ++ // no top-level MMIO master port (overrides default set in rocketchip)
|
|
new freechips.rocketchip.subsystem.WithNoSlavePort ++ // no top-level MMIO slave port (overrides default set in rocketchip)
|
|
new freechips.rocketchip.subsystem.WithInclusiveCache ++ // use Sifive L2 cache
|
|
new freechips.rocketchip.subsystem.WithNExtTopInterrupts(0) ++ // no external interrupts
|
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // single rocket-core
|
|
new freechips.rocketchip.subsystem.WithCoherentBusTopology ++ // hierarchical buses including mbus+l2
|
|
new freechips.rocketchip.system.BaseConfig) // "base" rocketchip system
|
|
|
|
// DOC include start: BoomAndRocketWithHwacha
|
|
class HwachaLargeBoomAndHwachaRocketConfig extends Config(
|
|
new chipyard.iobinders.WithUARTAdapter ++
|
|
new chipyard.iobinders.WithTieOffInterrupts ++
|
|
new chipyard.iobinders.WithBlackBoxSimMem ++
|
|
new chipyard.iobinders.WithTiedOffDebug ++
|
|
new chipyard.iobinders.WithSimSerial ++
|
|
new testchipip.WithTSI ++
|
|
new chipyard.config.WithBootROM ++
|
|
new chipyard.config.WithUART ++
|
|
new chipyard.config.WithL2TLBs(1024) ++
|
|
new hwacha.DefaultHwachaConfig ++ // add hwacha to all harts
|
|
new chipyard.config.WithRenumberHarts ++
|
|
new boom.common.WithLargeBooms ++
|
|
new boom.common.WithNBoomCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithNoMMIOPort ++
|
|
new freechips.rocketchip.subsystem.WithNoSlavePort ++
|
|
new freechips.rocketchip.subsystem.WithInclusiveCache ++
|
|
new freechips.rocketchip.subsystem.WithNExtTopInterrupts(0) ++
|
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithCoherentBusTopology ++
|
|
new freechips.rocketchip.system.BaseConfig)
|
|
// DOC include end: BoomAndRocketWithHwacha
|
|
|
|
class DualLargeBoomAndRocketConfig extends Config(
|
|
new chipyard.iobinders.WithUARTAdapter ++
|
|
new chipyard.iobinders.WithTieOffInterrupts ++
|
|
new chipyard.iobinders.WithBlackBoxSimMem ++
|
|
new chipyard.iobinders.WithTiedOffDebug ++
|
|
new chipyard.iobinders.WithSimSerial ++
|
|
new testchipip.WithTSI ++
|
|
new chipyard.config.WithBootROM ++
|
|
new chipyard.config.WithUART ++
|
|
new chipyard.config.WithL2TLBs(1024) ++
|
|
new chipyard.config.WithRenumberHarts ++
|
|
new boom.common.WithLargeBooms ++
|
|
new boom.common.WithNBoomCores(2) ++ // 2 boom cores
|
|
new freechips.rocketchip.subsystem.WithNoMMIOPort ++
|
|
new freechips.rocketchip.subsystem.WithNoSlavePort ++
|
|
new freechips.rocketchip.subsystem.WithInclusiveCache ++
|
|
new freechips.rocketchip.subsystem.WithNExtTopInterrupts(0) ++
|
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithCoherentBusTopology ++
|
|
new freechips.rocketchip.system.BaseConfig)
|
|
|
|
// DOC include start: DualBoomAndRocketOneHwacha
|
|
|
|
class LargeBoomAndHwachaRocketConfig extends Config(
|
|
new chipyard.iobinders.WithUARTAdapter ++
|
|
new chipyard.iobinders.WithTieOffInterrupts ++
|
|
new chipyard.iobinders.WithBlackBoxSimMem ++
|
|
new chipyard.iobinders.WithTiedOffDebug ++
|
|
new chipyard.iobinders.WithSimSerial ++
|
|
new testchipip.WithTSI ++
|
|
new chipyard.config.WithBootROM ++
|
|
new chipyard.config.WithUART ++
|
|
new chipyard.config.WithMultiRoCC ++ // support heterogeneous rocc
|
|
new chipyard.config.WithMultiRoCCHwacha(1) ++ // put hwacha on hart-2 (rocket)
|
|
new chipyard.config.WithL2TLBs(1024) ++
|
|
new chipyard.config.WithRenumberHarts ++
|
|
new boom.common.WithLargeBooms ++
|
|
new boom.common.WithNBoomCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithNoMMIOPort ++
|
|
new freechips.rocketchip.subsystem.WithNoSlavePort ++
|
|
new freechips.rocketchip.subsystem.WithInclusiveCache ++
|
|
new freechips.rocketchip.subsystem.WithNExtTopInterrupts(0) ++
|
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithCoherentBusTopology ++
|
|
new freechips.rocketchip.system.BaseConfig)
|
|
// DOC include end: DualBoomAndRocketOneHwacha
|
|
|
|
|
|
|
|
class LargeBoomAndRV32RocketConfig extends Config(
|
|
new chipyard.iobinders.WithUARTAdapter ++
|
|
new chipyard.iobinders.WithTieOffInterrupts ++
|
|
new chipyard.iobinders.WithBlackBoxSimMem ++
|
|
new chipyard.iobinders.WithTiedOffDebug ++
|
|
new chipyard.iobinders.WithSimSerial ++
|
|
new testchipip.WithTSI ++
|
|
new chipyard.config.WithBootROM ++
|
|
new chipyard.config.WithUART ++
|
|
new chipyard.config.WithL2TLBs(1024) ++
|
|
new chipyard.config.WithRenumberHarts ++
|
|
new boom.common.WithLargeBooms ++
|
|
new boom.common.WithNBoomCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithNoMMIOPort ++
|
|
new freechips.rocketchip.subsystem.WithNoSlavePort ++
|
|
new freechips.rocketchip.subsystem.WithInclusiveCache ++
|
|
new freechips.rocketchip.subsystem.WithNExtTopInterrupts(0) ++
|
|
new freechips.rocketchip.subsystem.WithRV32 ++ // set RocketTiles to be 32-bit
|
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithCoherentBusTopology ++
|
|
new freechips.rocketchip.system.BaseConfig)
|
|
|
|
|
|
// DOC include start: DualBoomAndRocket
|
|
class DualLargeBoomAndDualRocketConfig extends Config(
|
|
new chipyard.iobinders.WithUARTAdapter ++
|
|
new chipyard.iobinders.WithTieOffInterrupts ++
|
|
new chipyard.iobinders.WithBlackBoxSimMem ++
|
|
new chipyard.iobinders.WithTiedOffDebug ++
|
|
new chipyard.iobinders.WithSimSerial ++
|
|
new testchipip.WithTSI ++
|
|
new chipyard.config.WithBootROM ++
|
|
new chipyard.config.WithUART ++
|
|
new chipyard.config.WithL2TLBs(1024) ++
|
|
new chipyard.config.WithRenumberHarts ++
|
|
new boom.common.WithLargeBooms ++
|
|
new boom.common.WithNBoomCores(2) ++ // 2 boom cores
|
|
new freechips.rocketchip.subsystem.WithNoMMIOPort ++
|
|
new freechips.rocketchip.subsystem.WithNoSlavePort ++
|
|
new freechips.rocketchip.subsystem.WithInclusiveCache ++
|
|
new freechips.rocketchip.subsystem.WithNExtTopInterrupts(0) ++
|
|
new freechips.rocketchip.subsystem.WithNBigCores(2) ++ // 2 rocket cores
|
|
new freechips.rocketchip.subsystem.WithCoherentBusTopology ++
|
|
new freechips.rocketchip.system.BaseConfig)
|
|
// DOC include end: DualBoomAndRocket
|
|
|
|
class LargeBoomAndRocketWithControlCoreConfig extends Config(
|
|
new chipyard.iobinders.WithUARTAdapter ++
|
|
new chipyard.iobinders.WithTieOffInterrupts ++
|
|
new chipyard.iobinders.WithBlackBoxSimMem ++
|
|
new chipyard.iobinders.WithTiedOffDebug ++
|
|
new chipyard.iobinders.WithSimSerial ++
|
|
new testchipip.WithTSI ++
|
|
new chipyard.config.WithBootROM ++
|
|
new chipyard.config.WithUART ++
|
|
new chipyard.config.WithControlCore ++ // add small control core to last hartid
|
|
new chipyard.config.WithL2TLBs(1024) ++
|
|
new chipyard.config.WithRenumberHarts ++
|
|
new boom.common.WithLargeBooms ++
|
|
new boom.common.WithNBoomCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithNoMMIOPort ++
|
|
new freechips.rocketchip.subsystem.WithNoSlavePort ++
|
|
new freechips.rocketchip.subsystem.WithInclusiveCache ++
|
|
new freechips.rocketchip.subsystem.WithNExtTopInterrupts(0) ++
|
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
|
new freechips.rocketchip.subsystem.WithCoherentBusTopology ++
|
|
new freechips.rocketchip.system.BaseConfig)
|
|
|