diff options
-rw-r--r-- | configs/example/arm/fs_bigLITTLE.py | 11 | ||||
-rw-r--r-- | configs/example/fs.py | 11 | ||||
-rw-r--r-- | src/arch/arm/ArmSystem.py | 14 |
3 files changed, 16 insertions, 20 deletions
diff --git a/configs/example/arm/fs_bigLITTLE.py b/configs/example/arm/fs_bigLITTLE.py index 8cf89e3c7..f363872a3 100644 --- a/configs/example/arm/fs_bigLITTLE.py +++ b/configs/example/arm/fs_bigLITTLE.py @@ -261,16 +261,7 @@ def build(options): 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 4d2165884..05eca87fb 100644 --- a/configs/example/fs.py +++ b/configs/example/fs.py @@ -360,19 +360,10 @@ if buildEnv['TARGET_ISA'] == "arm" and not options.bare_metal \ "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 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" |