From 1f32b5a30e473d5e37881c3232f7226dd8311b44 Mon Sep 17 00:00:00 2001 From: Dhaval Date: Tue, 13 Aug 2024 20:14:40 +0530 Subject: [PATCH] UefiPayloadPkg: Handle simple reserved ranges from DT DT has a way to provide reserved images in a simpler tabular manner. UPL should be able to support that. Signed-off-by: Dhaval Sharma --- UefiPayloadPkg/Library/FdtParserLib/FdtParserLib.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/UefiPayloadPkg/Library/FdtParserLib/FdtParserLib.c b/UefiPayloadPkg/Library/FdtParserLib/FdtParserLib.c index 93387e0ad5..09b7372b9a 100644 --- a/UefiPayloadPkg/Library/FdtParserLib/FdtParserLib.c +++ b/UefiPayloadPkg/Library/FdtParserLib/FdtParserLib.c @@ -816,6 +816,9 @@ ParseDtb ( UINT8 NodeType; EFI_BOOT_MODE BootMode; CHAR8 *GmaStr; + INTN NumRsv; + EFI_PHYSICAL_ADDRESS Addr; + UINT64 Size; UINT16 SegmentNumber; UINT64 CurrentPciBaseAddress; UINT64 NextPciBaseAddress; @@ -886,6 +889,16 @@ ParseDtb ( } } + NumRsv = FdtNumRsv (Fdt); + /* Look for an existing entry and add it to the efi mem map. */ + for (index = 0; index < NumRsv; index++) { + if (FdtGetMemRsv (Fdt, index, &Addr, &Size) != 0) { + continue; + } + + BuildMemoryAllocationHob (Addr, Size, EfiReservedMemoryType); + } + index = RootBridgeCount - 1; Depth = 0; for (Node = FdtNextNode (Fdt, 0, &Depth); Node >= 0; Node = FdtNextNode (Fdt, Node, &Depth)) {