From 00ef23b5700175830834f32cdd678e0b002a777d Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Fri, 25 Jan 2019 14:29:24 +0000 Subject: 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 Reviewed-by: Andreas Sandberg Reviewed-on: https://gem5-review.googlesource.com/c/15958 Reviewed-by: Ciro Santilli Maintainer: Andreas Sandberg --- src/arch/arm/ArmSystem.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/arch/arm/ArmSystem.py b/src/arch/arm/ArmSystem.py index bee38a41c..98ff95918 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 @@ class GenericArmSystem(ArmSystem): 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" -- cgit v1.2.3