mirror of https://github.com/acidanthera/audk.git
ArmPkg/BdsLib: Update the size of the Device Tree before booting Linux
The memory reserved to load the device tree is over-allocated when UEFI loads the blob to update the device tree with additional information such as the command line, the initrd, etc. This change ensures the total size declared by the device tree matches the actual data (and not the over-allocated size value). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16517 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
061568e2d5
commit
85774874bc
|
@ -554,6 +554,9 @@ PrepareFdt (
|
|||
// If we succeeded to generate the new Device Tree then free the old Device Tree
|
||||
gBS->FreePages (*FdtBlobBase, EFI_SIZE_TO_PAGES (*FdtBlobSize));
|
||||
|
||||
// Update the real size of the Device Tree
|
||||
fdt_pack ((VOID*)(UINTN)(NewFdtBlobBase));
|
||||
|
||||
*FdtBlobBase = NewFdtBlobBase;
|
||||
*FdtBlobSize = (UINTN)fdt_totalsize ((VOID*)(UINTN)(NewFdtBlobBase));
|
||||
return EFI_SUCCESS;
|
||||
|
|
Loading…
Reference in New Issue