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