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) |
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 --- |