]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Complement fix for revision #10998 (Remove PI SMM IPL's dependency on CPU AP).
authorrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 4 Nov 2010 05:27:23 +0000 (05:27 +0000)
committerrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 4 Nov 2010 05:27:23 +0000 (05:27 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11001 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c

index 5cdb5bdeab27b65223c0882c99d32a19937cd0da..21cd87c31550c32baedc5aae865b715df8bc1ded 100644 (file)
@@ -567,6 +567,7 @@ SmmIplSmmConfigurationEventNotify (
 \r
   //\r
   // Attempt to reset SMRAM cacheability to UC\r
+  // Assume CPU AP is available at this time\r
   //\r
   Status = gDS->SetMemorySpaceAttributes(\r
                   mSmramCacheBase, \r
@@ -1069,6 +1070,7 @@ SmmIplEntry (
     // Note that it is expected that cacheability of SMRAM has been set to WB if CPU AP\r
     // is not available here.\r
     //\r
+    CpuArch = NULL;\r
     Status = gBS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID **)&CpuArch);\r
     if (!EFI_ERROR (Status)) {\r
       Status = gDS->SetMemorySpaceAttributes(\r
@@ -1121,14 +1123,16 @@ SmmIplEntry (
       //\r
       // Attempt to reset SMRAM cacheability to UC\r
       //\r
-      Status = gDS->SetMemorySpaceAttributes(\r
-                      mSmramCacheBase, \r
-                      mSmramCacheSize,\r
-                      EFI_MEMORY_UC\r
-                      );\r
-      if (EFI_ERROR (Status)) {\r
-        DEBUG ((DEBUG_WARN, "SMM IPL failed to reset SMRAM window to EFI_MEMORY_UC\n"));\r
-      }  \r
+      if (CpuArch != NULL) {\r
+        Status = gDS->SetMemorySpaceAttributes(\r
+                        mSmramCacheBase, \r
+                        mSmramCacheSize,\r
+                        EFI_MEMORY_UC\r
+                        );\r
+        if (EFI_ERROR (Status)) {\r
+          DEBUG ((DEBUG_WARN, "SMM IPL failed to reset SMRAM window to EFI_MEMORY_UC\n"));\r
+        }  \r
+      }\r
     }\r
   } else {\r
     //\r