]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c
UefiCpuPkg: Clean up source files
[mirror_edk2.git] / UefiCpuPkg / Universal / Acpi / S3Resume2Pei / S3Resume.c
index d7d2a4d1e6726c59b60c196ddc7e26a7107fd085..28e53ac5d334c2b32ecdb606ec1609965c6901c1 100644 (file)
@@ -22,9 +22,9 @@
 \r
 #include <Guid/AcpiS3Context.h>\r
 #include <Guid/BootScriptExecutorVariable.h>\r
-#include <Guid/Performance.h>\r
 #include <Guid/ExtendedFirmwarePerformance.h>\r
 #include <Guid/EndOfS3Resume.h>\r
+#include <Guid/S3SmmInitDone.h>\r
 #include <Ppi/ReadOnlyVariable2.h>\r
 #include <Ppi/S3Resume2.h>\r
 #include <Ppi/SmmAccess.h>\r
@@ -118,7 +118,7 @@ typedef union {
     UINT64  CacheDisabled:1;          // 0 = Cached, 1=Non-Cached\r
     UINT64  Accessed:1;               // 0 = Not accessed, 1 = Accessed (set by CPU)\r
     UINT64  Dirty:1;                  // 0 = Not Dirty, 1 = written by processor on access to page\r
-    UINT64  MustBe1:1;                // Must be 1 \r
+    UINT64  MustBe1:1;                // Must be 1\r
     UINT64  Global:1;                 // 0 = Not global page, 1 = global page TLB not cleared on CR3 write\r
     UINT64  Available:3;              // Available for use by system software\r
     UINT64  PAT:1;                    //\r
@@ -142,7 +142,7 @@ typedef union {
     UINT64  CacheDisabled:1;          // 0 = Cached, 1=Non-Cached\r
     UINT64  Accessed:1;               // 0 = Not accessed, 1 = Accessed (set by CPU)\r
     UINT64  Dirty:1;                  // 0 = Not Dirty, 1 = written by processor on access to page\r
-    UINT64  MustBe1:1;                // Must be 1 \r
+    UINT64  MustBe1:1;                // Must be 1\r
     UINT64  Global:1;                 // 0 = Not global page, 1 = global page TLB not cleared on CR3 write\r
     UINT64  Available:3;              // Available for use by system software\r
     UINT64  PAT:1;                    //\r
@@ -177,9 +177,9 @@ typedef struct {
 //\r
 /**\r
   a ASM function to transfer control to OS.\r
-  \r
+\r
   @param  S3WakingVector  The S3 waking up vector saved in ACPI Facs table\r
-  @param  AcpiLowMemoryBase a buffer under 1M which could be used during the transfer             \r
+  @param  AcpiLowMemoryBase a buffer under 1M which could be used during the transfer\r
 **/\r
 typedef\r
 VOID\r
@@ -260,6 +260,12 @@ EFI_PEI_PPI_DESCRIPTOR mPpiListEndOfPeiTable = {
   0\r
 };\r
 \r
+EFI_PEI_PPI_DESCRIPTOR mPpiListS3SmmInitDoneTable = {\r
+  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
+  &gEdkiiS3SmmInitDoneGuid,\r
+  0\r
+};\r
+\r
 //\r
 // Global Descriptor Table (GDT)\r
 //\r
@@ -286,132 +292,6 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST IA32_DESCRIPTOR mGdt = {
   (UINTN) mGdtEntries\r
   };\r
 \r
-/**\r
-  Performance measure function to get S3 detailed performance data.\r
-\r
-  This function will getS3 detailed performance data and saved in pre-reserved ACPI memory.\r
-**/\r
-VOID\r
-WriteToOsS3PerformanceData (\r
-  VOID\r
-  )\r
-{\r
-  EFI_STATUS                                    Status;\r
-  EFI_PHYSICAL_ADDRESS                          mAcpiLowMemoryBase;\r
-  PERF_HEADER                                   *PerfHeader;\r
-  PERF_DATA                                     *PerfData;\r
-  UINT64                                        Ticker;\r
-  UINTN                                         Index;\r
-  EFI_PEI_READ_ONLY_VARIABLE2_PPI               *VariableServices;\r
-  UINTN                                         VarSize;\r
-  UINTN                                         LogEntryKey;\r
-  CONST VOID                                    *Handle;\r
-  CONST CHAR8                                   *Token;\r
-  CONST CHAR8                                   *Module;\r
-  UINT64                                        StartTicker;\r
-  UINT64                                        EndTicker;\r
-  UINT64                                        StartValue;\r
-  UINT64                                        EndValue;\r
-  BOOLEAN                                       CountUp;\r
-  UINT64                                        Freq;\r
-\r
-  //\r
-  // Retrieve time stamp count as early as possible\r
-  //\r
-  Ticker = GetPerformanceCounter ();\r
-\r
-  Freq   = GetPerformanceCounterProperties (&StartValue, &EndValue);\r
-\r
-  Freq   = DivU64x32 (Freq, 1000);\r
-\r
-  Status = PeiServicesLocatePpi (\r
-             &gEfiPeiReadOnlyVariable2PpiGuid,\r
-             0,\r
-             NULL,\r
-             (VOID **) &VariableServices\r
-             );\r
-  if (EFI_ERROR (Status)) {\r
-    return;\r
-  }\r
-\r
-  VarSize   = sizeof (EFI_PHYSICAL_ADDRESS);\r
-  Status = VariableServices->GetVariable (\r
-                               VariableServices,\r
-                               L"PerfDataMemAddr",\r
-                               &gPerformanceProtocolGuid,\r
-                               NULL,\r
-                               &VarSize,\r
-                               &mAcpiLowMemoryBase\r
-                               );\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((EFI_D_ERROR, "Fail to retrieve variable to log S3 performance data \n"));\r
-    return;\r
-  }\r
-\r
-  PerfHeader = (PERF_HEADER *) (UINTN) mAcpiLowMemoryBase;\r
-\r
-  if (PerfHeader->Signiture != PERFORMANCE_SIGNATURE) {\r
-    DEBUG ((EFI_D_ERROR, "Performance data in ACPI memory get corrupted! \n"));\r
-    return;\r
-  }\r
-\r
-  //\r
-  // Record total S3 resume time.\r
-  //\r
-  if (EndValue >= StartValue) {\r
-    PerfHeader->S3Resume = Ticker - StartValue;\r
-    CountUp              = TRUE;\r
-  } else {\r
-    PerfHeader->S3Resume = StartValue - Ticker;\r
-    CountUp              = FALSE;\r
-  }\r
-\r
-  //\r
-  // Get S3 detailed performance data\r
-  //\r
-  Index = 0;\r
-  LogEntryKey = 0;\r
-  while ((LogEntryKey = GetPerformanceMeasurement (\r
-                          LogEntryKey,\r
-                          &Handle,\r
-                          &Token,\r
-                          &Module,\r
-                          &StartTicker,\r
-                          &EndTicker)) != 0) {\r
-    if (EndTicker != 0) {\r
-      PerfData = &PerfHeader->S3Entry[Index];\r
-\r
-      //\r
-      // Use File Handle to specify the different performance log for PEIM.\r
-      // File Handle is the base address of PEIM FFS file.\r
-      //\r
-      if ((AsciiStrnCmp (Token, "PEIM", PEI_PERFORMANCE_STRING_SIZE) == 0) && (Handle != NULL)) {\r
-        AsciiSPrint (PerfData->Token, PERF_TOKEN_LENGTH, "0x%11p", Handle);\r
-      } else {\r
-        AsciiStrnCpyS (PerfData->Token, PERF_TOKEN_SIZE, Token, PERF_TOKEN_LENGTH);\r
-      }\r
-      if (StartTicker == 1) {\r
-        StartTicker = StartValue;\r
-      }\r
-      if (EndTicker == 1) {\r
-        EndTicker = StartValue;\r
-      }\r
-      Ticker = CountUp? (EndTicker - StartTicker) : (StartTicker - EndTicker);\r
-      PerfData->Duration = (UINT32) DivU64x32 (Ticker, (UINT32) Freq);\r
-\r
-      //\r
-      // Only Record > 1ms performance data so that more big performance can be recorded.\r
-      //\r
-      if ((Ticker > Freq) && (++Index >= PERF_PEI_ENTRY_MAX_NUM)) {\r
-        //\r
-        // Reach the maximum number of PEI performance log entries.\r
-        //\r
-        break;\r
-      }\r
-    }\r
-  }\r
-  PerfHeader->S3EntryNum = (UINT32) Index;\r
-}\r
 \r
 /**\r
   The function will check if current waking vector is long mode.\r
@@ -449,13 +329,14 @@ IsLongModeWakingVector (
 }\r
 \r
 /**\r
-  Send EndOfS3Resume event to SmmCore through communication buffer way.\r
+  Signal to SMM through communication buffer way.\r
+\r
+  @param[in]  HandlerType       SMI handler type to be signaled.\r
 \r
-  @retval  EFI_SUCCESS                 Return send the event success.\r
 **/\r
-EFI_STATUS\r
-SignalEndOfS3Resume (\r
-  VOID\r
+VOID\r
+SignalToSmmByCommunication (\r
+  IN EFI_GUID   *HandlerType\r
   )\r
 {\r
   EFI_STATUS                         Status;\r
@@ -465,7 +346,7 @@ SignalEndOfS3Resume (
   SMM_COMMUNICATE_HEADER_64          Header64;\r
   VOID                               *CommBuffer;\r
 \r
-  DEBUG ((DEBUG_INFO, "SignalEndOfS3Resume - Enter\n"));\r
+  DEBUG ((DEBUG_INFO, "Signal %g to SMM - Enter\n", HandlerType));\r
 \r
   //\r
   // This buffer consumed in DXE phase, so base on DXE mode to prepare communicate buffer.\r
@@ -482,7 +363,7 @@ SignalEndOfS3Resume (
     Header32.MessageLength = 0;\r
     CommSize = OFFSET_OF (SMM_COMMUNICATE_HEADER_32, Data);\r
   }\r
-  CopyGuid (CommBuffer, &gEdkiiEndOfS3ResumeGuid);\r
+  CopyGuid (CommBuffer, HandlerType);\r
 \r
   Status = PeiServicesLocatePpi (\r
              &gEfiPeiSmmCommunicationPpiGuid,\r
@@ -492,7 +373,7 @@ SignalEndOfS3Resume (
              );\r
   if (EFI_ERROR (Status)) {\r
     DEBUG ((DEBUG_ERROR, "Locate Smm Communicate Ppi failed (%r)!\n", Status));\r
-    return Status;\r
+    return;\r
   }\r
 \r
   Status = SmmCommunicationPpi->Communicate (\r
@@ -504,8 +385,8 @@ SignalEndOfS3Resume (
     DEBUG ((DEBUG_ERROR, "SmmCommunicationPpi->Communicate return failure (%r)!\n", Status));\r
   }\r
 \r
-  DEBUG ((DEBUG_INFO, "SignalEndOfS3Resume - Exit (%r)\n", Status));\r
-  return Status;\r
+  DEBUG ((DEBUG_INFO, "Signal %g to SMM - Exit (%r)\n", HandlerType, Status));\r
+  return;\r
 }\r
 \r
 /**\r
@@ -544,22 +425,22 @@ S3ResumeBootOs (
   }\r
 \r
   //\r
-  // NOTE: Because Debug Timer interrupt and system interrupts will be disabled \r
+  // NOTE: Because Debug Timer interrupt and system interrupts will be disabled\r
   // in BootScriptExecuteDxe, the rest code in S3ResumeBootOs() cannot be halted\r
   // by soft debugger.\r
   //\r
 \r
-  PERF_END (NULL, "ScriptExec", NULL, 0);\r
+  PERF_INMODULE_END ("ScriptExec");\r
 \r
   //\r
   // Install BootScriptDonePpi\r
   //\r
-  PERF_START_EX (NULL, "BootScriptDonePpi", NULL, 0, PERF_INMODULE_START_ID);\r
+  PERF_INMODULE_BEGIN ("BootScriptDonePpi");\r
 \r
   Status = PeiServicesInstallPpi (&mPpiListPostScriptTable);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  PERF_END_EX (NULL, "BootScriptDonePpi", NULL, 0, PERF_INMODULE_END_ID);\r
+  PERF_INMODULE_END ("BootScriptDonePpi");\r
 \r
   //\r
   // Get ACPI Table Address\r
@@ -583,31 +464,28 @@ S3ResumeBootOs (
   //\r
   // Install EndOfPeiPpi\r
   //\r
-  PERF_START_EX (NULL, "EndOfPeiPpi", NULL, 0, PERF_INMODULE_START_ID);\r
+  PERF_INMODULE_BEGIN("EndOfPeiPpi");\r
 \r
   Status = PeiServicesInstallPpi (&mPpiListEndOfPeiTable);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  PERF_END_EX (NULL, "EndOfPeiPpi", NULL, 0, PERF_INMODULE_END_ID);\r
+  PERF_INMODULE_END("EndOfPeiPpi");\r
 \r
+  PERF_INMODULE_BEGIN("EndOfS3Resume");\r
+\r
+  DEBUG ((DEBUG_INFO, "Signal EndOfS3Resume\n"));\r
   //\r
-  // Signal EndOfS3Resume event.\r
+  // Signal EndOfS3Resume to SMM.\r
   //\r
-  PERF_START_EX (NULL, "EndOfS3Resume", NULL, 0, PERF_INMODULE_START_ID);\r
-\r
-  SignalEndOfS3Resume ();\r
+  SignalToSmmByCommunication (&gEdkiiEndOfS3ResumeGuid);\r
 \r
-  PERF_END_EX (NULL, "EndOfS3Resume", NULL, 0, PERF_INMODULE_END_ID);\r
+  PERF_INMODULE_END ("EndOfS3Resume");\r
 \r
   //\r
   // report status code on S3 resume\r
   //\r
   REPORT_STATUS_CODE (EFI_PROGRESS_CODE, EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_PC_OS_WAKE);\r
 \r
-  PERF_CODE (\r
-    WriteToOsS3PerformanceData ();\r
-    );\r
-\r
   AsmTransferControl = (ASM_TRANSFER_CONTROL)(UINTN)PeiS3ResumeState->AsmTransferControl;\r
   if (Facs->XFirmwareWakingVector != 0) {\r
     //\r
@@ -685,7 +563,7 @@ S3ResumeBootOs (
 \r
 /**\r
   Restore S3 page table because we do not trust ACPINvs content.\r
-  If BootScriptExector driver will not run in 64-bit mode, this function will do nothing. \r
+  If BootScriptExector driver will not run in 64-bit mode, this function will do nothing.\r
 \r
   @param S3NvsPageTableAddress   PageTableAddress in ACPINvs\r
   @param Build4GPageTableOnly    If BIOS just build 4G page table only\r
@@ -733,7 +611,7 @@ RestoreS3PageTables (
     //\r
     PageMap = (PAGE_MAP_AND_DIRECTORY_POINTER *)S3NvsPageTableAddress;\r
     S3NvsPageTableAddress += SIZE_4KB;\r
-    \r
+\r
     Page1GSupport = FALSE;\r
     if (PcdGetBool(PcdUse1GPageTable)) {\r
       AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);\r
@@ -744,7 +622,7 @@ RestoreS3PageTables (
         }\r
       }\r
     }\r
-    \r
+\r
     //\r
     // Get physical address bits supported.\r
     //\r
@@ -760,7 +638,7 @@ RestoreS3PageTables (
         PhysicalAddressBits = 36;\r
       }\r
     }\r
-    \r
+\r
     //\r
     // IA-32e paging translates 48-bit linear addresses to 52-bit physical addresses.\r
     //\r
@@ -787,7 +665,7 @@ RestoreS3PageTables (
       NumberOfPml4EntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 39));\r
       NumberOfPdpEntriesNeeded = 512;\r
     }\r
-    \r
+\r
     PageMapLevel4Entry = PageMap;\r
     PageAddress        = 0;\r
     for (IndexOfPml4Entries = 0; IndexOfPml4Entries < NumberOfPml4EntriesNeeded; IndexOfPml4Entries++, PageMapLevel4Entry++) {\r
@@ -797,7 +675,7 @@ RestoreS3PageTables (
       //\r
       PageDirectoryPointerEntry = (PAGE_MAP_AND_DIRECTORY_POINTER *)S3NvsPageTableAddress;\r
       S3NvsPageTableAddress += SIZE_4KB;\r
-    \r
+\r
       //\r
       // Make a PML4 Entry\r
       //\r
@@ -807,7 +685,7 @@ RestoreS3PageTables (
 \r
       if (Page1GSupport) {\r
         PageDirectory1GEntry = (VOID *) PageDirectoryPointerEntry;\r
-    \r
+\r
         for (IndexOfPageDirectoryEntries = 0; IndexOfPageDirectoryEntries < 512; IndexOfPageDirectoryEntries++, PageDirectory1GEntry++, PageAddress += SIZE_1GB) {\r
           //\r
           // Fill in the Page Directory entries\r
@@ -822,17 +700,17 @@ RestoreS3PageTables (
           //\r
           // Each Directory Pointer entries points to a page of Page Directory entires.\r
           // So allocate space for them and fill them in in the IndexOfPageDirectoryEntries loop.\r
-          //       \r
+          //\r
           PageDirectoryEntry = (PAGE_TABLE_ENTRY *)S3NvsPageTableAddress;\r
           S3NvsPageTableAddress += SIZE_4KB;\r
-    \r
+\r
           //\r
           // Fill in a Page Directory Pointer Entries\r
           //\r
           PageDirectoryPointerEntry->Uint64 = (UINT64)(UINTN)PageDirectoryEntry | AddressEncMask;\r
           PageDirectoryPointerEntry->Bits.ReadWrite = 1;\r
           PageDirectoryPointerEntry->Bits.Present = 1;\r
-    \r
+\r
           for (IndexOfPageDirectoryEntries = 0; IndexOfPageDirectoryEntries < 512; IndexOfPageDirectoryEntries++, PageDirectoryEntry++, PageAddress += SIZE_2MB) {\r
             //\r
             // Fill in the Page Directory entries\r
@@ -847,9 +725,9 @@ RestoreS3PageTables (
     }\r
     return ;\r
   } else {\r
-       //\r
-       // If DXE is running 32-bit mode, no need to establish page table.\r
-       //\r
+    //\r
+    // If DXE is running 32-bit mode, no need to establish page table.\r
+    //\r
     return ;\r
   }\r
 }\r
@@ -892,7 +770,7 @@ S3ResumeExecuteBootScript (
 \r
     //\r
     // Send SMI to APs\r
-    //    \r
+    //\r
     SendSmiIpiAllExcludingSelf ();\r
     //\r
     // Send SMI to BSP\r
@@ -907,17 +785,28 @@ S3ResumeExecuteBootScript (
                               );\r
     if (!EFI_ERROR (Status)) {\r
       DEBUG ((DEBUG_INFO, "Close all SMRAM regions before executing boot script\n"));\r
-  \r
+\r
       for (Index = 0, Status = EFI_SUCCESS; !EFI_ERROR (Status); Index++) {\r
         Status = SmmAccess->Close ((EFI_PEI_SERVICES **)GetPeiServicesTablePointer (), SmmAccess, Index);\r
       }\r
 \r
       DEBUG ((DEBUG_INFO, "Lock all SMRAM regions before executing boot script\n"));\r
-  \r
+\r
       for (Index = 0, Status = EFI_SUCCESS; !EFI_ERROR (Status); Index++) {\r
         Status = SmmAccess->Lock ((EFI_PEI_SERVICES **)GetPeiServicesTablePointer (), SmmAccess, Index);\r
       }\r
     }\r
+\r
+    DEBUG ((DEBUG_INFO, "Signal S3SmmInitDone\n"));\r
+    //\r
+    // Install S3SmmInitDone PPI.\r
+    //\r
+    Status = PeiServicesInstallPpi (&mPpiListS3SmmInitDoneTable);\r
+    ASSERT_EFI_ERROR (Status);\r
+    //\r
+    // Signal S3SmmInitDone to SMM.\r
+    //\r
+    SignalToSmmByCommunication (&gEdkiiS3SmmInitDoneGuid);\r
   }\r
 \r
   if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) {\r
@@ -927,12 +816,12 @@ S3ResumeExecuteBootScript (
   if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {\r
     //\r
     // On some platform, such as ECP, a dispatch node in boot script table may execute a 32-bit PEIM which may need PeiServices\r
-    // pointer. So PeiServices need preserve in (IDTBase- sizeof (UINTN)). \r
+    // pointer. So PeiServices need preserve in (IDTBase- sizeof (UINTN)).\r
     //\r
     IdtDescriptor = (IA32_DESCRIPTOR *) (UINTN) (AcpiS3Context->IdtrProfile);\r
     //\r
     // Make sure the newly allocated IDT align with 16-bytes\r
-    // \r
+    //\r
     IdtBuffer = AllocatePages (EFI_SIZE_TO_PAGES((IdtDescriptor->Limit + 1) + 16));\r
     if (IdtBuffer == NULL) {\r
       REPORT_STATUS_CODE (\r
@@ -944,7 +833,7 @@ S3ResumeExecuteBootScript (
     //\r
     // Additional 16 bytes allocated to save IA32 IDT descriptor and Pei Service Table Pointer\r
     // IA32 IDT descriptor will be used to setup IA32 IDT table for 32-bit Framework Boot Script code\r
-    // \r
+    //\r
     ZeroMem (IdtBuffer, 16);\r
     AsmReadIdtr ((IA32_DESCRIPTOR *)IdtBuffer);\r
     CopyMem ((VOID*)((UINT8*)IdtBuffer + 16),(VOID*)(IdtDescriptor->Base), (IdtDescriptor->Limit + 1));\r
@@ -985,13 +874,13 @@ S3ResumeExecuteBootScript (
   // Save IDT\r
   //\r
   AsmReadIdtr (&PeiS3ResumeState->Idtr);\r
-  \r
+\r
   //\r
   // Report Status Code to indicate S3 boot script execution\r
   //\r
   REPORT_STATUS_CODE (EFI_PROGRESS_CODE, EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_PC_S3_BOOT_SCRIPT);\r
 \r
-  PERF_START (NULL, "ScriptExec", NULL, 0);\r
+  PERF_INMODULE_BEGIN ("ScriptExec");\r
 \r
   if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) {\r
     //\r
@@ -1122,7 +1011,7 @@ S3RestoreConfig2 (
   DEBUG (( DEBUG_INFO, "AcpiS3Context = %x\n", AcpiS3Context));\r
   DEBUG (( DEBUG_INFO, "Waking Vector = %x\n", ((EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *) ((UINTN) (AcpiS3Context->AcpiFacsTable)))->FirmwareWakingVector));\r
   DEBUG (( DEBUG_INFO, "AcpiS3Context->AcpiFacsTable = %x\n", AcpiS3Context->AcpiFacsTable));\r
-  DEBUG (( DEBUG_INFO, "AcpiS3Context->IdtrProfile = %x\n", AcpiS3Context->IdtrProfile));  \r
+  DEBUG (( DEBUG_INFO, "AcpiS3Context->IdtrProfile = %x\n", AcpiS3Context->IdtrProfile));\r
   DEBUG (( DEBUG_INFO, "AcpiS3Context->S3NvsPageTableAddress = %x\n", AcpiS3Context->S3NvsPageTableAddress));\r
   DEBUG (( DEBUG_INFO, "AcpiS3Context->S3DebugBufferAddress = %x\n", AcpiS3Context->S3DebugBufferAddress));\r
   DEBUG (( DEBUG_INFO, "AcpiS3Context->BootScriptStackBase = %x\n", AcpiS3Context->BootScriptStackBase));\r
@@ -1211,7 +1100,7 @@ S3RestoreConfig2 (
       AsmWriteGdtr (&mGdt);\r
       //\r
       // update segment selectors per the new GDT.\r
-      //      \r
+      //\r
       AsmSetDataSelectors (DATA_SEGEMENT_SELECTOR);\r
       //\r
       // Restore interrupt state.\r
@@ -1245,7 +1134,7 @@ S3RestoreConfig2 (
   Main entry for S3 Resume PEIM.\r
 \r
   This routine is to install EFI_PEI_S3_RESUME2_PPI.\r
-  \r
+\r
   @param  FileHandle              Handle of the file being invoked.\r
   @param  PeiServices             Pointer to PEI Services table.\r
 \r