1# Copyright (c) 2012-2013, 2015 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 --- 71 unchanged lines hidden (view full) --- 80 from ArmInterrupts import ArmInterrupts 81 from ArmISA import ArmISA 82 isa_class = ArmISA 83elif buildEnv['TARGET_ISA'] == 'power': 84 from PowerTLB import PowerTLB 85 from PowerInterrupts import PowerInterrupts 86 from PowerISA import PowerISA 87 isa_class = PowerISA |
88elif buildEnv['TARGET_ISA'] == 'riscv': 89 from RiscvTLB import RiscvTLB 90 from RiscvInterrupts import RiscvInterrupts 91 from RiscvISA import RiscvISA 92 isa_class = RiscvISA |
93 94class BaseCPU(MemObject): 95 type = 'BaseCPU' 96 abstract = True 97 cxx_header = "cpu/base.hh" 98 99 @classmethod 100 def export_methods(cls, code): --- 84 unchanged lines hidden (view full) --- 185 isa = VectorParam.ArmISA([ isa_class() ], "ISA instance") 186 elif buildEnv['TARGET_ISA'] == 'power': 187 UnifiedTLB = Param.Bool(True, "Is this a Unified TLB?") 188 dtb = Param.PowerTLB(PowerTLB(), "Data TLB") 189 itb = Param.PowerTLB(PowerTLB(), "Instruction TLB") 190 interrupts = VectorParam.PowerInterrupts( 191 [], "Interrupt Controller") 192 isa = VectorParam.PowerISA([ isa_class() ], "ISA instance") |
193 elif buildEnv['TARGET_ISA'] == 'riscv': 194 dtb = Param.RiscvTLB(RiscvTLB(), "Data TLB") 195 itb = Param.RiscvTLB(RiscvTLB(), "Instruction TLB") 196 interrupts = VectorParam.RiscvInterrupts( 197 [], "Interrupt Controller") 198 isa = VectorParam.RiscvISA([ isa_class() ], "ISA instance") |
199 else: 200 print "Don't know what TLB to use for ISA %s" % \ 201 buildEnv['TARGET_ISA'] 202 sys.exit(1) 203 204 max_insts_all_threads = Param.Counter(0, 205 "terminate when all threads have reached this inst count") 206 max_insts_any_thread = Param.Counter(0, --- 41 unchanged lines hidden (view full) --- 248 for i in xrange(self.numThreads)] 249 _localApic = self.interrupts 250 elif buildEnv['TARGET_ISA'] == 'mips': 251 self.interrupts = [MipsInterrupts() for i in xrange(self.numThreads)] 252 elif buildEnv['TARGET_ISA'] == 'arm': 253 self.interrupts = [ArmInterrupts() for i in xrange(self.numThreads)] 254 elif buildEnv['TARGET_ISA'] == 'power': 255 self.interrupts = [PowerInterrupts() for i in xrange(self.numThreads)] |
256 elif buildEnv['TARGET_ISA'] == 'riscv': 257 self.interrupts = \ 258 [RiscvInterrupts() for i in xrange(self.numThreads)] |
259 else: 260 print "Don't know what Interrupt Controller to use for ISA %s" % \ 261 buildEnv['TARGET_ISA'] 262 sys.exit(1) 263 264 def connectCachedPorts(self, bus): 265 for p in self._cached_ports: 266 exec('self.%s = bus.slave' % p) --- 51 unchanged lines hidden --- |