FSConfig.py (11563:1040cd2252d4) FSConfig.py (11598:e0ddee91eb13)
1# Copyright (c) 2010-2012, 2015 ARM Limited
1# Copyright (c) 2010-2012, 2015-2016 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
9# terms below provided that you ensure that this notice is replicated

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

198 self.partition_desc_bin = binary('1up-md.bin')
199
200 self.system_port = self.membus.slave
201
202 return self
203
204def makeArmSystem(mem_mode, machine_type, num_cpus=1, mdesc=None,
205 dtb_filename=None, bare_metal=False, cmdline=None,
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
9# terms below provided that you ensure that this notice is replicated

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

198 self.partition_desc_bin = binary('1up-md.bin')
199
200 self.system_port = self.membus.slave
201
202 return self
203
204def makeArmSystem(mem_mode, machine_type, num_cpus=1, mdesc=None,
205 dtb_filename=None, bare_metal=False, cmdline=None,
206 external_memory=""):
206 external_memory="", ruby=False):
207 assert machine_type
208
209 default_dtbs = {
210 "RealViewEB": None,
211 "RealViewPBX": None,
212 "VExpress_EMM": "vexpress.aarch32.ll_20131205.0-gem5.%dcpu.dtb" % num_cpus,
213 "VExpress_EMM64": "vexpress.aarch64.20140821.dtb",
214 }

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

228 self = LinuxArmSystem()
229
230 if not mdesc:
231 # generic system
232 mdesc = SysConfig()
233
234 self.readfile = mdesc.script()
235 self.iobus = IOXBar()
207 assert machine_type
208
209 default_dtbs = {
210 "RealViewEB": None,
211 "RealViewPBX": None,
212 "VExpress_EMM": "vexpress.aarch32.ll_20131205.0-gem5.%dcpu.dtb" % num_cpus,
213 "VExpress_EMM64": "vexpress.aarch64.20140821.dtb",
214 }

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

228 self = LinuxArmSystem()
229
230 if not mdesc:
231 # generic system
232 mdesc = SysConfig()
233
234 self.readfile = mdesc.script()
235 self.iobus = IOXBar()
236 self.membus = MemBus()
237 self.membus.badaddr_responder.warn_access = "warn"
238 self.bridge = Bridge(delay='50ns')
239 self.bridge.master = self.iobus.slave
240 self.bridge.slave = self.membus.master
236 if not ruby:
237 self.bridge = Bridge(delay='50ns')
238 self.bridge.master = self.iobus.slave
239 self.membus = MemBus()
240 self.membus.badaddr_responder.warn_access = "warn"
241 self.bridge.slave = self.membus.master
241
242 self.mem_mode = mem_mode
243
244 platform_class = PlatformConfig.get(machine_type)
245 # Resolve the real platform name, the original machine_type
246 # variable might have been an alias.
247 machine_type = platform_class.__name__
248 self.realview = platform_class()

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

313 'lpj=19988480 norandmaps rw loglevel=8 ' + \
314 'mem=%(mem)s root=%(rootdev)s'
315
316 # When using external memory, gem5 writes the boot loader to nvmem
317 # and then SST will read from it, but SST can only get to nvmem from
318 # iobus, as gem5's membus is only used for initialization and
319 # SST doesn't use it. Attaching nvmem to iobus solves this issue.
320 # During initialization, system_port -> membus -> iobus -> nvmem.
242
243 self.mem_mode = mem_mode
244
245 platform_class = PlatformConfig.get(machine_type)
246 # Resolve the real platform name, the original machine_type
247 # variable might have been an alias.
248 machine_type = platform_class.__name__
249 self.realview = platform_class()

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

