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 <hoanguyen@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/70017
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
This commit is contained in:
Hoa Nguyen
2023-04-20 18:47:16 -07:00
parent c597361a6b
commit 6fdf0beedc

View File

@@ -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.