RealView.py (12733:fd6b0c5419aa) RealView.py (12741:6d088ffe06b1)
1# Copyright (c) 2009-2018 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

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

58from Gic import *
59from EnergyCtrl import EnergyCtrl
60from ClockedObject import ClockedObject
61from ClockDomain import SrcClockDomain
62from SubSystem import SubSystem
63from Graphics import ImageFormat
64from ClockedObject import ClockedObject
65from PS2 import *
1# Copyright (c) 2009-2018 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

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

58from Gic import *
59from EnergyCtrl import EnergyCtrl
60from ClockedObject import ClockedObject
61from ClockDomain import SrcClockDomain
62from SubSystem import SubSystem
63from Graphics import ImageFormat
64from ClockedObject import ClockedObject
65from PS2 import *
66from VirtIOMMIO import MmioVirtIO
66
67# Platforms with KVM support should generally use in-kernel GIC
68# emulation. Use a GIC model that automatically switches between
69# gem5's GIC model and KVM's GIC model if KVM is available.
70try:
71 from KvmGic import MuxingKvmGic
72 kvm_gicv2_class = MuxingKvmGic
73except ImportError:

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

1040 0x1c000000-0x1fffffff: Peripheral block 1 (Off-chip, CS3):
1041 0x1c010000-0x1c01ffff: realview_io (VE system control regs.)
1042 0x1c060000-0x1c06ffff: KMI0 (keyboard)
1043 0x1c070000-0x1c07ffff: KMI1 (mouse)
1044 0x1c090000-0x1c09ffff: UART0
1045 0x1c0a0000-0x1c0affff: UART1 (reserved)
1046 0x1c0b0000-0x1c0bffff: UART2 (reserved)
1047 0x1c0c0000-0x1c0cffff: UART3 (reserved)
67
68# Platforms with KVM support should generally use in-kernel GIC
69# emulation. Use a GIC model that automatically switches between
70# gem5's GIC model and KVM's GIC model if KVM is available.
71try:
72 from KvmGic import MuxingKvmGic
73 kvm_gicv2_class = MuxingKvmGic
74except ImportError:

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

1041 0x1c000000-0x1fffffff: Peripheral block 1 (Off-chip, CS3):
1042 0x1c010000-0x1c01ffff: realview_io (VE system control regs.)
1043 0x1c060000-0x1c06ffff: KMI0 (keyboard)
1044 0x1c070000-0x1c07ffff: KMI1 (mouse)
1045 0x1c090000-0x1c09ffff: UART0
1046 0x1c0a0000-0x1c0affff: UART1 (reserved)
1047 0x1c0b0000-0x1c0bffff: UART2 (reserved)
1048 0x1c0c0000-0x1c0cffff: UART3 (reserved)
1049 0x1c130000-0x1c13ffff: VirtIO (gem5/FM extension)
1050 0x1c140000-0x1c14ffff: VirtIO (gem5/FM extension)
1048 0x1c170000-0x1c17ffff: RTC
1049
1050 0x20000000-0x3fffffff: On-chip peripherals:
1051 0x2b000000-0x2b00ffff: HDLCD
1052
1053 0x2c001000-0x2c001fff: GIC (distributor)
1054 0x2c002000-0x2c0020ff: GIC (CPU interface)
1055 0x2c004000-0x2c005fff: vGIC (HV)

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

1084 41-42: Reserved (PL180)
1085 43 : Reserved (AACI)
1086 44-45: kmi0-kmi1
1087 46 : Reserved (CLCD)
1088 47 : Reserved (Ethernet)
1089 48 : Reserved (USB)
1090 95-255: On-chip interrupt sources (we use these for
1091 gem5-specific devices, SPIs)
1051 0x1c170000-0x1c17ffff: RTC
1052
1053 0x20000000-0x3fffffff: On-chip peripherals:
1054 0x2b000000-0x2b00ffff: HDLCD
1055
1056 0x2c001000-0x2c001fff: GIC (distributor)
1057 0x2c002000-0x2c0020ff: GIC (CPU interface)
1058 0x2c004000-0x2c005fff: vGIC (HV)

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

1087 41-42: Reserved (PL180)
1088 43 : Reserved (AACI)
1089 44-45: kmi0-kmi1
1090 46 : Reserved (CLCD)
1091 47 : Reserved (Ethernet)
1092 48 : Reserved (USB)
1093 95-255: On-chip interrupt sources (we use these for
1094 gem5-specific devices, SPIs)
1095 74 : VirtIO (gem5/FM extension)
1096 75 : VirtIO (gem5/FM extension)
1092 95 : HDLCD
1093 96- 98: GPU (reserved)
1094 100-103: PCI
1095 256-319: MSI frame 0 (gem5-specific, SPIs)
1096 320-511: Unused
1097
1098 """
1099

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

1149 ### gem5-specific off-chip devices ###
1150 pci_host = GenericArmPciHost(
1151 conf_base=0x30000000, conf_size='256MB', conf_device_bits=12,
1152 pci_pio_base=0x2f000000,
1153 int_policy="ARM_PCI_INT_DEV", int_base=100, int_count=4)
1154
1155 energy_ctrl = EnergyCtrl(pio_addr=0x10000000)
1156
1097 95 : HDLCD
1098 96- 98: GPU (reserved)
1099 100-103: PCI
1100 256-319: MSI frame 0 (gem5-specific, SPIs)
1101 320-511: Unused
1102
1103 """
1104

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

1154 ### gem5-specific off-chip devices ###
1155 pci_host = GenericArmPciHost(
1156 conf_base=0x30000000, conf_size='256MB', conf_device_bits=12,
1157 pci_pio_base=0x2f000000,
1158 int_policy="ARM_PCI_INT_DEV", int_base=100, int_count=4)
1159
1160 energy_ctrl = EnergyCtrl(pio_addr=0x10000000)
1161
1162 vio = [
1163 MmioVirtIO(pio_addr=0x1c130000, pio_size=0x1000,
1164 interrupt=ArmSPI(num=74)),
1165 MmioVirtIO(pio_addr=0x1c140000, pio_size=0x1000,
1166 interrupt=ArmSPI(num=75)),
1167 ]
1157
1158 def _off_chip_devices(self):
1159 return [
1160 self.realview_io,
1161 self.uart0,
1162 self.kmi0,
1163 self.kmi1,
1164 self.rtc,
1165 self.pci_host,
1166 self.energy_ctrl,
1167 self.clock24MHz,
1168
1169 def _off_chip_devices(self):
1170 return [
1171 self.realview_io,
1172 self.uart0,
1173 self.kmi0,
1174 self.kmi1,
1175 self.rtc,
1176 self.pci_host,
1177 self.energy_ctrl,
1178 self.clock24MHz,
1179 self.vio[0],
1180 self.vio[1],
1168 ]
1169
1170 def attachPciDevice(self, device, *args, **kwargs):
1171 device.host = self.pci_host
1172 self._attach_device(device, *args, **kwargs)
1173
1174 def setupBootLoader(self, mem_bus, cur_sys, loc):
1175 cur_sys.bootmem = SimpleMemory(range=AddrRange(0, size='64MB'),

--- 26 unchanged lines hidden ---
1181 ]
1182
1183 def attachPciDevice(self, device, *args, **kwargs):
1184 device.host = self.pci_host
1185 self._attach_device(device, *args, **kwargs)
1186
1187 def setupBootLoader(self, mem_bus, cur_sys, loc):
1188 cur_sys.bootmem = SimpleMemory(range=AddrRange(0, size='64MB'),

--- 26 unchanged lines hidden ---