Removed AON block from E300 design. Debug over JTAG still functioning.
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user