]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c
1. PI SMBIOS Checkin. Major change include:
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / FrontPage.c
index 9443a65bcdfe9404bcebde3eb42b432e26e9c949..7513ab6d6bb19170d4a05d153493ec82e8417f6e 100644 (file)
@@ -21,10 +21,7 @@ EFI_GUID  mFrontPageGuid      = FRONT_PAGE_FORMSET_GUID;
 BOOLEAN   gConnectAllHappened = FALSE;\r
 UINTN     gCallbackKey;\r
 \r
-EFI_HII_DATABASE_PROTOCOL       *gHiiDatabase;\r
-EFI_HII_STRING_PROTOCOL         *gHiiString;\r
 EFI_FORM_BROWSER2_PROTOCOL      *gFormBrowser2;\r
-EFI_HII_CONFIG_ROUTING_PROTOCOL *gHiiConfigRouting;\r
 \r
 FRONT_PAGE_CALLBACK_DATA  gFrontPagePrivate = {\r
   FRONT_PAGE_CALLBACK_DATA_SIGNATURE,\r
@@ -56,7 +53,7 @@ HII_VENDOR_DEVICE_PATH  mFrontPageHiiVendorDevicePath = {
   {\r
     END_DEVICE_PATH_TYPE,\r
     END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
-    { \r
+    {\r
       (UINT8) (END_DEVICE_PATH_LENGTH),\r
       (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)\r
     }\r
@@ -94,6 +91,9 @@ FakeExtractConfig (
   OUT EFI_STRING                             *Results\r
   )\r
 {\r
+  if (Request == NULL || Progress == NULL || Results == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
   *Progress = Request;\r
   return EFI_NOT_FOUND;\r
 }\r
@@ -122,15 +122,18 @@ FakeRouteConfig (
   OUT EFI_STRING                             *Progress\r
   )\r
 {\r
-  if (Configuration == NULL) {\r
+  if (Configuration == NULL || Progress == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  if (Progress == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
+  *Progress = Configuration;\r
+  if (!HiiIsConfigHdrMatch (Configuration, &mBootMaintGuid, mBootMaintStorageName)\r
+      && !HiiIsConfigHdrMatch (Configuration, &mFileExplorerGuid, mFileExplorerStorageName)) {\r
+    return EFI_NOT_FOUND;\r
   }\r
 \r
-  return EFI_NOT_FOUND;\r
+  *Progress = Configuration + StrLen (Configuration);\r
+  return EFI_SUCCESS;\r
 }\r
 \r
 /**\r
@@ -199,7 +202,7 @@ FrontPageCallback (
     //\r
     Lang = AllocatePool (AsciiStrSize (LanguageString));\r
     ASSERT (Lang != NULL);\r
-    \r
+\r
     Index = 0;\r
     LangCode = LanguageString;\r
     while (*LangCode != 0) {\r
@@ -220,7 +223,7 @@ FrontPageCallback (
                                      );\r
       ASSERT (PlatformSupportedLanguages != NULL);\r
     }\r
-    \r
+\r
     //\r
     // Select the best language in platform supported Language.\r
     //\r
@@ -300,7 +303,6 @@ InitializeFrontPage (
   CHAR8                       *BestLanguage;\r
   UINTN                       OptionCount;\r
   CHAR16                      *StringBuffer;\r
-  UINTN                       BufferSize;\r
   EFI_HII_HANDLE              HiiHandle;\r
   VOID                        *OptionsOpCodeHandle;\r
   VOID                        *StartOpCodeHandle;\r
@@ -325,26 +327,11 @@ InitializeFrontPage (
     //\r
     // Locate Hii relative protocols\r
     //\r
-    Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **) &gHiiDatabase);\r
-    if (EFI_ERROR (Status)) {\r
-      return Status;\r
-    }\r
-\r
-    Status = gBS->LocateProtocol (&gEfiHiiStringProtocolGuid, NULL, (VOID **) &gHiiString);\r
-    if (EFI_ERROR (Status)) {\r
-      return Status;\r
-    }\r
-\r
     Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **) &gFormBrowser2);\r
     if (EFI_ERROR (Status)) {\r
       return Status;\r
     }\r
 \r
-    Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **) &gHiiConfigRouting);\r
-    if (EFI_ERROR (Status)) {\r
-      return Status;\r
-    }\r
-\r
     //\r
     // Install Device Path Protocol and Config Access protocol to driver handle\r
     //\r
@@ -431,7 +418,7 @@ InitializeFrontPage (
   OptionCount = 0;\r
   LangCode    = LanguageString;\r
   FirstFlag   = FALSE;\r
-  \r
+\r
   if (gFrontPagePrivate.LanguageToken == NULL) {\r
     while (*LangCode != 0) {\r
       GetNextLanguage (&LangCode, Lang);\r
@@ -448,35 +435,8 @@ InitializeFrontPage (
     GetNextLanguage (&LangCode, Lang);\r
 \r
     if (FirstFlag) {\r
-      //\r
-      // Get Language Name from String Package. The StringId of Printable Language\r
-      // Name is always 1 which is generated by StringGather Tool.\r
-      //\r
-      BufferSize = 0x100;\r
-      StringBuffer = AllocatePool (BufferSize);\r
-      Status = gHiiString->GetString (\r
-                           gHiiString,\r
-                           Lang,\r
-                           HiiHandle,\r
-                           PRINTABLE_LANGUAGE_NAME_STRING_ID,\r
-                           StringBuffer,\r
-                           &BufferSize,\r
-                           NULL\r
-                           );\r
-      if (Status == EFI_BUFFER_TOO_SMALL) {\r
-        FreePool (StringBuffer);\r
-        StringBuffer = AllocatePool (BufferSize);\r
-        Status = gHiiString->GetString (\r
-                             gHiiString,\r
-                             Lang,\r
-                             HiiHandle,\r
-                             PRINTABLE_LANGUAGE_NAME_STRING_ID,\r
-                             StringBuffer,\r
-                             &BufferSize,\r
-                             NULL\r
-                             );\r
-      }\r
-      ASSERT_EFI_ERROR (Status);\r
+      StringBuffer = HiiGetString (HiiHandle, PRINTABLE_LANGUAGE_NAME_STRING_ID, Lang);\r
+      ASSERT_EFI_ERROR (StringBuffer != NULL);\r
 \r
       //\r
       // Save the string Id for each language\r
@@ -614,25 +574,27 @@ GetProducerString (
 }\r
 \r
 /**\r
-  Convert Processor Frequency Data to a string\r
+  Convert Processor Frequency Data to a string.\r
 \r
   @param ProcessorFrequency The frequency data to process\r
+  @param Base10Exponent     The exponent based on 10\r
   @param String             The string that is created\r
 \r
 **/\r
 VOID\r
 ConvertProcessorToString (\r
-  IN  EFI_PROCESSOR_CORE_FREQUENCY_DATA *ProcessorFrequency,\r
-  OUT CHAR16                            **String\r
+  IN  UINT16                               ProcessorFrequency,\r
+  IN  UINT16                               Base10Exponent,\r
+  OUT CHAR16                               **String\r
   )\r
 {\r
   CHAR16  *StringBuffer;\r
   UINTN   Index;\r
   UINT32  FreqMhz;\r
 \r
-  if (ProcessorFrequency->Exponent >= 6) {\r
-    FreqMhz = ProcessorFrequency->Value;\r
-    for (Index = 0; Index < (UINTN) (ProcessorFrequency->Exponent - 6); Index++) {\r
+  if (Base10Exponent >= 6) {\r
+    FreqMhz = ProcessorFrequency;\r
+    for (Index = 0; Index < (UINTN) (Base10Exponent - 6); Index++) {\r
       FreqMhz *= 10;\r
     }\r
   } else {\r
@@ -645,12 +607,11 @@ ConvertProcessorToString (
   StrCat (StringBuffer, L".");\r
   UnicodeValueToString (StringBuffer + Index + 1, PREFIX_ZERO, (FreqMhz % 1000) / 10, 2);\r
   StrCat (StringBuffer, L" GHz");\r
-\r
   *String = (CHAR16 *) StringBuffer;\r
-\r
   return ;\r
 }\r
 \r
+\r
 /**\r
   Convert Memory Size to a string.\r
 \r
@@ -676,6 +637,74 @@ ConvertMemorySizeToString (
   return ;\r
 }\r
 \r
+/**\r
+\r
+  Acquire the string associated with the Index from smbios structure and return it.\r
+  The caller is responsible for free the string buffer.\r
+\r
+  @param    OptionalStrStart  The start position to search the string\r
+  @param    Index             The index of the string to extract\r
+  @param    String            The string that is extracted\r
+\r
+  @retval   EFI_SUCCESS       The function returns EFI_SUCCESS always.\r
+\r
+**/\r
+EFI_STATUS\r
+GetOptionalStringByIndex (\r
+  IN      CHAR8                   *OptionalStrStart,\r
+  IN      UINT8                   Index,\r
+  OUT     CHAR16                  **String\r
+  )\r
+{\r
+  UINT8          StrNum;\r
+  UINTN          CurrentStrLen;\r
+  CHAR8*         CharInStr;\r
+  EFI_STATUS     Status;\r
+\r
+  StrNum        = 0;\r
+  Status        = EFI_NOT_FOUND;\r
+  CharInStr     = OptionalStrStart;\r
+\r
+  if (Index != 1) {\r
+    CurrentStrLen = 0;\r
+    //\r
+    // look for the two consecutive zeros, check the string limit by the way.\r
+    //\r
+    while (*CharInStr != 0 || *(CharInStr+1) != 0) { \r
+      if (*CharInStr == 0) {\r
+        StrNum += 1;\r
+        CharInStr++;\r
+      }\r
+  \r
+      if (StrNum == Index) {\r
+        Status = EFI_SUCCESS;\r
+        break;\r
+      }\r
+  \r
+      CurrentStrLen = AsciiStrLen(CharInStr);\r
+  \r
+      //\r
+      // forward the pointer\r
+      //\r
+      OptionalStrStart = CharInStr;\r
+      CharInStr += CurrentStrLen;\r
+    }\r
+  \r
+    if (EFI_ERROR (Status)) {\r
+      *String = GetStringById (STRING_TOKEN (STR_MISSING_STRING));\r
+      return Status;\r
+    }\r
+  } else {\r
+    CurrentStrLen = AsciiStrLen(CharInStr);\r
+  }\r
+\r
+  *String = AllocatePool((CurrentStrLen + 1)*sizeof(CHAR16));\r
+  AsciiStrToUnicodeStr(OptionalStrStart, *String);\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
+\r
 /**\r
   Update the banner information for the Front Page based on DataHub information.\r
 \r
@@ -685,19 +714,18 @@ UpdateFrontPageStrings (
   VOID\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  EFI_STRING_ID                     TokenToUpdate;\r
+  UINT8                             StrIndex;\r
   CHAR16                            *NewString;\r
-  UINT64                            MonotonicCount;\r
-  EFI_DATA_HUB_PROTOCOL             *DataHub;\r
-  EFI_DATA_RECORD_HEADER            *Record;\r
-  EFI_SUBCLASS_TYPE1_HEADER         *DataHeader;\r
-  EFI_MISC_BIOS_VENDOR_DATA         *BiosVendor;\r
-  EFI_MISC_SYSTEM_MANUFACTURER_DATA *SystemManufacturer;\r
-  EFI_PROCESSOR_VERSION_DATA        *ProcessorVersion;\r
-  EFI_PROCESSOR_CORE_FREQUENCY_DATA *ProcessorFrequency;\r
-  EFI_MEMORY_ARRAY_START_ADDRESS_DATA    *MemoryArray;\r
   BOOLEAN                           Find[5];\r
+  EFI_STATUS                        Status;\r
+  EFI_STRING_ID                     TokenToUpdate;\r
+  EFI_SMBIOS_HANDLE                 SmbiosHandle;\r
+  EFI_SMBIOS_PROTOCOL               *Smbios;\r
+  SMBIOS_TABLE_TYPE0                *Type0Record;\r
+  SMBIOS_TABLE_TYPE1                *Type1Record;\r
+  SMBIOS_TABLE_TYPE4                *Type4Record;\r
+  SMBIOS_TABLE_TYPE19               *Type19Record;\r
+  EFI_SMBIOS_TABLE_HEADER           *Record;\r
 \r
   ZeroMem (Find, sizeof (Find));\r
 \r
@@ -705,86 +733,79 @@ UpdateFrontPageStrings (
   // Update Front Page strings\r
   //\r
   Status = gBS->LocateProtocol (\r
-                  &gEfiDataHubProtocolGuid,\r
+                  &gEfiSmbiosProtocolGuid,\r
                   NULL,\r
-                  (VOID **) &DataHub\r
+                  (VOID **) &Smbios\r
                   );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  MonotonicCount  = 0;\r
-  Record          = NULL;\r
+  SmbiosHandle = 0;\r
   do {\r
-    Status = DataHub->GetNextRecord (DataHub, &MonotonicCount, NULL, &Record);\r
-    if (Record->DataRecordClass == EFI_DATA_RECORD_CLASS_DATA) {\r
-      DataHeader = (EFI_SUBCLASS_TYPE1_HEADER *) (Record + 1);\r
-      if (CompareGuid (&Record->DataRecordGuid, &gEfiMiscSubClassGuid) &&\r
-          (DataHeader->RecordType == EFI_MISC_BIOS_VENDOR_RECORD_NUMBER)\r
-          ) {\r
-        BiosVendor = (EFI_MISC_BIOS_VENDOR_DATA *) (DataHeader + 1);\r
-        GetProducerString (&Record->ProducerName, BiosVendor->BiosVersion, &NewString);\r
-        TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION);\r
-        HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
-        FreePool (NewString);\r
-        Find[0] = TRUE;\r
-      }\r
-\r
-      if (CompareGuid (&Record->DataRecordGuid, &gEfiMiscSubClassGuid) &&\r
-          (DataHeader->RecordType == EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER)\r
-          ) {\r
-        SystemManufacturer = (EFI_MISC_SYSTEM_MANUFACTURER_DATA *) (DataHeader + 1);\r
-        GetProducerString (&Record->ProducerName, SystemManufacturer->SystemProductName, &NewString);\r
-        TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL);\r
-        HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
-        FreePool (NewString);\r
-        Find[1] = TRUE;\r
-      }\r
-\r
-      if (CompareGuid (&Record->DataRecordGuid, &gEfiProcessorSubClassGuid) &&\r
-          (DataHeader->RecordType == ProcessorVersionRecordType)\r
-          ) {\r
-        ProcessorVersion = (EFI_PROCESSOR_VERSION_DATA *) (DataHeader + 1);\r
-        GetProducerString (&Record->ProducerName, *ProcessorVersion, &NewString);\r
-        TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_MODEL);\r
-        HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
-        FreePool (NewString);\r
-        Find[2] = TRUE;\r
-      }\r
-\r
-      if (CompareGuid (&Record->DataRecordGuid, &gEfiProcessorSubClassGuid) &&\r
-          (DataHeader->RecordType == ProcessorCoreFrequencyRecordType)\r
-          ) {\r
-        ProcessorFrequency = (EFI_PROCESSOR_CORE_FREQUENCY_DATA *) (DataHeader + 1);\r
-        ConvertProcessorToString (ProcessorFrequency, &NewString);\r
-        TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_SPEED);\r
-        HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
-        FreePool (NewString);\r
-        Find[3] = TRUE;\r
-      }\r
-\r
-      if (CompareGuid (&Record->DataRecordGuid, &gEfiMemorySubClassGuid) &&\r
-          (DataHeader->RecordType == EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER)\r
-          ) {\r
-        MemoryArray = (EFI_MEMORY_ARRAY_START_ADDRESS_DATA *) (DataHeader + 1);\r
-        ConvertMemorySizeToString (\r
-          (UINT32)(RShiftU64((MemoryArray->MemoryArrayEndAddress - MemoryArray->MemoryArrayStartAddress + 1), 20)),\r
-          &NewString\r
-          );\r
-        TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE);\r
-        HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
-        FreePool (NewString);\r
-        Find[4] = TRUE;\r
-      }\r
+    Status = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);\r
+    if (EFI_ERROR(Status)) {\r
+      break;\r
     }\r
-  } while (!EFI_ERROR (Status) && (MonotonicCount != 0) && !(Find[0] && Find[1] && Find[2] && Find[3] && Find[4]));\r
 \r
+    if (Record->Type == EFI_SMBIOS_TYPE_BIOS_INFORMATION) {\r
+      Type0Record = (SMBIOS_TABLE_TYPE0 *) Record;\r
+      StrIndex = Type0Record->BiosVersion;\r
+      GetOptionalStringByIndex ((CHAR8*)(Type0Record+1), StrIndex, &NewString);\r
+      TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION);\r
+      HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+      FreePool (NewString);\r
+      Find[0] = TRUE;\r
+    }  \r
+\r
+    if (Record->Type == EFI_SMBIOS_TYPE_SYSTEM_INFORMATION) {\r
+      Type1Record = (SMBIOS_TABLE_TYPE1 *) Record;\r
+      StrIndex = Type1Record->ProductName;\r
+      GetOptionalStringByIndex ((CHAR8*)(Type1Record+1), StrIndex, &NewString);\r
+      TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL);\r
+      HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+      FreePool (NewString);\r
+      Find[1] = TRUE;\r
+    }\r
+      \r
+    if (Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) {\r
+      Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
+      StrIndex = Type4Record->ProcessorVersion;\r
+      GetOptionalStringByIndex ((CHAR8*)(Type4Record+1), StrIndex, &NewString);\r
+      TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_MODEL);\r
+      HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+      FreePool (NewString);\r
+      Find[2] = TRUE;\r
+    }    \r
+\r
+    if (Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) {\r
+      Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
+      ConvertProcessorToString(Type4Record->CurrentSpeed, 6, &NewString);\r
+      TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_SPEED);\r
+      HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+      FreePool (NewString);\r
+      Find[3] = TRUE;\r
+    } \r
+\r
+    if ( Record->Type == EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS ) {\r
+      Type19Record = (SMBIOS_TABLE_TYPE19 *) Record;\r
+      ConvertMemorySizeToString (\r
+        (UINT32)(RShiftU64((Type19Record->EndingAddress - Type19Record->StartingAddress + 1), 10)),\r
+        &NewString\r
+        );\r
+      TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE);\r
+      HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+      FreePool (NewString);\r
+      Find[4] = TRUE;  \r
+    }\r
+  } while ( !(Find[0] && Find[1] && Find[2] && Find[3] && Find[4]));\r
   return ;\r
 }\r
 \r
+\r
 /**\r
   Function waits for a given event to fire, or for an optional timeout to expire.\r
 \r
-  @param Event              The event to wait for\r
-  @param Timeout            An optional timeout value in 100 ns units.\r
+  @param   Event              The event to wait for\r
+  @param   Timeout            An optional timeout value in 100 ns units.\r
 \r
   @retval  EFI_SUCCESS      Event fired before Timeout expired.\r
   @retval  EFI_TIME_OUT     Timout expired before Event fired..\r
@@ -796,8 +817,8 @@ WaitForSingleEvent (
   IN UINT64                     Timeout OPTIONAL\r
   )\r
 {\r
-  EFI_STATUS  Status;\r
   UINTN       Index;\r
+  EFI_STATUS  Status;\r
   EFI_EVENT   TimerEvent;\r
   EFI_EVENT   WaitList[2];\r
 \r
@@ -811,10 +832,10 @@ WaitForSingleEvent (
       // Set the timer event\r
       //\r
       gBS->SetTimer (\r
-            TimerEvent,\r
-            TimerRelative,\r
-            Timeout\r
-            );\r
+             TimerEvent,\r
+             TimerRelative,\r
+             Timeout\r
+             );\r
 \r
       //\r
       // Wait for the original event or the timer\r
@@ -847,7 +868,7 @@ WaitForSingleEvent (
   Function show progress bar to wait for user input.\r
 \r
 \r
-  @param TimeoutDefault  The fault time out value before the system continue to boot.\r
+  @param   TimeoutDefault  The fault time out value before the system continue to boot.\r
 \r
   @retval  EFI_SUCCESS       User pressed some key except "Enter"\r
   @retval  EFI_TIME_OUT      Timout expired or user press "Enter"\r
@@ -858,20 +879,20 @@ ShowProgress (
   IN UINT16                       TimeoutDefault\r
   )\r
 {\r
-  EFI_STATUS                    Status;\r
   CHAR16                        *TmpStr;\r
+  UINT16                        TimeoutRemain;\r
+  EFI_STATUS                    Status;\r
+  EFI_INPUT_KEY                 Key;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;\r
-  EFI_INPUT_KEY                 Key;\r
-  UINT16                        TimeoutRemain;\r
 \r
   if (TimeoutDefault == 0) {\r
     return EFI_TIMEOUT;\r
   }\r
 \r
   DEBUG ((EFI_D_INFO, "\n\nStart showing progress bar... Press any key to stop it! ...Zzz....\n"));\r
-  \r
+\r
   SetMem (&Foreground, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);\r
   SetMem (&Background, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0);\r
   SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);\r
@@ -887,7 +908,7 @@ ShowProgress (
   TimeoutRemain = TimeoutDefault;\r
   while (TimeoutRemain != 0) {\r
     DEBUG ((EFI_D_INFO, "Showing progress bar...Remaining %d second!\n", TimeoutRemain));\r
-    \r
+\r
     Status = WaitForSingleEvent (gST->ConIn->WaitForKey, ONE_SECOND);\r
     if (Status != EFI_TIMEOUT) {\r
       break;\r
@@ -955,7 +976,7 @@ PlatformBdsEnterFrontPage (
 {\r
   EFI_STATUS                    Status;\r
 \r
-  PERF_START (0, "BdsTimeOut", "BDS", 0);\r
+  PERF_START (NULL, "BdsTimeOut", "BDS", 0);\r
   //\r
   // Indicate if we need connect all in the platform setup\r
   //\r
@@ -1066,5 +1087,5 @@ Exit:
   // Note: The following lines of code only execute when Auto boot\r
   // takes affect\r
   //\r
-  PERF_END (0, "BdsTimeOut", "BDS", 0);\r
+  PERF_END (NULL, "BdsTimeOut", "BDS", 0);\r
 }\r