]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.c
ArmVirtPkg/FdtPL011SerialPortLib: honor DT node 'status' property
[mirror_edk2.git] / ArmVirtPkg / Library / FdtPL011SerialPortLib / EarlyFdtPL011SerialPortLib.c
index c458abb622d9c25de5a9ea9dfa8ae0e52c4ac739..e28750f3b4c4ce5412e76c39e5f9b185dc6b0153 100644 (file)
@@ -66,6 +66,7 @@ SerialPortGetBaseAddress (
   INT32               Node, Prev;\r
   INT32               Len;\r
   CONST CHAR8         *Compatible;\r
+  CONST CHAR8         *NodeStatus;\r
   CONST CHAR8         *CompatibleItem;\r
   CONST UINT64        *RegProperty;\r
   UINTN               UartBase;\r
@@ -98,6 +99,11 @@ SerialPortGetBaseAddress (
       CompatibleItem += 1 + AsciiStrLen (CompatibleItem)) {\r
 \r
       if (AsciiStrCmp (CompatibleItem, "arm,pl011") == 0) {\r
+        NodeStatus = fdt_getprop (DeviceTreeBase, Node, "status", &Len);\r
+        if (NodeStatus != NULL && AsciiStrCmp (NodeStatus, "okay") != 0) {\r
+          continue;\r
+        }\r
+\r
         RegProperty = fdt_getprop (DeviceTreeBase, Node, "reg", &Len);\r
         if (Len != 16) {\r
           return 0;\r