]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmVirtPkg/FdtClientDxe/FdtClientDxe.c
ArmVirtPkg/FdtClientDxe: honor memory DT node 'status' property
[mirror_edk2.git] / ArmVirtPkg / FdtClientDxe / FdtClientDxe.c
index 2d867b16fda875a7794aacd86125a83f1296f16b..fb6e0aeb9215e122ece6f8074715c7ad7a0aae2f 100644 (file)
@@ -210,6 +210,7 @@ FindNextMemoryNodeReg (
 {\r
   INT32          Prev, Next;\r
   CONST CHAR8    *DeviceType;\r
+  CONST CHAR8    *NodeStatus;\r
   INT32          Len;\r
   EFI_STATUS     Status;\r
 \r
@@ -222,6 +223,13 @@ FindNextMemoryNodeReg (
       break;\r
     }\r
 \r
+    NodeStatus = fdt_getprop (mDeviceTreeBase, Next, "status", &Len);\r
+    if (NodeStatus != NULL && AsciiStrCmp (NodeStatus, "okay") != 0) {\r
+      DEBUG ((DEBUG_WARN, "%a: ignoring memory node with status \"%a\"\n",\r
+        __FUNCTION__, NodeStatus));\r
+      continue;\r
+    }\r
+\r
     DeviceType = fdt_getprop (mDeviceTreeBase, Next, "device_type", &Len);\r
     if (DeviceType != NULL && AsciiStrCmp (DeviceType, "memory") == 0) {\r
       //\r