summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCiro Santilli <ciro.santilli@arm.com>2019-11-18 15:30:49 +0000
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2020-01-31 12:41:49 +0000
commita29aaa364b70a227ea0784f64e4082e08ce233a1 (patch)
treea82dd9b1db4906b1308465497ae0d32c2f5e26e5
parentee704209b31d3273e703509cb1573da10d52029d (diff)
downloadgem5-a29aaa364b70a227ea0784f64e4082e08ce233a1.tar.xz
config: add --bootloader to fs.py and fs_bigLITTLE.py
This allows explicitly selecting which bootloader to use. Before this commit, the bootloader had a fixed basename which had to be present inside M5_PATH. Change-Id: I02919207d6f175854017ae7b603d811da63d618e Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23670 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
-rw-r--r--configs/common/FSConfig.py4
-rw-r--r--configs/common/Options.py2
-rw-r--r--configs/example/arm/fs_bigLITTLE.py9
-rw-r--r--configs/example/fs.py1
4 files changed, 11 insertions, 5 deletions
diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py
index ecc5f1c82..e218c14c5 100644
--- a/configs/common/FSConfig.py
+++ b/configs/common/FSConfig.py
@@ -221,7 +221,7 @@ def makeSparcSystem(mem_mode, mdesc=None, cmdline=None):
def makeArmSystem(mem_mode, machine_type, num_cpus=1, mdesc=None,
dtb_filename=None, bare_metal=False, cmdline=None,
external_memory="", ruby=False, security=False,
- vio_9p=None):
+ vio_9p=None, bootloader=None):
assert machine_type
pci_devices = []
@@ -312,7 +312,7 @@ def makeArmSystem(mem_mode, machine_type, num_cpus=1, mdesc=None,
'lpj=19988480 norandmaps rw loglevel=8 ' + \
'mem=%(mem)s root=%(rootdev)s'
- self.realview.setupBootLoader(self, binary)
+ self.realview.setupBootLoader(self, binary, bootloader)
if hasattr(self.realview.gic, 'cpu_addr'):
self.gic_cpu_addr = self.realview.gic.cpu_addr
diff --git a/configs/common/Options.py b/configs/common/Options.py
index 173bd483c..1405012d6 100644
--- a/configs/common/Options.py
+++ b/configs/common/Options.py
@@ -444,6 +444,8 @@ def addFSOptions(parser):
action="store_true", help="Enable stats dump at context "\
"switches and dump tasks file (required for Streamline)")
parser.add_option("--vio-9p", action="store_true", help=vio_9p_help)
+ parser.add_option("--bootloader", action='append',
+ help="executable file that runs before the --kernel")
# Benchmark options
parser.add_option("--dual", action="store_true",
diff --git a/configs/example/arm/fs_bigLITTLE.py b/configs/example/arm/fs_bigLITTLE.py
index 4645d9ee8..969a84488 100644
--- a/configs/example/arm/fs_bigLITTLE.py
+++ b/configs/example/arm/fs_bigLITTLE.py
@@ -117,7 +117,7 @@ class Ex5LittleCluster(devices.CpuCluster):
cpu_voltage, *cpu_config)
def createSystem(caches, kernel, bootscript, machine_type="VExpress_GEM5",
- disks=[], mem_size=default_mem_size):
+ disks=[], mem_size=default_mem_size, bootloader=None):
platform = ObjectList.platform_list.get(machine_type)
m5.util.inform("Simulated platform: %s", platform.__name__)
@@ -144,7 +144,7 @@ def createSystem(caches, kernel, bootscript, machine_type="VExpress_GEM5",
for dev in sys.pci_vio_block:
sys.attach_pci(dev)
- sys.realview.setupBootLoader(sys, SysPaths.binary)
+ sys.realview.setupBootLoader(sys, SysPaths.binary, bootloader)
return sys
@@ -203,6 +203,8 @@ def addOptions(parser):
help="System memory size")
parser.add_argument("--kernel-cmd", type=str, default=None,
help="Custom Linux kernel command")
+ parser.add_argument("--bootloader", action="append",
+ help="executable file that runs before the --kernel")
parser.add_argument("-P", "--param", action="append", default=[],
help="Set a SimObject parameter relative to the root node. "
"An extended Python multi range slicing syntax can be used "
@@ -239,7 +241,8 @@ def build(options):
options.bootscript,
options.machine_type,
disks=disks,
- mem_size=options.mem_size)
+ mem_size=options.mem_size,
+ bootloader=options.bootloader)
root.system = system
if options.kernel_cmd:
diff --git a/configs/example/fs.py b/configs/example/fs.py
index e202d7513..e747b1aab 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -104,6 +104,7 @@ def build_test_system(np):
ruby=options.ruby,
security=options.enable_security_extensions,
vio_9p=options.vio_9p,
+ bootloader=options.bootloader,
)
if options.enable_context_switch_stats_dump:
test_sys.enable_context_switch_stats_dump = True