]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/PCD/Dxe/Pcd.c
MdeModulePkg PCD: Add DynamicEx PcdVpdBaseAddress64 for non SPI platform
[mirror_edk2.git] / MdeModulePkg / Universal / PCD / Dxe / Pcd.c
index f977c7f18e194f20d06ab3fd972cd159137c171f..4e38a3844a8621921738d4b96b697665695dbaf2 100644 (file)
@@ -109,6 +109,7 @@ EFI_GET_PCD_INFO_PROTOCOL  mEfiGetPcdInfoInstance = {
 };\r
 \r
 EFI_HANDLE mPcdHandle = NULL;\r
+UINTN      mVpdBaseAddress = 0;\r
 \r
 /**\r
   Main entry for PCD DXE driver.\r
@@ -175,6 +176,21 @@ PcdDxeInit (
     &Registration\r
     );\r
 \r
+  //\r
+  // Cache VpdBaseAddress in entry point for the following usage.\r
+  //\r
+\r
+  //\r
+  // PcdVpdBaseAddress64 is DynamicEx PCD only. So, DxePcdGet64Ex() is used to get its value.\r
+  //\r
+  mVpdBaseAddress = (UINTN) DxePcdGet64Ex (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdVpdBaseAddress64));\r
+  if (mVpdBaseAddress == 0) {\r
+    //\r
+    // PcdVpdBaseAddress64 is not set, get value from PcdVpdBaseAddress.\r
+    //\r
+    mVpdBaseAddress = (UINTN) PcdGet32 (PcdVpdBaseAddress);\r
+  }\r
+\r
   return Status;\r
 }\r
 \r