diff options
Diffstat (limited to 'src/dev/arm/RealView.py')
-rw-r--r-- | src/dev/arm/RealView.py | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/src/dev/arm/RealView.py b/src/dev/arm/RealView.py index f2fc9c0af..f01572e40 100644 --- a/src/dev/arm/RealView.py +++ b/src/dev/arm/RealView.py @@ -50,6 +50,7 @@ from Platform import Platform from Terminal import Terminal from Uart import Uart from SimpleMemory import SimpleMemory +from Gic import * class AmbaDevice(BasicPioDevice): type = 'AmbaDevice' @@ -61,7 +62,7 @@ class AmbaIntDevice(AmbaDevice): type = 'AmbaIntDevice' abstract = True cxx_header = "dev/arm/amba_device.hh" - gic = Param.Gic(Parent.any, "Gic to use for interrupting") + gic = Param.BaseGic(Parent.any, "Gic to use for interrupting") int_num = Param.UInt32("Interrupt number that connects to GIC") int_delay = Param.Latency("100ns", "Time between action and interrupt generation by device") @@ -72,7 +73,7 @@ class AmbaDmaDevice(DmaDevice): cxx_header = "dev/arm/amba_device.hh" pio_addr = Param.Addr("Address for AMBA slave interface") pio_latency = Param.Latency("10ns", "Time between action and write/read result by AMBA DMA Device") - gic = Param.Gic(Parent.any, "Gic to use for interrupting") + gic = Param.BaseGic(Parent.any, "Gic to use for interrupting") int_num = Param.UInt32("Interrupt number that connects to GIC") amba_id = Param.UInt32("ID of AMBA device for kernel detection") @@ -87,17 +88,6 @@ class RealViewCtrl(BasicPioDevice): proc_id1 = Param.UInt32(0x0C000222, "Processor ID, SYS_PROCID1") idreg = Param.UInt32(0x00000000, "ID Register, SYS_ID") -class Gic(PioDevice): - type = 'Gic' - cxx_header = "dev/arm/gic.hh" - platform = Param.Platform(Parent.any, "Platform this device is part of.") - dist_addr = Param.Addr(0x1f001000, "Address for distributor") - cpu_addr = Param.Addr(0x1f000100, "Address for cpu") - dist_pio_delay = Param.Latency('10ns', "Delay for PIO r/w to distributor") - cpu_pio_delay = Param.Latency('10ns', "Delay for PIO r/w to cpu interface") - int_latency = Param.Latency('10ns', "Delay for interrupt to get to CPU") - it_lines = Param.UInt32(128, "Number of interrupt lines supported (max = 1020)") - class AmbaFake(AmbaDevice): type = 'AmbaFake' cxx_header = "dev/arm/amba_fake.hh" @@ -107,7 +97,7 @@ class AmbaFake(AmbaDevice): class Pl011(Uart): type = 'Pl011' cxx_header = "dev/arm/pl011.hh" - gic = Param.Gic(Parent.any, "Gic to use for interrupting") + gic = Param.BaseGic(Parent.any, "Gic to use for interrupting") int_num = Param.UInt32("Interrupt number that connects to GIC") end_on_eot = Param.Bool(False, "End the simulation when a EOT is received on the UART") int_delay = Param.Latency("100ns", "Time between action and interrupt generation by UART") @@ -115,7 +105,7 @@ class Pl011(Uart): class Sp804(AmbaDevice): type = 'Sp804' cxx_header = "dev/arm/timer_sp804.hh" - gic = Param.Gic(Parent.any, "Gic to use for interrupting") + gic = Param.BaseGic(Parent.any, "Gic to use for interrupting") int_num0 = Param.UInt32("Interrupt number that connects to GIC") clock0 = Param.Clock('1MHz', "Clock speed of the input") int_num1 = Param.UInt32("Interrupt number that connects to GIC") @@ -125,7 +115,7 @@ class Sp804(AmbaDevice): class CpuLocalTimer(BasicPioDevice): type = 'CpuLocalTimer' cxx_header = "dev/arm/timer_cpulocal.hh" - gic = Param.Gic(Parent.any, "Gic to use for interrupting") + gic = Param.BaseGic(Parent.any, "Gic to use for interrupting") int_num_timer = Param.UInt32("Interrrupt number used per-cpu to GIC") int_num_watchdog = Param.UInt32("Interrupt number for per-cpu watchdog to GIC") # Override the default clock @@ -174,7 +164,7 @@ class RealView(Platform): class RealViewPBX(RealView): uart = Pl011(pio_addr=0x10009000, int_num=44) realview_io = RealViewCtrl(pio_addr=0x10000000) - gic = Gic() + gic = Pl390() timer0 = Sp804(int_num0=36, int_num1=36, pio_addr=0x10011000) timer1 = Sp804(int_num0=37, int_num1=37, pio_addr=0x10012000) local_cpu_timer = CpuLocalTimer(int_num_timer=29, int_num_watchdog=30, pio_addr=0x1f000600) @@ -262,7 +252,7 @@ class RealViewPBX(RealView): class RealViewEB(RealView): uart = Pl011(pio_addr=0x10009000, int_num=44) realview_io = RealViewCtrl(pio_addr=0x10000000) - gic = Gic(dist_addr=0x10041000, cpu_addr=0x10040000) + gic = Pl390(dist_addr=0x10041000, cpu_addr=0x10040000) timer0 = Sp804(int_num0=36, int_num1=36, pio_addr=0x10011000) timer1 = Sp804(int_num0=37, int_num1=37, pio_addr=0x10012000) clcd = Pl111(pio_addr=0x10020000, int_num=23) @@ -338,7 +328,7 @@ class VExpress_EMM(RealView): pci_cfg_base = 0x30000000 uart = Pl011(pio_addr=0x1c090000, int_num=37) realview_io = RealViewCtrl(proc_id0=0x14000000, proc_id1=0x14000000, pio_addr=0x1C010000) - gic = Gic(dist_addr=0x2C001000, cpu_addr=0x2C002000) + gic = Pl390(dist_addr=0x2C001000, cpu_addr=0x2C002000) local_cpu_timer = CpuLocalTimer(int_num_timer=29, int_num_watchdog=30, pio_addr=0x2C080000) timer0 = Sp804(int_num0=34, int_num1=34, pio_addr=0x1C110000, clock0='1MHz', clock1='1MHz') timer1 = Sp804(int_num0=35, int_num1=35, pio_addr=0x1C120000, clock0='1MHz', clock1='1MHz') |