summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Saidi <Ali.Saidi@ARM.com>2011-02-23 15:10:48 -0600
committerAli Saidi <Ali.Saidi@ARM.com>2011-02-23 15:10:48 -0600
commit79dac89552e7ef0fa4376ba028b10ad7d2f1ca69 (patch)
treed4f274c7f23254dd339ca0ac0c86d154327c582e
parente2a6275c037c6be1bad1f876aa7fbaf3864e9e53 (diff)
downloadgem5-79dac89552e7ef0fa4376ba028b10ad7d2f1ca69.tar.xz
ARM: Clarifies creation of Linux and baremetal ARM systems.
makeArmSystem creates both bare-metal and Linux systems more cleanly. machine_type was never optional though listed as an optional argument; a system such as "RealView_PBX" must now be explicitly specified. Now that it is a required argument, the placement of the arguments has changed slightly requiring some changes to calls that create ARM systems.
-rw-r--r--configs/common/FSConfig.py20
-rw-r--r--configs/example/fs.py8
-rw-r--r--tests/configs/realview-simple-atomic.py2
-rw-r--r--tests/configs/realview-simple-timing.py2
4 files changed, 18 insertions, 14 deletions
diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py
index f58fd3d2e..2c6696ea7 100644
--- a/configs/common/FSConfig.py
+++ b/configs/common/FSConfig.py
@@ -184,8 +184,9 @@ def makeSparcSystem(mem_mode, mdesc = None):
return self
-def makeLinuxArmSystem(mem_mode, mdesc = None, bare_metal=False,
- machine_type = None):
+def makeArmSystem(mem_mode, machine_type, mdesc = None, bare_metal=False):
+ assert machine_type
+
if bare_metal:
self = ArmSystem()
else:
@@ -228,10 +229,15 @@ def makeLinuxArmSystem(mem_mode, mdesc = None, bare_metal=False,
print "Unknown Machine Type"
sys.exit(1)
- if not bare_metal and machine_type:
- self.machine_type = machine_type
- elif bare_metal:
+ if bare_metal:
+ # EOT character on UART will end the simulation
self.realview.uart.end_on_eot = True
+ else:
+ self.machine_type = machine_type
+ self.kernel = binary('vmlinux.arm')
+ self.boot_osflags = 'earlyprintk mem=128MB console=ttyAMA0' + \
+ ' lpj=19988480 norandmaps slram=slram0,0x8000000,+0x8000000' + \
+ ' mtdparts=slram0:- rw loglevel=8 root=/dev/mtdblock0'
self.realview.attachOnChipIO(self.membus)
self.realview.attachIO(self.iobus)
@@ -239,10 +245,6 @@ def makeLinuxArmSystem(mem_mode, mdesc = None, bare_metal=False,
self.intrctrl = IntrControl()
self.terminal = Terminal()
self.vncserver = VncServer()
- self.kernel = binary('vmlinux.arm')
- self.boot_osflags = 'earlyprintk mem=128MB console=ttyAMA0 lpj=19988480' + \
- ' norandmaps slram=slram0,0x8000000,+0x8000000' + \
- ' mtdparts=slram0:- rw loglevel=8 root=/dev/mtdblock0'
return self
diff --git a/configs/example/fs.py b/configs/example/fs.py
index b392f1a91..420cf1f8b 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -134,8 +134,9 @@ elif buildEnv['TARGET_ISA'] == "x86":
test_sys = makeLinuxX86System(test_mem_mode, options.num_cpus, bm[0])
setWorkCountOptions(test_sys, options)
elif buildEnv['TARGET_ISA'] == "arm":
- test_sys = makeLinuxArmSystem(test_mem_mode, bm[0],
- bare_metal=options.bare_metal, machine_type=options.machine_type)
+ test_sys = makeArmSystem(test_mem_mode,
+ options.machine_type, bm[0],
+ bare_metal=options.bare_metal)
else:
fatal("incapable of building non-alpha or non-sparc full system!")
@@ -184,7 +185,8 @@ if len(bm) == 2:
elif buildEnv['TARGET_ISA'] == 'x86':
drive_sys = makeX86System(drive_mem_mode, np, bm[1])
elif buildEnv['TARGET_ISA'] == 'arm':
- drive_sys = makeLinuxArmSystem(drive_mem_mode, bm[1])
+ drive_sys = makeArmSystem(drive_mem_mode,
+ machine_options.machine_type, bm[1])
drive_sys.cpu = DriveCPUClass(cpu_id=0)
drive_sys.cpu.connectAllPorts(drive_sys.membus)
if options.fastmem:
diff --git a/tests/configs/realview-simple-atomic.py b/tests/configs/realview-simple-atomic.py
index c20a67df7..ab6d612d4 100644
--- a/tests/configs/realview-simple-atomic.py
+++ b/tests/configs/realview-simple-atomic.py
@@ -68,7 +68,7 @@ class IOCache(BaseCache):
#cpu
cpu = AtomicSimpleCPU(cpu_id=0)
#the system
-system = FSConfig.makeLinuxArmSystem('atomic', None, False, "RealView_PBX")
+system = FSConfig.makeArmSystem('atomic', "RealView_PBX", None, False)
system.bridge.filter_ranges_a=[AddrRange(0, Addr.max)]
system.bridge.filter_ranges_b=[AddrRange(0, size='128MB')]
system.iocache = IOCache()
diff --git a/tests/configs/realview-simple-timing.py b/tests/configs/realview-simple-timing.py
index a1e363447..53b6ab2b2 100644
--- a/tests/configs/realview-simple-timing.py
+++ b/tests/configs/realview-simple-timing.py
@@ -69,7 +69,7 @@ class IOCache(BaseCache):
#cpu
cpu = TimingSimpleCPU(cpu_id=0)
#the system
-system = FSConfig.makeLinuxArmSystem('timing', None, False, "RealView_PBX")
+system = FSConfig.makeArmSystem('timing', "RealView_PBX", None, False)
system.cpu = cpu
#create the l1/l2 bus