]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/CpuFeatures/CpuFeaturesDxe.c
UefiCpuPkg/CpuFeatures: Export HOB if CPU initialized in PEI
[mirror_edk2.git] / UefiCpuPkg / CpuFeatures / CpuFeaturesDxe.c
index b0b186d36d6d4e2affe24db47bc14130b6648490..16c8f37fd04a2c3238f6c88429a2a0d9413573b0 100644 (file)
@@ -19,6 +19,7 @@
 #include <Library/UefiLib.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/RegisterCpuFeaturesLib.h>\r
+#include <Library/HobLib.h>\r
 \r
 #include <Protocol/SmmConfiguration.h>\r
 #include <Guid/CpuFeaturesInitDone.h>\r
@@ -101,6 +102,25 @@ CpuFeaturesDxeInitialize (
   )\r
 {\r
   VOID        *Registration;\r
+  EFI_STATUS  Status;\r
+  EFI_HANDLE  Handle;\r
+\r
+  if (GetFirstGuidHob (&gEdkiiCpuFeaturesInitDoneGuid) != NULL) {\r
+    //\r
+    // Try to find HOB first. This HOB exist means CPU features have \r
+    // been initialized by CpuFeaturesPei driver, just install \r
+    // gEdkiiCpuFeaturesInitDoneGuid.\r
+    //\r
+    Handle = NULL;\r
+    Status = gBS->InstallProtocolInterface (\r
+                    &Handle,\r
+                    &gEdkiiCpuFeaturesInitDoneGuid,\r
+                    EFI_NATIVE_INTERFACE,\r
+                    NULL\r
+                    );\r
+    ASSERT_EFI_ERROR (Status);\r
+    return Status;\r
+  }\r
 \r
   if (PcdGetBool (PcdCpuFeaturesInitAfterSmmRelocation)) {\r
     //\r