314 'lpj=19988480 norandmaps rw loglevel=8 ' + \
315 'mem=%(mem)s root=%(rootdev)s'
316
317 # When using external memory, gem5 writes the boot loader to nvmem
318 # and then SST will read from it, but SST can only get to nvmem from
319 # iobus, as gem5's membus is only used for initialization and
320 # SST doesn't use it. Attaching nvmem to iobus solves this issue.
321 # During initialization, system_port -> membus -> iobus -> nvmem.
321 if external_memory:
322 if external_memory or ruby:
322 self.realview.setupBootLoader(self.iobus, self, binary)
323 else:
324 self.realview.setupBootLoader(self.membus, self, binary)
325 self.gic_cpu_addr = self.realview.gic.cpu_addr
326 self.flags_addr = self.realview.realview_io.pio_addr + 0x30
327
328 # This check is for users who have previously put 'android' in
329 # the disk image filename to tell the config scripts to

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

361 port_type=external_memory,
362 addr_ranges=self.mem_ranges)
363 self.iocache.port = self.iobus.master
364
365 # Let system_port get to nvmem and nothing else.
366 self.bridge.ranges = [self.realview.nvmem.range]
367
368 self.realview.attachOnChipIO(self.iobus)
323 self.realview.setupBootLoader(self.iobus, self, binary)
324 else:
325 self.realview.setupBootLoader(self.membus, self, binary)
326 self.gic_cpu_addr = self.realview.gic.cpu_addr
327 self.flags_addr = self.realview.realview_io.pio_addr + 0x30
328
329 # This check is for users who have previously put 'android' in
330 # the disk image filename to tell the config scripts to

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

362 port_type=external_memory,
363 addr_ranges=self.mem_ranges)
364 self.iocache.port = self.iobus.master
365
366 # Let system_port get to nvmem and nothing else.
367 self.bridge.ranges = [self.realview.nvmem.range]
368
369 self.realview.attachOnChipIO(self.iobus)
370 # Attach off-chip devices
371 self.realview.attachIO(self.iobus)
372 elif ruby:
373 self._dma_ports = [ ]
374 self.realview.attachOnChipIO(self.iobus, dma_ports=self._dma_ports)
375 # Force Ruby to treat the boot ROM as an IO device.
376 self.realview.nvmem.in_addr_map = False
377 self.realview.attachIO(self.iobus, dma_ports=self._dma_ports)
369 else:
370 self.realview.attachOnChipIO(self.membus, self.bridge)
378 else:
379 self.realview.attachOnChipIO(self.membus, self.bridge)
380 # Attach off-chip devices
381 self.realview.attachIO(self.iobus)
371
382
372 # Attach off-chip devices
373 self.realview.attachIO(self.iobus)
374 for dev_id, dev in enumerate(pci_devices):
375 dev.pci_bus, dev.pci_dev, dev.pci_func = (0, dev_id + 1, 0)
383 for dev_id, dev in enumerate(pci_devices):
384 dev.pci_bus, dev.pci_dev, dev.pci_func = (0, dev_id + 1, 0)
376 self.realview.attachPciDevice(dev, self.iobus)
385 self.realview.attachPciDevice(
386 dev, self.iobus,
387 dma_ports=self._dma_ports if ruby else None)
377
378 self.intrctrl = IntrControl()
379 self.terminal = Terminal()
380 self.vncserver = VncServer()
381
388
389 self.intrctrl = IntrControl()
390 self.terminal = Terminal()
391 self.vncserver = VncServer()
392
382 self.system_port = self.membus.slave
393 if not ruby:
394 self.system_port = self.membus.slave
383
384 return self
385
386
387def makeLinuxMipsSystem(mem_mode, mdesc=None, cmdline=None):
388 class BaseMalta(Malta):
389 ethernet = NSGigE(pci_bus=0, pci_dev=1, pci_func=0)
390 ide = IdeController(disks=[Parent.disk0, Parent.disk2],

--- 316 unchanged lines hidden ---
395
396 return self
397
398
399def makeLinuxMipsSystem(mem_mode, mdesc=None, cmdline=None):
400 class BaseMalta(Malta):
401 ethernet = NSGigE(pci_bus=0, pci_dev=1, pci_func=0)
402 ide = IdeController(disks=[Parent.disk0, Parent.disk2],

--- 316 unchanged lines hidden ---