changeset 1f95c9a0bb2f in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=1f95c9a0bb2f
description:
ARM: Add some MP regressions and clean up the disk images and kernels a
bit
diffstat:
configs/common/Benchmarks.py
| 5 +-
configs/common/FSConfig.py
| 62 +-
tests/SConscript
| 5 +-
tests/configs/realview-o3-dual.py
| 101 +
tests/configs/realview-o3.py
| 4 +-
tests/configs/realview-simple-atomic-dual.py
| 101 +
tests/configs/realview-simple-atomic.py
| 4 +-
tests/configs/realview-simple-timing-dual.py
| 101 +
tests/configs/realview-simple-timing.py
| 4 +-
tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/config.ini
| 1500 ++++++++++
tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/simerr
| 19 +
tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/simout
| 12 +
tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/stats.txt
| 1384 +++++++++
tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/status
| 1 +
tests/long/10.linux-boot/ref/arm/linux/realview-o3-dual/system.terminal
| 0
tests/long/10.linux-boot/ref/arm/linux/realview-o3/config.ini
| 72 +-
tests/long/10.linux-boot/ref/arm/linux/realview-o3/simerr
| 12 +-
tests/long/10.linux-boot/ref/arm/linux/realview-o3/simout
| 2 +-
tests/long/10.linux-boot/ref/arm/linux/realview-o3/stats.txt
| 1123 +++---
tests/long/10.linux-boot/ref/arm/linux/realview-o3/status
| 1 -
tests/long/10.linux-boot/ref/arm/linux/realview-o3/system.terminal
| 0
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic-dual/config.ini
| 846 +++++
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic-dual/simerr
| 18 +
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic-dual/simout
| 12 +
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic-dual/stats.txt
| 699 ++++
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic-dual/status
| 1 +
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic-dual/system.terminal
| 0
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/config.ini
| 94 +-
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/simerr
| 30 +-
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/simout
| 21 +-
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/stats.txt
| 768 ++--
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/status
| 2 +-
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/system.terminal
| 0
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing-dual/config.ini
| 840 +++++
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing-dual/simerr
| 18 +
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing-dual/simout
| 12 +
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing-dual/stats.txt
| 868 +++++
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing-dual/status
| 1 +
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing-dual/system.terminal
| 0
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/config.ini
| 94 +-
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/simerr
| 30 +-
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/simout
| 21 +-
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/stats.txt
| 938 +++---
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/status
| 2 +-
tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/system.terminal
| 0
45 files changed, 8219 insertions(+), 1609 deletions(-)
diffs (truncated from 10654 to 300 lines):
diff -r 6bac5b04d588 -r 1f95c9a0bb2f configs/common/Benchmarks.py
--- a/configs/common/Benchmarks.py Fri Aug 19 15:08:08 2011 -0500
+++ b/configs/common/Benchmarks.py Fri Aug 19 15:08:09 2011 -0500
@@ -56,7 +56,7 @@
elif buildEnv['TARGET_ISA'] == 'x86':
return env.get('LINUX_IMAGE', disk('x86root.img'))
elif buildEnv['TARGET_ISA'] == 'arm':
- return env.get('LINUX_IMAGE', disk('ael-arm.ext2'))
+ return env.get('LINUX_IMAGE', disk('linux-arm-ael.img'))
else:
print "Don't know what default disk image to use for ISA %s" % \
buildEnv['TARGET_ISA']
@@ -111,9 +111,6 @@
'ValStreamCopy': [SysConfig('micro_streamcopy.rcS', '512MB')],
'MutexTest': [SysConfig('mutex-test.rcS', '128MB')],
- 'ArmLinux': [SysConfig('null.rcS', '128MB', 'ael-arm.ext2')],
- 'ArmLinuxFrameBuf': [SysConfig('null.rcS', '128MB', 'ael-full.ext2')],
- 'ArmLinuxCflash': [SysConfig('null.rcS', '256MB', 'linux-arm.img')],
'ArmAndroid': [SysConfig('null.rcS', '256MB', 'android-mbr.img')],
}
diff -r 6bac5b04d588 -r 1f95c9a0bb2f configs/common/FSConfig.py
--- a/configs/common/FSConfig.py Fri Aug 19 15:08:08 2011 -0500
+++ b/configs/common/FSConfig.py Fri Aug 19 15:08:09 2011 -0500
@@ -41,6 +41,7 @@
from m5.objects import *
from Benchmarks import *
+from m5.util import convert
class CowIdeDisk(IdeDisk):
image = CowDiskImage(child=RawDiskImage(read_only=True),
@@ -216,47 +217,40 @@
print "Unknown Machine Type"
sys.exit(1)
- use_cf = False
- if mdesc.disk()[-4:] == ".img":
- use_cf = True
- self.cf0 = CowIdeDisk(driveID='master')
- self.cf0.childImage(mdesc.disk())
- # default to an IDE controller rather than a CF one
- # assuming we've got one
- try:
- self.realview.ide.disks = [self.cf0]
- except:
- self.realview.cf_ctrl.disks = [self.cf0]
+ self.cf0 = CowIdeDisk(driveID='master')
+ self.cf0.childImage(mdesc.disk())
+ # default to an IDE controller rather than a CF one
+ # assuming we've got one
+ try:
+ self.realview.ide.disks = [self.cf0]
+ except:
+ self.realview.cf_ctrl.disks = [self.cf0]
+
if bare_metal:
# EOT character on UART will end the simulation
self.realview.uart.end_on_eot = True
- self.physmem = PhysicalMemory(range = AddrRange(Addr('256MB')),
+ self.physmem = PhysicalMemory(range = AddrRange(Addr(mdesc.mem())),
zero = True)
else:
- self.kernel = binary('vmlinux.arm')
+ self.kernel = binary('vmlinux.arm.smp.fb.2.6.38.8')
self.machine_type = machine_type
+ if convert.toMemorySize(mdesc.mem()) > convert.toMemorySize('256MB'):
+ print "The currently implemented ARM platforms only easily support
256MB of DRAM"
+ print "It might be possible to get some more by using
256MB@0x30000000, but this"
+ print "is untested and may require some heroics"
+
boot_flags = 'earlyprintk console=ttyAMA0 lpj=19988480 norandmaps ' + \
- 'rw loglevel=8 '
- if use_cf:
- self.physmem = PhysicalMemory(range = AddrRange(Addr('256MB')),
- zero = True)
- boot_flags += "mem=256MB root=/dev/sda1 "
- self.nvmem = PhysicalMemory(range = AddrRange(Addr('2GB'),
- size = '64MB'), zero = True)
- self.nvmem.port = self.membus.port
- self.boot_loader = binary('boot.arm')
- self.boot_loader_mem = self.nvmem
- self.gic_cpu_addr = self.realview.gic.cpu_addr
- self.flags_addr = self.realview.realview_io.pio_addr + 0x30
- else:
- self.physmem = PhysicalMemory(range = AddrRange(Addr('128MB')),
- zero = True)
- self.diskmem = PhysicalMemory(range = AddrRange(Addr('128MB'),
- size = '128MB'),
- file = disk(mdesc.disk()))
- self.diskmem.port = self.membus.port
- boot_flags += "mem=128MB slram=slram0,0x8000000,+0x8000000 " + \
- "mtdparts=slram0:- root=/dev/mtdblock0 "
+ 'rw loglevel=8 mem=%s root=/dev/sda1' % mdesc.mem()
+
+ self.physmem = PhysicalMemory(range = AddrRange(Addr(mdesc.mem())),
+ zero = True)
+ self.nvmem = PhysicalMemory(range = AddrRange(Addr('2GB'),
+ size = '64MB'), zero = True)
+ self.nvmem.port = self.membus.port
+ self.boot_loader = binary('boot.arm')
+ self.boot_loader_mem = self.nvmem
+ self.gic_cpu_addr = self.realview.gic.cpu_addr
+ self.flags_addr = self.realview.realview_io.pio_addr + 0x30
if mdesc.disk().count('android'):
boot_flags += "init=/init "
diff -r 6bac5b04d588 -r 1f95c9a0bb2f tests/SConscript
--- a/tests/SConscript Fri Aug 19 15:08:08 2011 -0500
+++ b/tests/SConscript Fri Aug 19 15:08:09 2011 -0500
@@ -277,8 +277,11 @@
't1000-simple-timing']
if env['TARGET_ISA'] == 'arm':
configs += ['realview-simple-atomic',
+ 'realview-simple-atomic-dual',
'realview-simple-timing',
- 'realview-o3']
+ 'realview-simple-timing-dual',
+ 'realview-o3',
+ 'realview-o3-dual']
if env['TARGET_ISA'] == 'x86':
configs += ['pc-simple-atomic',
'pc-simple-timing',
diff -r 6bac5b04d588 -r 1f95c9a0bb2f tests/configs/realview-o3-dual.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/configs/realview-o3-dual.py Fri Aug 19 15:08:09 2011 -0500
@@ -0,0 +1,101 @@
+# Copyright (c) 2006-2007 The Regents of The University of Michigan
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Authors: Steve Reinhardt
+
+import m5
+from m5.objects import *
+m5.util.addToPath('../configs/common')
+import FSConfig
+from Benchmarks import *
+
+# --------------------
+# Base L1 Cache
+# ====================
+
+class L1(BaseCache):
+ latency = '1ns'
+ block_size = 64
+ mshrs = 4
+ tgts_per_mshr = 8
+ is_top_level = True
+
+# ----------------------
+# Base L2 Cache
+# ----------------------
+
+class L2(BaseCache):
+ block_size = 64
+ latency = '10ns'
+ mshrs = 92
+ tgts_per_mshr = 16
+ write_buffers = 8
+
+# ---------------------
+# I/O Cache
+# ---------------------
+class IOCache(BaseCache):
+ assoc = 8
+ block_size = 64
+ latency = '50ns'
+ mshrs = 20
+ size = '1kB'
+ tgts_per_mshr = 12
+ addr_range=AddrRange(0, size='256MB')
+ forward_snoops = False
+
+#cpu
+cpus = [DerivO3CPU(cpu_id=i) for i in xrange(2) ]
+#the system
+system = FSConfig.makeArmSystem('timing', "RealView_PBX", None, False)
+system.bridge.filter_ranges_a=[AddrRange(0, Addr.max)]
+system.bridge.filter_ranges_b=[AddrRange(0, size='256MB')]
+system.iocache = IOCache()
+system.iocache.cpu_side = system.iobus.port
+system.iocache.mem_side = system.membus.port
+
+system.cpu = cpus
+#create the l1/l2 bus
+system.toL2Bus = Bus()
+
+#connect up the l2 cache
+system.l2c = L2(size='4MB', assoc=8)
+system.l2c.cpu_side = system.toL2Bus.port
+system.l2c.mem_side = system.membus.port
+system.l2c.num_cpus = 2
+
+#connect up the cpu and l1s
+for c in cpus:
+ c.addPrivateSplitL1Caches(L1(size = '32kB', assoc = 1),
+ L1(size = '32kB', assoc = 4))
+ # connect cpu level-1 caches to shared level-2 cache
+ c.connectAllPorts(system.toL2Bus, system.membus)
+ c.clock = '2GHz'
+
+
+root = Root(system=system)
+m5.ticks.setGlobalFrequency('1THz')
+
diff -r 6bac5b04d588 -r 1f95c9a0bb2f tests/configs/realview-o3.py
--- a/tests/configs/realview-o3.py Fri Aug 19 15:08:08 2011 -0500
+++ b/tests/configs/realview-o3.py Fri Aug 19 15:08:09 2011 -0500
@@ -64,7 +64,7 @@
mshrs = 20
size = '1kB'
tgts_per_mshr = 12
- addr_range=AddrRange(0, size='128MB')
+ addr_range=AddrRange(0, size='256MB')
forward_snoops = False
#cpu
@@ -76,7 +76,7 @@
#create the l1/l2 bus
system.toL2Bus = Bus()
system.bridge.filter_ranges_a=[AddrRange(0, Addr.max)]
-system.bridge.filter_ranges_b=[AddrRange(0, size='128MB')]
+system.bridge.filter_ranges_b=[AddrRange(0, size='256MB')]
system.iocache = IOCache()
system.iocache.cpu_side = system.iobus.port
system.iocache.mem_side = system.membus.port
diff -r 6bac5b04d588 -r 1f95c9a0bb2f
tests/configs/realview-simple-atomic-dual.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/configs/realview-simple-atomic-dual.py Fri Aug 19 15:08:09
2011 -0500
@@ -0,0 +1,101 @@
+# Copyright (c) 2006-2007 The Regents of The University of Michigan
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Authors: Steve Reinhardt
+
+import m5
+from m5.objects import *
+m5.util.addToPath('../configs/common')
+import FSConfig
+from Benchmarks import *
+
+# --------------------
+# Base L1 Cache
+# ====================
+
+class L1(BaseCache):
+ latency = '1ns'
+ block_size = 64
+ mshrs = 4
+ tgts_per_mshr = 8
+ is_top_level = True
+
+# ----------------------
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev