]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/PCD/Dxe/Pcd.c
MdeModulePkg: Update PCD driver to support the optimized PcdDataBase
[mirror_edk2.git] / MdeModulePkg / Universal / PCD / Dxe / Pcd.c
index 326644c53105cb312fa28455af3218c11c70d688..ee53ae332b5702dcc12e5f7b5096e45356fede4e 100644 (file)
@@ -269,8 +269,9 @@ DxePcdSetSku (
   IN  UINTN         SkuId\r
   )\r
 {\r
-  SKU_ID    *SkuIdTable;\r
-  UINTN     Index;\r
+  SKU_ID     *SkuIdTable;\r
+  UINTN      Index;\r
+  EFI_STATUS Status;\r
 \r
   if (SkuId == mPcdDatabase.DxeDb->SystemSkuId) {\r
     //\r
@@ -294,16 +295,19 @@ DxePcdSetSku (
   SkuIdTable = (SKU_ID *) ((UINT8 *) mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->SkuIdTableOffset);\r
   for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
     if (SkuId == SkuIdTable[Index + 1]) {\r
-      DEBUG ((EFI_D_INFO, "PcdDxe - Set current SKU Id to 0x%lx.\n", (SKU_ID) SkuId));\r
-      mPcdDatabase.DxeDb->SystemSkuId = (SKU_ID) SkuId;\r
-      return;\r
+      Status = UpdatePcdDatabase (SkuId, TRUE);\r
+      if (!EFI_ERROR (Status)) {\r
+        mPcdDatabase.DxeDb->SystemSkuId = (SKU_ID) SkuId;\r
+        DEBUG ((DEBUG_INFO, "PcdDxe - Set current SKU Id to 0x%lx.\n", (SKU_ID) SkuId));\r
+        return;\r
+      }\r
     }\r
   }\r
 \r
   //\r
   // Invalid input SkuId, the default SKU Id will be still used for the system.\r
   //\r
-  DEBUG ((EFI_D_INFO, "PcdDxe - Invalid input SkuId, the default SKU Id will be still used.\n"));\r
+  DEBUG ((DEBUG_INFO, "PcdDxe - Invalid input SkuId, the default SKU Id will be still used.\n"));\r
   return;\r
 }\r
 \r