]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c
Fixed update file time error problem.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / FrontPage.c
index 2098602b2f729750e84eb436c2b70ab39d054bb2..62ba39484306455382592a3039213a8f2d3e6a2c 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   FrontPage routines to handle the callbacks and browser calls\r
 \r
-Copyright (c) 2004 - 2009, Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
@@ -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
@@ -81,7 +78,7 @@ HII_VENDOR_DEVICE_PATH  mFrontPageHiiVendorDevicePath = {
 \r
   @retval  EFI_SUCCESS            The Results is filled with the requested values.\r
   @retval  EFI_OUT_OF_RESOURCES   Not enough memory to store the results.\r
-  @retval  EFI_INVALID_PARAMETER  Request is NULL, illegal syntax, or unknown name.\r
+  @retval  EFI_INVALID_PARAMETER  Request is illegal syntax, or unknown name.\r
   @retval  EFI_NOT_FOUND          Routing data doesn't match any storage in this driver.\r
 \r
 **/\r
@@ -94,7 +91,7 @@ FakeExtractConfig (
   OUT EFI_STRING                             *Results\r
   )\r
 {\r
-  if (Request == NULL || Progress == NULL || Results == NULL) {\r
+  if (Progress == NULL || Results == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
   *Progress = Request;\r
@@ -176,6 +173,13 @@ FrontPageCallback (
   CHAR8                         *PlatformSupportedLanguages;\r
   CHAR8                         *BestLanguage;\r
 \r
+  if ((Action == EFI_BROWSER_ACTION_FORM_OPEN) || (Action == EFI_BROWSER_ACTION_FORM_CLOSE)) {\r
+    //\r
+    // Do nothing for UEFI OPEN/CLOSE Action\r
+    //\r
+    return EFI_SUCCESS;\r
+  }\r
+\r
   if ((Value == NULL) || (ActionRequest == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
@@ -205,7 +209,7 @@ FrontPageCallback (
     //\r
     Lang = AllocatePool (AsciiStrSize (LanguageString));\r
     ASSERT (Lang != NULL);\r
-    \r
+\r
     Index = 0;\r
     LangCode = LanguageString;\r
     while (*LangCode != 0) {\r
@@ -226,7 +230,7 @@ FrontPageCallback (
                                      );\r
       ASSERT (PlatformSupportedLanguages != NULL);\r
     }\r
-    \r
+\r
     //\r
     // Select the best language in platform supported Language.\r
     //\r
@@ -306,7 +310,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
@@ -331,26 +334,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
@@ -437,7 +425,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
@@ -454,35 +442,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 (StringBuffer != NULL);\r
 \r
       //\r
       // Save the string Id for each language\r
@@ -580,7 +541,7 @@ CallFrontPage (
                             &ActionRequest\r
                             );\r
   //\r
-  // Check whether user  change any option setting which needs a reset to be effective\r
+  // Check whether user change any option setting which needs a reset to be effective\r
   //\r
   if (ActionRequest == EFI_BROWSER_ACTION_REQUEST_RESET) {\r
     EnableResetRequired ();\r
@@ -623,22 +584,24 @@ GetProducerString (
   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
@@ -651,12 +614,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
@@ -682,6 +644,50 @@ 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
+  UINTN          StrSize;\r
+\r
+  if (Index == 0) {\r
+    *String = AllocateZeroPool (sizeof (CHAR16));\r
+    return EFI_SUCCESS;\r
+  }\r
+\r
+  StrSize = 0;\r
+  do {\r
+    Index--;\r
+    OptionalStrStart += StrSize;\r
+    StrSize           = AsciiStrSize (OptionalStrStart);\r
+  } while (OptionalStrStart[StrSize] != 0 && Index != 0);\r
+\r
+  if (Index != 0) {\r
+    *String = GetStringById (STRING_TOKEN (STR_MISSING_STRING));\r
+  } else {\r
+    *String = AllocatePool (StrSize * sizeof (CHAR16));\r
+    AsciiStrToUnicodeStr (OptionalStrStart, *String);\r
+  }\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
+\r
 /**\r
   Update the banner information for the Front Page based on DataHub information.\r
 \r
@@ -691,19 +697,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
@@ -711,86 +716,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*)((UINT8*)Type0Record + Type0Record->Hdr.Length), 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*)((UINT8*)Type1Record + Type1Record->Hdr.Length), 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*)((UINT8*)Type4Record + Type4Record->Hdr.Length), 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
@@ -802,8 +800,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
@@ -817,10 +815,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
@@ -853,10 +851,10 @@ 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
+  @retval  EFI_TIME_OUT      Timeout expired or user press "Enter"\r
 \r
 **/\r
 EFI_STATUS\r
@@ -864,20 +862,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
@@ -893,7 +891,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
@@ -950,7 +948,7 @@ ShowProgress (
   @param TimeoutDefault     The fault time out value before the system\r
                             continue to boot.\r
   @param ConnectAllHappened The indicater to check if the connect all have\r
-                            already happended.\r
+                            already happened.\r
 \r
 **/\r
 VOID\r
@@ -961,7 +959,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
@@ -1000,11 +998,11 @@ PlatformBdsEnterFrontPage (
 \r
     //\r
     // If gCallbackKey is greater than 1 and less or equal to 5,\r
-    // it will lauch configuration utilities.\r
+    // it will launch configuration utilities.\r
     // 2 = set language\r
     // 3 = boot manager\r
     // 4 = device manager\r
-    // 5 = boot maintainenance manager\r
+    // 5 = boot maintenance manager\r
     //\r
     if (gCallbackKey != 0) {\r
       REPORT_STATUS_CODE (\r
@@ -1047,7 +1045,7 @@ PlatformBdsEnterFrontPage (
       // Display the Device Manager\r
       //\r
       do {\r
-        CallDeviceManager();\r
+        CallDeviceManager ();\r
       } while (gCallbackKey == FRONT_PAGE_KEY_DEVICE_MANAGER);\r
       break;\r
 \r
@@ -1072,5 +1070,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