summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Herrera <adrian.herrera@arm.com>2019-11-14 14:57:27 +0000
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2020-01-23 12:56:28 +0000
commitb0de06c5d3e6c1c05eb5f7c92b1a4de0c5a9858a (patch)
treef474e6ae5742bdf8448a0b8969b80f45e372fb54
parent7eff800801286eed6a75ba0efa3badf83f735539 (diff)
downloadgem5-b0de06c5d3e6c1c05eb5f7c92b1a4de0c5a9858a.tar.xz
dev-arm: SP805 peripherals in VExpress_GEM5_Base
This patch adds the SP805 watchdog peripherals to the VExpress_GEM5_Base platform. Change-Id: I5c597d4d169359c1bde4bc4c7b3403091c772808 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24206 Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
-rw-r--r--src/dev/arm/RealView.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/dev/arm/RealView.py b/src/dev/arm/RealView.py
index 73f654ddf..c2d88243e 100644
--- a/src/dev/arm/RealView.py
+++ b/src/dev/arm/RealView.py
@@ -892,6 +892,7 @@ Memory map:
0x1c0a0000-0x1c0affff: UART1 (reserved)
0x1c0b0000-0x1c0bffff: UART2 (reserved)
0x1c0c0000-0x1c0cffff: UART3 (reserved)
+ 0x1c0f0000-0x1c0fffff: Watchdog (SP805)
0x1c130000-0x1c13ffff: VirtIO (gem5/FM extension)
0x1c140000-0x1c14ffff: VirtIO (gem5/FM extension)
0x1c170000-0x1c17ffff: RTC
@@ -899,6 +900,8 @@ Memory map:
0x20000000-0x3fffffff: On-chip peripherals:
0x2b000000-0x2b00ffff: HDLCD
+ 0x2b060000-0x2b060fff: System Watchdog (SP805)
+
0x2b400000-0x2b41ffff: SMMUv3
0x2c001000-0x2c001fff: GIC (distributor)
@@ -927,7 +930,7 @@ Interrupts:
30 : generic_timer (phys, non-sec)
31 : Reserved (Legacy IRQ)
32- 95: Mother board peripherals (SPIs)
- 32 : Reserved (SP805)
+ 32 : Watchdog (SP805)
33 : Reserved (IOFPGA SW int)
34-35: Reserved (SP804)
36 : RTC
@@ -945,6 +948,7 @@ Interrupts:
95 : HDLCD
96- 98: GPU (reserved)
100-103: PCI
+ 130 : System Watchdog (SP805)
256-319: MSI frame 0 (gem5-specific, SPIs)
320-511: Unused
@@ -975,9 +979,12 @@ Interrupts:
int_virt=ArmPPI(num=27),
int_hyp=ArmPPI(num=26))
+ system_watchdog = Sp805(pio_addr=0x2b060000, int_num=130)
+
def _on_chip_devices(self):
return [
self.generic_timer,
+ self.system_watchdog
]
def _on_chip_memory(self):
@@ -998,6 +1005,8 @@ Interrupts:
kmi0 = Pl050(pio_addr=0x1c060000, int_num=44, ps2=PS2Keyboard())
kmi1 = Pl050(pio_addr=0x1c070000, int_num=45, ps2=PS2TouchKit())
+ watchdog = Sp805(pio_addr=0x1c0f0000, int_num=32)
+
rtc = PL031(pio_addr=0x1c170000, int_num=36)
### gem5-specific off-chip devices ###
@@ -1021,6 +1030,7 @@ Interrupts:
self.uart[0],
self.kmi0,
self.kmi1,
+ self.watchdog,
self.rtc,
self.pci_host,
self.energy_ctrl,
@@ -1034,6 +1044,8 @@ Interrupts:
super(VExpress_GEM5_Base, self).__init__(**kwargs)
self.clock32KHz.voltage_domain = self.io_voltage
self.clock24MHz.voltage_domain = self.io_voltage
+ self.system_watchdog.clk_domain = self.dcc.osc_sys
+ self.watchdog.clk_domain = self.clock32KHz
def attachPciDevice(self, device, *args, **kwargs):
device.host = self.pci_host