Removed AON block from E300 design. Debug over JTAG still functioning.

This commit is contained in:
James Dunn
2020-10-04 18:13:47 -07:00
parent 9135cda959
commit afc085a5f4
3 changed files with 0 additions and 19 deletions

View File

@@ -9,7 +9,6 @@ import freechips.rocketchip.diplomacy.{DTSModel, DTSTimebase}
import freechips.rocketchip.system._ import freechips.rocketchip.system._
import freechips.rocketchip.tile._ import freechips.rocketchip.tile._
import sifive.blocks.devices.mockaon._
import sifive.blocks.devices.gpio._ import sifive.blocks.devices.gpio._
import sifive.blocks.devices.pwm._ import sifive.blocks.devices.pwm._
import sifive.blocks.devices.spi._ import sifive.blocks.devices.spi._
@@ -38,8 +37,6 @@ class E300DevKitExtra extends Config((site, here, up) => {
UARTParams(address = 0x10023000)) UARTParams(address = 0x10023000))
case PeripheryI2CKey => List( case PeripheryI2CKey => List(
I2CParams(address = 0x10016000)) I2CParams(address = 0x10016000))
case PeripheryMockAONKey =>
MockAONParams(address = 0x10000000)
case DTSTimebase => BigInt(32768) case DTSTimebase => BigInt(32768)
case JtagDTMKey => new JtagDTMConfig ( case JtagDTMKey => new JtagDTMConfig (
idcodeVersion = 2, idcodeVersion = 2,

View File

@@ -14,10 +14,8 @@ import chipyard.{DigitalTop, DigitalTopModule}
// ------------------------------------ // ------------------------------------
class E300DigitalTop(implicit p: Parameters) extends DigitalTop class E300DigitalTop(implicit p: Parameters) extends DigitalTop
with sifive.blocks.devices.mockaon.HasPeripheryMockAON
{ {
override lazy val module = new E300DigitalTopModule(this) override lazy val module = new E300DigitalTopModule(this)
} }
class E300DigitalTopModule[+L <: E300DigitalTop](l: L) extends DigitalTopModule(l) class E300DigitalTopModule[+L <: E300DigitalTop](l: L) extends DigitalTopModule(l)
with sifive.blocks.devices.mockaon.HasPeripheryMockAONModuleImp

View File

@@ -12,7 +12,6 @@ import sifive.blocks.devices.uart._
import sifive.blocks.devices.spi._ import sifive.blocks.devices.spi._
import sifive.blocks.devices.pwm._ import sifive.blocks.devices.pwm._
import sifive.blocks.devices.i2c._ import sifive.blocks.devices.i2c._
import sifive.blocks.devices.mockaon._
import sifive.blocks.devices.jtag._ import sifive.blocks.devices.jtag._
import sifive.blocks.devices.pinctrl._ import sifive.blocks.devices.pinctrl._
@@ -31,7 +30,6 @@ class WithE300Connections extends OverrideIOBinder({
with HasPeripheryDebugModuleImp with HasPeripheryDebugModuleImp
with HasPeripheryPWMModuleImp with HasPeripheryPWMModuleImp
with HasPeripherySPIFlashModuleImp with HasPeripherySPIFlashModuleImp
with HasPeripheryMockAONModuleImp
with HasPeripheryI2CModuleImp) => { with HasPeripheryI2CModuleImp) => {
implicit val p: Parameters = GetSystemParameters(system) implicit val p: Parameters = GetSystemParameters(system)
@@ -52,7 +50,6 @@ class WithE300Connections extends OverrideIOBinder({
val io_jtag = IO(new JTAGPins(() => PinGen(), false)).suggestName("jtag") val io_jtag = IO(new JTAGPins(() => PinGen(), false)).suggestName("jtag")
val io_gpio = IO(new GPIOPins(() => PinGen(), p(PeripheryGPIOKey)(0))).suggestName("gpio") val io_gpio = IO(new GPIOPins(() => PinGen(), p(PeripheryGPIOKey)(0))).suggestName("gpio")
val io_qspi = IO(new SPIPins(() => PinGen(), p(PeripherySPIFlashKey)(0))).suggestName("qspi") val io_qspi = IO(new SPIPins(() => PinGen(), p(PeripherySPIFlashKey)(0))).suggestName("qspi")
val io_aon = IO(new MockAONWrapperPins()).suggestName("aon")
val io_jtag_reset = IO(Input(Bool())).suggestName("jtag_reset") val io_jtag_reset = IO(Input(Bool())).suggestName("jtag_reset")
val io_ndreset = IO(Output(Bool())).suggestName("ndreset") val io_ndreset = IO(Output(Bool())).suggestName("ndreset")
@@ -174,7 +171,6 @@ class WithE300Connections extends OverrideIOBinder({
// AON Pads -- direct connection is OK because // AON Pads -- direct connection is OK because
// EnhancedPin is hard-coded in MockAONPads // EnhancedPin is hard-coded in MockAONPads
// and thus there is no .fromPort method. // and thus there is no .fromPort method.
io_aon <> system.aon.pins
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@@ -322,12 +318,6 @@ class WithE300Connections extends OverrideIOBinder({
IOBUF(th.btn_1, io_gpio.pins(30)) IOBUF(th.btn_1, io_gpio.pins(30))
IOBUF(th.btn_2, io_gpio.pins(31)) IOBUF(th.btn_2, io_gpio.pins(31))
val iobuf_btn_3 = Module(new IOBUF())
iobuf_btn_3.io.I := ~io_aon.pmu.dwakeup_n.o.oval
iobuf_btn_3.io.T := ~io_aon.pmu.dwakeup_n.o.oe
attach(th.btn_3, iobuf_btn_3.io.IO)
io_aon.pmu.dwakeup_n.i.ival := ~iobuf_btn_3.io.O & io_aon.pmu.dwakeup_n.o.ie
// UART1 RX/TX pins are assigned to PMOD_D connector pins 0/1 // UART1 RX/TX pins are assigned to PMOD_D connector pins 0/1
IOBUF(th.ja_0, io_gpio.pins(25)) // UART1 TX IOBUF(th.ja_0, io_gpio.pins(25)) // UART1 TX
IOBUF(th.ja_1, io_gpio.pins(24)) // UART1 RX IOBUF(th.ja_1, io_gpio.pins(24)) // UART1 RX
@@ -343,16 +333,12 @@ class WithE300Connections extends OverrideIOBinder({
// Use the LEDs for some more useful debugging things // Use the LEDs for some more useful debugging things
IOBUF(th.led_0, th.ck_rst) IOBUF(th.led_0, th.ck_rst)
IOBUF(th.led_1, th.SRST_n) IOBUF(th.led_1, th.SRST_n)
IOBUF(th.led_2, io_aon.pmu.dwakeup_n.i.ival)
IOBUF(th.led_3, io_gpio.pins(14)) IOBUF(th.led_3, io_gpio.pins(14))
//--------------------------------------------------------------------- //---------------------------------------------------------------------
// Unconnected inputs // Unconnected inputs
//--------------------------------------------------------------------- //---------------------------------------------------------------------
io_aon.erst_n.i.ival := ~th.reset_periph
io_aon.lfextclk.i.ival := slow_clock
io_aon.pmu.vddpaden.i.ival := 1.U
} }
Nil Nil