changeset 71c40e5c8bd4 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=71c40e5c8bd4
description:
        config: add --root-device machine parameter

        In case /dev/sda1 is not actually the boot partition for an image,
        we can override it on the command line or in a benchmark definition.

diffstat:

 configs/common/Benchmarks.py |  9 ++++++++-
 configs/common/FSConfig.py   |  3 ++-
 configs/common/Options.py    |  2 ++
 configs/example/fs.py        |  9 ++++++---
 4 files changed, 18 insertions(+), 5 deletions(-)

diffs (81 lines):

diff -r b5e5068fcb26 -r 71c40e5c8bd4 configs/common/Benchmarks.py
--- a/configs/common/Benchmarks.py      Mon Feb 16 03:32:58 2015 -0500
+++ b/configs/common/Benchmarks.py      Fri Jan 16 14:12:03 2015 -0600
@@ -31,10 +31,11 @@
 from m5.defines import buildEnv
 
 class SysConfig:
-    def __init__(self, script=None, mem=None, disk=None):
+    def __init__(self, script=None, mem=None, disk=None, rootdev=None):
         self.scriptname = script
         self.diskname = disk
         self.memsize = mem
+        self.root = rootdev
 
     def script(self):
         if self.scriptname:
@@ -62,6 +63,12 @@
                 buildEnv['TARGET_ISA']
             exit(1)
 
+    def rootdev(self):
+        if self.root:
+            return self.root
+        else:
+            return '/dev/sda1'
+
 # Benchmarks are defined as a key in a dict which is a list of SysConfigs
 # The first defined machine is the test system, the others are driving systems
 
diff -r b5e5068fcb26 -r 71c40e5c8bd4 configs/common/FSConfig.py
--- a/configs/common/FSConfig.py        Mon Feb 16 03:32:58 2015 -0500
+++ b/configs/common/FSConfig.py        Fri Jan 16 14:12:03 2015 -0600
@@ -57,6 +57,7 @@
 
 def fillInCmdline(mdesc, template, **kwargs):
     kwargs.setdefault('disk', mdesc.disk())
+    kwargs.setdefault('rootdev', mdesc.rootdev())
     kwargs.setdefault('mem', mdesc.mem())
     kwargs.setdefault('script', mdesc.script())
     return template % kwargs
@@ -279,7 +280,7 @@
         if not cmdline:
             cmdline = 'earlyprintk=pl011,0x1c090000 console=ttyAMA0 ' + \
                       'lpj=19988480 norandmaps rw loglevel=8 ' + \
-                      'mem=%(mem)s root=/dev/sda1'
+                      'mem=%(mem)s root=%(rootdev)s'
 
         self.realview.setupBootLoader(self.membus, self, binary)
         self.gic_cpu_addr = self.realview.gic.cpu_addr
diff -r b5e5068fcb26 -r 71c40e5c8bd4 configs/common/Options.py
--- a/configs/common/Options.py Mon Feb 16 03:32:58 2015 -0500
+++ b/configs/common/Options.py Fri Jan 16 14:12:03 2015 -0600
@@ -274,6 +274,8 @@
     # Disk Image Options
     parser.add_option("--disk-image", action="store", type="string", 
default=None,
                       help="Path to the disk image to use.")
+    parser.add_option("--root-device", action="store", type="string", 
default=None,
+                      help="OS device name for root partition")
 
     # Command line options
     parser.add_option("--command-line", action="store", type="string",
diff -r b5e5068fcb26 -r 71c40e5c8bd4 configs/example/fs.py
--- a/configs/example/fs.py     Mon Feb 16 03:32:58 2015 -0500
+++ b/configs/example/fs.py     Fri Jan 16 14:12:03 2015 -0600
@@ -313,10 +313,13 @@
         sys.exit(1)
 else:
     if options.dual:
-        bm = [SysConfig(disk=options.disk_image, mem=options.mem_size),
-              SysConfig(disk=options.disk_image, mem=options.mem_size)]
+        bm = [SysConfig(disk=options.disk_image, rootdev=options.root_device,
+                        mem=options.mem_size),
+              SysConfig(disk=options.disk_image, rootdev=options.root_device,
+                        mem=options.mem_size)]
     else:
-        bm = [SysConfig(disk=options.disk_image, mem=options.mem_size)]
+        bm = [SysConfig(disk=options.disk_image, rootdev=options.root_device,
+                        mem=options.mem_size)]
 
 np = options.num_cpus
 
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to