Hello Andreas Sandberg,
I'd like you to do a code review. Please visit
https://gem5-review.googlesource.com/c/public/gem5/+/15958
to review the following change.
Change subject: arch-arm, configs: Create single instance of DTB
autogeneration
......................................................................
arch-arm, configs: Create single instance of DTB autogeneration
This patch is rewriting the DTB autogeneration functions available in
fs_bigLITTLE.py and fs.py as a single method in the GenericArmSystem
so that other configuration scripts can make use of it.
Change-Id: I492bbf77e6b0ac5c5fbdbc75c0eecba29bd63bda
Signed-off-by: Giacomo Travaglini <giacomo.travagl...@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandb...@arm.com>
---
M configs/example/arm/fs_bigLITTLE.py
M configs/example/fs.py
M src/arch/arm/ArmSystem.py
3 files changed, 16 insertions(+), 20 deletions(-)
diff --git a/configs/example/arm/fs_bigLITTLE.py
b/configs/example/arm/fs_bigLITTLE.py
index 8cf89e3..f363872 100644
--- a/configs/example/arm/fs_bigLITTLE.py
+++ b/configs/example/arm/fs_bigLITTLE.py
@@ -261,16 +261,7 @@
if options.dtb is not None:
system.dtb_filename = SysPaths.binary(options.dtb)
else:
- def create_dtb_for_system(system, filename):
- state = FdtState(addr_cells=2, size_cells=2, cpu_cells=1)
- rootNode = system.generateDeviceTree(state)
-
- fdt = Fdt()
- fdt.add_rootnode(rootNode)
- dtb_filename = os.path.join(m5.options.outdir, filename)
- return fdt.writeDtbFile(dtb_filename)
-
- system.dtb_filename = create_dtb_for_system(system, 'system.dtb')
+ system.generateDtb(m5.options.outdir, 'system.dtb')
return root
diff --git a/configs/example/fs.py b/configs/example/fs.py
index 4d21658..05eca87 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -360,19 +360,10 @@
"with generation functionality.")
# Generate a Device Tree
- def create_dtb_for_system(system, filename):
- state = FdtState(addr_cells=2, size_cells=2, cpu_cells=1)
- rootNode = system.generateDeviceTree(state)
-
- fdt = Fdt()
- fdt.add_rootnode(rootNode)
- dtb_filename = os.path.join(m5.options.outdir, filename)
- return fdt.writeDtbFile(dtb_filename)
-
for sysname in ('system', 'testsys', 'drivesys'):
if hasattr(root, sysname):
sys = getattr(root, sysname)
- sys.dtb_filename = create_dtb_for_system(sys, '%s.dtb' %
sysname)
+ sys.generateDtb(m5.options.outdir, '%s.dtb' % sysname)
Simulation.setWorkCountOptions(test_sys, options)
Simulation.run(options, root, test_sys, FutureClass)
diff --git a/src/arch/arm/ArmSystem.py b/src/arch/arm/ArmSystem.py
index bee38a4..98ff959 100644
--- a/src/arch/arm/ArmSystem.py
+++ b/src/arch/arm/ArmSystem.py
@@ -37,6 +37,7 @@
# Glenn Bergmans
from m5.params import *
+from m5.options import *
from m5.SimObject import *
from m5.util.fdthelper import *
@@ -138,6 +139,19 @@
panic_on_oops = Param.Bool(False, "Trigger a gem5 panic if the " \
"guest kernel oopses")
+ def generateDtb(self, outdir, filename):
+ """
+ Autogenerate DTB. Arguments are the folder where the DTB
+ will be stored, and the name of the DTB file.
+ """
+ state = FdtState(addr_cells=2, size_cells=2, cpu_cells=1)
+ rootNode = self.generateDeviceTree(state)
+
+ fdt = Fdt()
+ fdt.add_rootnode(rootNode)
+ dtb_filename = os.path.join(outdir, filename)
+ self.dtb_filename = fdt.writeDtbFile(dtb_filename)
+
class LinuxArmSystem(GenericArmSystem):
type = 'LinuxArmSystem'
cxx_header = "arch/arm/linux/system.hh"
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/15958
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I492bbf77e6b0ac5c5fbdbc75c0eecba29bd63bda
Gerrit-Change-Number: 15958
Gerrit-PatchSet: 1
Gerrit-Owner: Giacomo Travaglini <giacomo.travagl...@arm.com>
Gerrit-Reviewer: Andreas Sandberg <andreas.sandb...@arm.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev