1# Copyright (c) 2009-2017 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 219 unchanged lines hidden (view full) ---

228 cxx_header = "dev/arm/timer_sp804.hh"
229 gic = Param.BaseGic(Parent.any, "Gic to use for interrupting")
230 int_num0 = Param.UInt32("Interrupt number that connects to GIC")
231 clock0 = Param.Clock('1MHz', "Clock speed of the input")
232 int_num1 = Param.UInt32("Interrupt number that connects to GIC")
233 clock1 = Param.Clock('1MHz', "Clock speed of the input")
234 amba_id = 0x00141804
235
236class A9GlobalTimer(BasicPioDevice):
237 type = 'A9GlobalTimer'
238 cxx_header = "dev/arm/timer_a9global.hh"
239 gic = Param.BaseGic(Parent.any, "Gic to use for interrupting")
240 int_num = Param.UInt32("Interrrupt number that connects to GIC")
241
242class CpuLocalTimer(BasicPioDevice):
243 type = 'CpuLocalTimer'
244 cxx_header = "dev/arm/timer_cpulocal.hh"
245 gic = Param.BaseGic(Parent.any, "Gic to use for interrupting")
246 int_num_timer = Param.UInt32("Interrrupt number used per-cpu to GIC")
247 int_num_watchdog = Param.UInt32("Interrupt number for per-cpu watchdog to GIC")
248
249class GenericTimer(SimObject):

--- 128 unchanged lines hidden (view full) ---

378 mcc = VExpressMCC()
379 dcc = CoreTile2A15DCC()
380 gic = Pl390()
381 pci_host = GenericPciHost(
382 conf_base=0x30000000, conf_size='256MB', conf_device_bits=16,
383 pci_pio_base=0)
384 timer0 = Sp804(int_num0=36, int_num1=36, pio_addr=0x10011000)
385 timer1 = Sp804(int_num0=37, int_num1=37, pio_addr=0x10012000)
380 local_cpu_timer = CpuLocalTimer(int_num_timer=29, int_num_watchdog=30, pio_addr=0x1f000600)
386 global_timer = A9GlobalTimer(int_num=27, pio_addr=0x1f000200)
387 local_cpu_timer = CpuLocalTimer(int_num_timer=29, int_num_watchdog=30,
388 pio_addr=0x1f000600)
389 clcd = Pl111(pio_addr=0x10020000, int_num=55)
390 kmi0 = Pl050(pio_addr=0x10006000, int_num=52)
391 kmi1 = Pl050(pio_addr=0x10007000, int_num=53, is_mouse=True)
392 a9scu = A9SCU(pio_addr=0x1f000000)
393 cf_ctrl = IdeController(disks=[], pci_func=0, pci_dev=7, pci_bus=2,
394 io_shift = 1, ctrl_offset = 2, Command = 0x1,
395 BAR0 = 0x18000000, BAR0Size = '16B',
396 BAR1 = 0x18000100, BAR1Size = '1B',

--- 22 unchanged lines hidden (view full) ---

419
420
421 # Attach I/O devices that are on chip and also set the appropriate
422 # ranges for the bridge
423 def attachOnChipIO(self, bus, bridge):
424 self.gic.pio = bus.master
425 self.l2x0_fake.pio = bus.master
426 self.a9scu.pio = bus.master
427 self.global_timer.pio = bus.master
428 self.local_cpu_timer.pio = bus.master
429 # Bridge ranges based on excluding what is part of on-chip I/O
430 # (gic, l2x0, a9scu, local_cpu_timer)
431 bridge.ranges = [AddrRange(self.realview_io.pio_addr,
432 self.a9scu.pio_addr - 1),
433 AddrRange(self.flash_fake.pio_addr,
434 self.flash_fake.pio_addr + \
435 self.flash_fake.pio_size - 1)]

--- 505 unchanged lines hidden ---