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