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