]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcd.c
OvmfPkg: control PXEv4 / PXEv6 boot support from the QEMU command line
[mirror_edk2.git] / OvmfPkg / Library / PxeBcPcdProducerLib / PxeBcPcd.c
diff --git a/OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcd.c b/OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcd.c
new file mode 100644 (file)
index 0000000..7ce2363
--- /dev/null
@@ -0,0 +1,39 @@
+/** @file\r
+  Configure some PCDs dynamically for\r
+  "NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf", from QEMU's fw_cfg.\r
+\r
+  Copyright (C) 2020, Red Hat, Inc.\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+\r
+#include <Library/PcdLib.h>\r
+#include <Library/QemuFwCfgSimpleParserLib.h>\r
+\r
+RETURN_STATUS\r
+EFIAPI\r
+SetPxeBcPcds (\r
+  VOID\r
+  )\r
+{\r
+  BOOLEAN       FwCfgBool;\r
+  RETURN_STATUS PcdStatus;\r
+\r
+  if (!RETURN_ERROR (QemuFwCfgParseBool ("opt/org.tianocore/IPv4PXESupport",\r
+                       &FwCfgBool))) {\r
+    PcdStatus = PcdSet8S (PcdIPv4PXESupport, FwCfgBool);\r
+    if (RETURN_ERROR (PcdStatus)) {\r
+      return PcdStatus;\r
+    }\r
+  }\r
+\r
+  if (!RETURN_ERROR (QemuFwCfgParseBool ("opt/org.tianocore/IPv6PXESupport",\r
+                       &FwCfgBool))) {\r
+    PcdStatus = PcdSet8S (PcdIPv6PXESupport, FwCfgBool);\r
+    if (RETURN_ERROR (PcdStatus)) {\r
+      return PcdStatus;\r
+    }\r
+  }\r
+\r
+  return RETURN_SUCCESS;\r
+}\r