From 6fdf0beedcac52054b4c3fcda38535f21b3f900f Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Thu, 20 Apr 2023 18:47:16 -0700 Subject: [PATCH] stdlib: write device tree after setting up bootloader in ARMBoard The generation of the device tree in an arm system requires knowing cpu-release-addr property, which is only available after setting up the bootloader. cpu-release-addr specifies where the secondary CPUs spin/sleep(?) before being waken up by the kernel. The incorrect cpu-release-addr causes booting an arm system using the standard library with the arm's provided bootloader+linux_kernel to fail to regconize more than 1 core. Change-Id: Ice0e38492e2f77020b0e30c42dd4e8b7ee58e598 Signed-off-by: Hoa Nguyen Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/70017 Maintainer: Bobby Bruce Tested-by: kokoro Reviewed-by: Jason Lowe-Power Reviewed-by: Richard Cooper --- src/python/gem5/components/boards/arm_board.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/python/gem5/components/boards/arm_board.py b/src/python/gem5/components/boards/arm_board.py index 10e2c0eb82..b439edf970 100644 --- a/src/python/gem5/components/boards/arm_board.py +++ b/src/python/gem5/components/boards/arm_board.py @@ -320,10 +320,6 @@ class ArmBoard(ArmSystem, AbstractBoard, KernelDiskWorkload): # The workload needs to know the dtb_file. self.workload.dtb_filename = self._get_dtb_filename() - # Calling generateDtb from class ArmSystem to add memory information to - # the dtb file. - self.generateDtb(self._get_dtb_filename()) - # Finally we need to setup the bootloader for the ArmBoard. An ARM # system requires three inputs to simulate a full system: a disk image, # the kernel file and the bootloader file(s). @@ -331,6 +327,10 @@ class ArmBoard(ArmSystem, AbstractBoard, KernelDiskWorkload): self, self._get_dtb_filename(), self._bootloader ) + # Calling generateDtb from class ArmSystem to add memory information to + # the dtb file. + self.generateDtb(self._get_dtb_filename()) + def _get_dtb_filename(self) -> str: """Returns the dtb file location.