RealView.py (12069:6554872926ec) RealView.py (12077:3c014d139dc7)
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
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
236class CpuLocalTimer(BasicPioDevice):
237 type = 'CpuLocalTimer'
238 cxx_header = "dev/arm/timer_cpulocal.hh"
239 gic = Param.BaseGic(Parent.any, "Gic to use for interrupting")
240 int_num_timer = Param.UInt32("Interrrupt number used per-cpu to GIC")
241 int_num_watchdog = Param.UInt32("Interrupt number for per-cpu watchdog to GIC")
242
243class GenericTimer(SimObject):

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

372 mcc = VExpressMCC()
373 dcc = CoreTile2A15DCC()
374 gic = Pl390()
375 pci_host = GenericPciHost(
376 conf_base=0x30000000, conf_size='256MB', conf_device_bits=16,
377 pci_pio_base=0)
378 timer0 = Sp804(int_num0=36, int_num1=36, pio_addr=0x10011000)
379 timer1 = Sp804(int_num0=37, int_num1=37, pio_addr=0x10012000)
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)
381 clcd = Pl111(pio_addr=0x10020000, int_num=55)
382 kmi0 = Pl050(pio_addr=0x10006000, int_num=52)
383 kmi1 = Pl050(pio_addr=0x10007000, int_num=53, is_mouse=True)
384 a9scu = A9SCU(pio_addr=0x1f000000)
385 cf_ctrl = IdeController(disks=[], pci_func=0, pci_dev=7, pci_bus=2,
386 io_shift = 1, ctrl_offset = 2, Command = 0x1,
387 BAR0 = 0x18000000, BAR0Size = '16B',
388 BAR1 = 0x18000100, BAR1Size = '1B',

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

411
412
413 # Attach I/O devices that are on chip and also set the appropriate
414 # ranges for the bridge
415 def attachOnChipIO(self, bus, bridge):
416 self.gic.pio = bus.master
417 self.l2x0_fake.pio = bus.master
418 self.a9scu.pio = bus.master
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
419 self.local_cpu_timer.pio = bus.master
420 # Bridge ranges based on excluding what is part of on-chip I/O
421 # (gic, l2x0, a9scu, local_cpu_timer)
422 bridge.ranges = [AddrRange(self.realview_io.pio_addr,
423 self.a9scu.pio_addr - 1),
424 AddrRange(self.flash_fake.pio_addr,
425 self.flash_fake.pio_addr + \
426 self.flash_fake.pio_size - 1)]

--- 505 unchanged lines hidden ---
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 ---