From 9bb11cad9db17dd790f82b1b0fdba0847086e3e1 Mon Sep 17 00:00:00 2001 From: Oleksandr Tymoshenko Date: Mon, 6 Jan 2025 04:41:16 +0000 Subject: EmbeddedPkg: Remove misleading error message in FindNextMemoryNodeReg FindNextMemoryNodeReg prints "ignoring disabled memory node" for all top-level disabled nodes in the tree, not just the ones with the "device_type" property set to "memory". Rework the loop to only print the message for the relevant nodes. Signed-off-by: Oleksandr Tymoshenko --- EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.c | 62 +++++++++++++------------ 1 file changed, 32 insertions(+), 30 deletions(-) (limited to 'EmbeddedPkg/Drivers/FdtClientDxe') diff --git a/EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.c b/EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.c index 7da505a313..42d9281b29 100644 --- a/EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.c +++ b/EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.c @@ -262,43 +262,45 @@ FindNextMemoryNodeReg ( break; } + DeviceType = fdt_getprop (mDeviceTreeBase, Next, "device_type", &Len); + if ((DeviceType == NULL) || (AsciiStrCmp (DeviceType, "memory") != 0)) { + continue; + } + if (!IsNodeEnabled (Next)) { DEBUG ((DEBUG_WARN, "%a: ignoring disabled memory node\n", __func__)); continue; } - DeviceType = fdt_getprop (mDeviceTreeBase, Next, "device_type", &Len); - if ((DeviceType != NULL) && (AsciiStrCmp (DeviceType, "memory") == 0)) { - // - // Get the 'reg' property of this memory node. For now, we will assume - // 8 byte quantities for base and size, respectively. - // TODO use #cells root properties instead - // - Status = GetNodeProperty (This, Next, "reg", Reg, RegSize); - if (EFI_ERROR (Status)) { - DEBUG (( - DEBUG_WARN, - "%a: ignoring memory node with no 'reg' property\n", - __func__ - )); - continue; - } - - if ((*RegSize % 16) != 0) { - DEBUG (( - DEBUG_WARN, - "%a: ignoring memory node with invalid 'reg' property (size == 0x%x)\n", - __func__, - *RegSize - )); - continue; - } + // + // Get the 'reg' property of this memory node. For now, we will assume + // 8 byte quantities for base and size, respectively. + // TODO use #cells root properties instead + // + Status = GetNodeProperty (This, Next, "reg", Reg, RegSize); + if (EFI_ERROR (Status)) { + DEBUG (( + DEBUG_WARN, + "%a: ignoring memory node with no 'reg' property\n", + __func__ + )); + continue; + } - *Node = Next; - *AddressCells = 2; - *SizeCells = 2; - return EFI_SUCCESS; + if ((*RegSize % 16) != 0) { + DEBUG (( + DEBUG_WARN, + "%a: ignoring memory node with invalid 'reg' property (size == 0x%x)\n", + __func__, + *RegSize + )); + continue; } + + *Node = Next; + *AddressCells = 2; + *SizeCells = 2; + return EFI_SUCCESS; } return EFI_NOT_FOUND; -- cgit