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:
@@ -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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user