]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c
ArmVirtualizationPkg: add padding to FDT allocation
[mirror_edk2.git] / ArmPlatformPkg / ArmVirtualizationPkg / Library / PlatformPeiLib / PlatformPeiLib.c
index c500d5964b254ba72be82ee01fb4f0e7dc12395f..bdf2b57fcb1e00a2da7329cc6805f4311529739f 100644 (file)
@@ -33,6 +33,7 @@ PlatformPeim (
   VOID               *Base;\r
   VOID               *NewBase;\r
   UINTN              FdtSize;\r
+  UINTN              FdtPages;\r
   UINT64             *FdtHobData;\r
   UINT64             *UartHobData;\r
   INT32              Node, Prev;\r
@@ -47,10 +48,11 @@ PlatformPeim (
   ASSERT (Base != NULL);\r
   ASSERT (fdt_check_header (Base) == 0);\r
 \r
-  FdtSize = fdt_totalsize (Base);\r
-  NewBase = AllocatePages (EFI_SIZE_TO_PAGES (FdtSize));\r
+  FdtSize = fdt_totalsize (Base) + PcdGet32 (PcdDeviceTreeAllocationPadding);\r
+  FdtPages = EFI_SIZE_TO_PAGES (FdtSize);\r
+  NewBase = AllocatePages (FdtPages);\r
   ASSERT (NewBase != NULL);\r
-  CopyMem (NewBase, Base, FdtSize);\r
+  fdt_open_into (Base, NewBase, EFI_PAGES_TO_SIZE (FdtPages));\r
 \r
   FdtHobData = BuildGuidHob (&gFdtHobGuid, sizeof *FdtHobData);\r
   ASSERT (FdtHobData != NULL);\r