]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Application/UiApp/FrontPage.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Application / UiApp / FrontPage.c
index 8efe4d137b070af5e66162a98d8c1a3ad3cd5e86..0e784fb327f55acf3b370b741e22df082c7ed41b 100644 (file)
@@ -1,45 +1,38 @@
 /** @file\r
   FrontPage routines to handle the callbacks and browser calls\r
 \r
-Copyright (c) 2004 - 2016, 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
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2018 Hewlett Packard Enterprise Development LP<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #include "FrontPage.h"\r
 #include "FrontPageCustomizedUi.h"\r
 \r
-#define MAX_STRING_LEN            200\r
+#define MAX_STRING_LEN  200\r
 \r
-EFI_GUID   mFrontPageGuid      = FRONT_PAGE_FORMSET_GUID;\r
+EFI_GUID  mFrontPageGuid = FRONT_PAGE_FORMSET_GUID;\r
 \r
-BOOLEAN   gConnectAllHappened = FALSE;\r
-BOOLEAN   mFeaturerSwitch = TRUE;\r
-BOOLEAN   mResetRequired  = FALSE;\r
+BOOLEAN  mResetRequired = FALSE;\r
 \r
-EFI_FORM_BROWSER2_PROTOCOL      *gFormBrowser2;\r
-CHAR8     *mLanguageString;\r
-BOOLEAN   mModeInitialized = FALSE;\r
+EFI_FORM_BROWSER2_PROTOCOL  *gFormBrowser2;\r
+CHAR8                       *mLanguageString;\r
+BOOLEAN                     mModeInitialized = FALSE;\r
 //\r
 // Boot video resolution and text mode.\r
 //\r
-UINT32    mBootHorizontalResolution    = 0;\r
-UINT32    mBootVerticalResolution      = 0;\r
-UINT32    mBootTextModeColumn          = 0;\r
-UINT32    mBootTextModeRow             = 0;\r
+UINT32  mBootHorizontalResolution = 0;\r
+UINT32  mBootVerticalResolution   = 0;\r
+UINT32  mBootTextModeColumn       = 0;\r
+UINT32  mBootTextModeRow          = 0;\r
 //\r
 // BIOS setup video resolution and text mode.\r
 //\r
-UINT32    mSetupTextModeColumn         = 0;\r
-UINT32    mSetupTextModeRow            = 0;\r
-UINT32    mSetupHorizontalResolution   = 0;\r
-UINT32    mSetupVerticalResolution     = 0;\r
+UINT32  mSetupTextModeColumn       = 0;\r
+UINT32  mSetupTextModeRow          = 0;\r
+UINT32  mSetupHorizontalResolution = 0;\r
+UINT32  mSetupVerticalResolution   = 0;\r
 \r
 FRONT_PAGE_CALLBACK_DATA  gFrontPagePrivate = {\r
   FRONT_PAGE_CALLBACK_DATA_SIGNATURE,\r
@@ -59,21 +52,22 @@ HII_VENDOR_DEVICE_PATH  mFrontPageHiiVendorDevicePath = {
       HARDWARE_DEVICE_PATH,\r
       HW_VENDOR_DP,\r
       {\r
-        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
-        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
+        (UINT8)(sizeof (VENDOR_DEVICE_PATH)),\r
+        (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
       }\r
     },\r
     //\r
     // {8E6D99EE-7531-48f8-8745-7F6144468FF2}\r
     //\r
-    { 0x8e6d99ee, 0x7531, 0x48f8, { 0x87, 0x45, 0x7f, 0x61, 0x44, 0x46, 0x8f, 0xf2 } }\r
+    { 0x8e6d99ee, 0x7531, 0x48f8, { 0x87, 0x45, 0x7f, 0x61, 0x44, 0x46, 0x8f, 0xf2 }\r
+    }\r
   },\r
   {\r
     END_DEVICE_PATH_TYPE,\r
     END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
     {\r
-      (UINT8) (END_DEVICE_PATH_LENGTH),\r
-      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)\r
+      (UINT8)(END_DEVICE_PATH_LENGTH),\r
+      (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)\r
     }\r
   }\r
 };\r
@@ -112,15 +106,16 @@ UpdateFrontPageBannerStrings (
 EFI_STATUS\r
 EFIAPI\r
 FakeExtractConfig (\r
-  IN  CONST EFI_HII_CONFIG_ACCESS_PROTOCOL   *This,\r
-  IN  CONST EFI_STRING                       Request,\r
-  OUT EFI_STRING                             *Progress,\r
-  OUT EFI_STRING                             *Results\r
+  IN  CONST EFI_HII_CONFIG_ACCESS_PROTOCOL  *This,\r
+  IN  CONST EFI_STRING                      Request,\r
+  OUT EFI_STRING                            *Progress,\r
+  OUT EFI_STRING                            *Results\r
   )\r
 {\r
-  if (Progress == NULL || Results == NULL) {\r
+  if ((Progress == NULL) || (Results == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
   *Progress = Request;\r
   return EFI_NOT_FOUND;\r
 }\r
@@ -144,15 +139,17 @@ FakeExtractConfig (
 EFI_STATUS\r
 EFIAPI\r
 FakeRouteConfig (\r
-  IN  CONST EFI_HII_CONFIG_ACCESS_PROTOCOL   *This,\r
-  IN  CONST EFI_STRING                       Configuration,\r
-  OUT EFI_STRING                             *Progress\r
+  IN  CONST EFI_HII_CONFIG_ACCESS_PROTOCOL  *This,\r
+  IN  CONST EFI_STRING                      Configuration,\r
+  OUT EFI_STRING                            *Progress\r
   )\r
 {\r
-  if (Configuration == NULL || Progress == NULL) {\r
+  if ((Configuration == NULL) || (Progress == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
+  *Progress = Configuration;\r
+\r
   return EFI_NOT_FOUND;\r
 }\r
 \r
@@ -177,12 +174,12 @@ FakeRouteConfig (
 EFI_STATUS\r
 EFIAPI\r
 FrontPageCallback (\r
-  IN  CONST EFI_HII_CONFIG_ACCESS_PROTOCOL   *This,\r
-  IN  EFI_BROWSER_ACTION                     Action,\r
-  IN  EFI_QUESTION_ID                        QuestionId,\r
-  IN  UINT8                                  Type,\r
-  IN  EFI_IFR_TYPE_VALUE                     *Value,\r
-  OUT EFI_BROWSER_ACTION_REQUEST             *ActionRequest\r
+  IN  CONST EFI_HII_CONFIG_ACCESS_PROTOCOL  *This,\r
+  IN  EFI_BROWSER_ACTION                    Action,\r
+  IN  EFI_QUESTION_ID                       QuestionId,\r
+  IN  UINT8                                 Type,\r
+  IN  EFI_IFR_TYPE_VALUE                    *Value,\r
+  OUT EFI_BROWSER_ACTION_REQUEST            *ActionRequest\r
   )\r
 {\r
   return UiFrontPageCallbackHandler (gFrontPagePrivate.HiiHandle, Action, QuestionId, Type, Value, ActionRequest);\r
@@ -198,10 +195,10 @@ UpdateFrontPageForm (
   VOID\r
   )\r
 {\r
-  VOID                        *StartOpCodeHandle;\r
-  VOID                        *EndOpCodeHandle;\r
-  EFI_IFR_GUID_LABEL          *StartGuidLabel;\r
-  EFI_IFR_GUID_LABEL          *EndGuidLabel;\r
+  VOID                *StartOpCodeHandle;\r
+  VOID                *EndOpCodeHandle;\r
+  EFI_IFR_GUID_LABEL  *StartGuidLabel;\r
+  EFI_IFR_GUID_LABEL  *EndGuidLabel;\r
 \r
   //\r
   // Allocate space for creation of UpdateData Buffer\r
@@ -214,18 +211,18 @@ UpdateFrontPageForm (
   //\r
   // Create Hii Extend Label OpCode as the start opcode\r
   //\r
-  StartGuidLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+  StartGuidLabel               = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
   StartGuidLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
-  StartGuidLabel->Number       = LABEL_FRANTPAGE_INFORMATION;\r
+  StartGuidLabel->Number       = LABEL_FRONTPAGE_INFORMATION;\r
   //\r
   // Create Hii Extend Label OpCode as the end opcode\r
   //\r
-  EndGuidLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+  EndGuidLabel               = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
   EndGuidLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
   EndGuidLabel->Number       = LABEL_END;\r
 \r
   //\r
-  //Updata Front Page form\r
+  // Updata Front Page form\r
   //\r
   UiCustomizeFrontPage (\r
     gFrontPagePrivate.HiiHandle,\r
@@ -257,11 +254,12 @@ InitializeFrontPage (
   VOID\r
   )\r
 {\r
-  EFI_STATUS                  Status;\r
+  EFI_STATUS  Status;\r
+\r
   //\r
   // Locate Hii relative protocols\r
   //\r
-  Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **) &gFormBrowser2);\r
+  Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **)&gFormBrowser2);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -270,14 +268,14 @@ InitializeFrontPage (
   // Install Device Path Protocol and Config Access protocol to driver handle\r
   //\r
   gFrontPagePrivate.DriverHandle = NULL;\r
-  Status = gBS->InstallMultipleProtocolInterfaces (\r
-                  &gFrontPagePrivate.DriverHandle,\r
-                  &gEfiDevicePathProtocolGuid,\r
-                  &mFrontPageHiiVendorDevicePath,\r
-                  &gEfiHiiConfigAccessProtocolGuid,\r
-                  &gFrontPagePrivate.ConfigAccess,\r
-                  NULL\r
-                  );\r
+  Status                         = gBS->InstallMultipleProtocolInterfaces (\r
+                                          &gFrontPagePrivate.DriverHandle,\r
+                                          &gEfiDevicePathProtocolGuid,\r
+                                          &mFrontPageHiiVendorDevicePath,\r
+                                          &gEfiHiiConfigAccessProtocolGuid,\r
+                                          &gFrontPagePrivate.ConfigAccess,\r
+                                          NULL\r
+                                          );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
   //\r
@@ -293,14 +291,14 @@ InitializeFrontPage (
   ASSERT (gFrontPagePrivate.HiiHandle != NULL);\r
 \r
   //\r
-  //Updata Front Page banner strings\r
+  // Updata Front Page banner strings\r
   //\r
   UpdateFrontPageBannerStrings ();\r
 \r
   //\r
   // Update front page menus.\r
   //\r
-  UpdateFrontPageForm();\r
+  UpdateFrontPageForm ();\r
 \r
   return Status;\r
 }\r
@@ -329,15 +327,15 @@ CallFrontPage (
     );\r
 \r
   ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;\r
-  Status = gFormBrowser2->SendForm (\r
-                            gFormBrowser2,\r
-                            &gFrontPagePrivate.HiiHandle,\r
-                            1,\r
-                            &mFrontPageGuid,\r
-                            0,\r
-                            NULL,\r
-                            &ActionRequest\r
-                            );\r
+  Status        = gFormBrowser2->SendForm (\r
+                                   gFormBrowser2,\r
+                                   &gFrontPagePrivate.HiiHandle,\r
+                                   1,\r
+                                   &mFrontPageGuid,\r
+                                   0,\r
+                                   NULL,\r
+                                   &ActionRequest\r
+                                   );\r
   //\r
   // Check whether user change any option setting which needs a reset to be effective\r
   //\r
@@ -353,11 +351,12 @@ CallFrontPage (
 \r
 **/\r
 VOID\r
-FreeFrontPage(\r
+FreeFrontPage (\r
   VOID\r
   )\r
 {\r
-  EFI_STATUS                  Status;\r
+  EFI_STATUS  Status;\r
+\r
   Status = gBS->UninstallMultipleProtocolInterfaces (\r
                   gFrontPagePrivate.DriverHandle,\r
                   &gEfiDevicePathProtocolGuid,\r
@@ -388,9 +387,9 @@ FreeFrontPage(
 **/\r
 VOID\r
 ConvertProcessorToString (\r
-  IN  UINT16                               ProcessorFrequency,\r
-  IN  UINT16                               Base10Exponent,\r
-  OUT CHAR16                               **String\r
+  IN  UINT16  ProcessorFrequency,\r
+  IN  UINT16  Base10Exponent,\r
+  OUT CHAR16  **String\r
   )\r
 {\r
   CHAR16  *StringBuffer;\r
@@ -400,24 +399,31 @@ ConvertProcessorToString (
 \r
   if (Base10Exponent >= 6) {\r
     FreqMhz = ProcessorFrequency;\r
-    for (Index = 0; Index < (UINTN) (Base10Exponent - 6); Index++) {\r
+    for (Index = 0; Index < (UINT32)Base10Exponent - 6; Index++) {\r
       FreqMhz *= 10;\r
     }\r
   } else {\r
     FreqMhz = 0;\r
   }\r
-  DestMax = 0x20 / sizeof (CHAR16);\r
+\r
+  DestMax      = 0x20 / sizeof (CHAR16);\r
   StringBuffer = AllocateZeroPool (0x20);\r
   ASSERT (StringBuffer != NULL);\r
-  Index = UnicodeValueToString (StringBuffer, LEFT_JUSTIFY, FreqMhz / 1000, 3);\r
+  UnicodeValueToStringS (StringBuffer, sizeof (CHAR16) * DestMax, LEFT_JUSTIFY, FreqMhz / 1000, 3);\r
+  Index = StrnLenS (StringBuffer, DestMax);\r
   StrCatS (StringBuffer, DestMax, L".");\r
-  UnicodeValueToString (StringBuffer + Index + 1, PREFIX_ZERO, (FreqMhz % 1000) / 10, 2);\r
+  UnicodeValueToStringS (\r
+    StringBuffer + Index + 1,\r
+    sizeof (CHAR16) * (DestMax - (Index + 1)),\r
+    PREFIX_ZERO,\r
+    (FreqMhz % 1000) / 10,\r
+    2\r
+    );\r
   StrCatS (StringBuffer, DestMax, L" GHz");\r
-  *String = (CHAR16 *) StringBuffer;\r
-  return ;\r
+  *String = (CHAR16 *)StringBuffer;\r
+  return;\r
 }\r
 \r
-\r
 /**\r
   Convert Memory Size to a string.\r
 \r
@@ -427,20 +433,20 @@ ConvertProcessorToString (
 **/\r
 VOID\r
 ConvertMemorySizeToString (\r
-  IN  UINT32          MemorySize,\r
-  OUT CHAR16          **String\r
+  IN  UINT32  MemorySize,\r
+  OUT CHAR16  **String\r
   )\r
 {\r
   CHAR16  *StringBuffer;\r
 \r
   StringBuffer = AllocateZeroPool (0x24);\r
   ASSERT (StringBuffer != NULL);\r
-  UnicodeValueToString (StringBuffer, LEFT_JUSTIFY, MemorySize, 10);\r
+  UnicodeValueToStringS (StringBuffer, 0x24, LEFT_JUSTIFY, MemorySize, 10);\r
   StrCatS (StringBuffer, 0x24 / sizeof (CHAR16), L" MB RAM");\r
 \r
-  *String = (CHAR16 *) StringBuffer;\r
+  *String = (CHAR16 *)StringBuffer;\r
 \r
-  return ;\r
+  return;\r
 }\r
 \r
 /**\r
@@ -457,12 +463,12 @@ ConvertMemorySizeToString (
 **/\r
 EFI_STATUS\r
 GetOptionalStringByIndex (\r
-  IN      CHAR8                   *OptionalStrStart,\r
-  IN      UINT8                   Index,\r
-  OUT     CHAR16                  **String\r
+  IN      CHAR8   *OptionalStrStart,\r
+  IN      UINT8   Index,\r
+  OUT     CHAR16  **String\r
   )\r
 {\r
-  UINTN          StrSize;\r
+  UINTN  StrSize;\r
 \r
   if (Index == 0) {\r
     *String = AllocateZeroPool (sizeof (CHAR16));\r
@@ -484,13 +490,12 @@ GetOptionalStringByIndex (
     *String = GetStringById (STRING_TOKEN (STR_MISSING_STRING));\r
   } else {\r
     *String = AllocatePool (StrSize * sizeof (CHAR16));\r
-    AsciiStrToUnicodeStr (OptionalStrStart, *String);\r
+    AsciiStrToUnicodeStrS (OptionalStrStart, *String, StrSize);\r
   }\r
 \r
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
 \r
   Update the banner information for the Front Page based on Smbios information.\r
@@ -501,22 +506,22 @@ UpdateFrontPageBannerStrings (
   VOID\r
   )\r
 {\r
-  UINT8                             StrIndex;\r
-  CHAR16                            *NewString;\r
-  CHAR16                            *FirmwareVersionString;\r
-  EFI_STATUS                        Status;\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
-  UINT64                            InstalledMemory;\r
-  BOOLEAN                           FoundCpu;\r
+  UINT8                    StrIndex;\r
+  CHAR16                   *NewString;\r
+  CHAR16                   *FirmwareVersionString;\r
+  EFI_STATUS               Status;\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
+  UINT64                   InstalledMemory;\r
+  BOOLEAN                  FoundCpu;\r
 \r
   InstalledMemory = 0;\r
-  FoundCpu = 0;\r
+  FoundCpu        = 0;\r
 \r
   //\r
   // Update default banner string.\r
@@ -544,7 +549,7 @@ UpdateFrontPageBannerStrings (
   //\r
   // Update Front Page banner strings base on SmBios Table.\r
   //\r
-  Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **) &Smbios);\r
+  Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **)&Smbios);\r
   if (EFI_ERROR (Status)) {\r
     //\r
     // Smbios protocol not found, get the default value.\r
@@ -578,17 +583,17 @@ UpdateFrontPageBannerStrings (
   }\r
 \r
   SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;\r
-  Status = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);\r
-  while (!EFI_ERROR(Status)) {\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
-\r
-      FirmwareVersionString = (CHAR16 *) PcdGetPtr (PcdFirmwareVersionString);\r
+  Status       = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);\r
+  while (!EFI_ERROR (Status)) {\r
+    if (Record->Type == 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
+\r
+      FirmwareVersionString = (CHAR16 *)PcdGetPtr (PcdFirmwareVersionString);\r
       if (*FirmwareVersionString != 0x0000 ) {\r
         FreePool (NewString);\r
-        NewString = (CHAR16 *) PcdGetPtr (PcdFirmwareVersionString);\r
+        NewString = (CHAR16 *)PcdGetPtr (PcdFirmwareVersionString);\r
         UiCustomizeFrontPageBanner (3, TRUE, &NewString);\r
         HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION), NewString, NULL);\r
       } else {\r
@@ -598,28 +603,28 @@ UpdateFrontPageBannerStrings (
       }\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
+    if (Record->Type == 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
       UiCustomizeFrontPageBanner (1, TRUE, &NewString);\r
       HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL), NewString, NULL);\r
       FreePool (NewString);\r
     }\r
 \r
-    if ((Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) && !FoundCpu) {\r
-      Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
+    if ((Record->Type == SMBIOS_TYPE_PROCESSOR_INFORMATION) && !FoundCpu) {\r
+      Type4Record = (SMBIOS_TABLE_TYPE4 *)Record;\r
       //\r
       // The information in the record should be only valid when the CPU Socket is populated.\r
       //\r
       if ((Type4Record->Status & SMBIOS_TYPE4_CPU_SOCKET_POPULATED) == SMBIOS_TYPE4_CPU_SOCKET_POPULATED) {\r
         StrIndex = Type4Record->ProcessorVersion;\r
-        GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type4Record + Type4Record->Hdr.Length), StrIndex, &NewString);\r
+        GetOptionalStringByIndex ((CHAR8 *)((UINT8 *)Type4Record + Type4Record->Hdr.Length), StrIndex, &NewString);\r
         UiCustomizeFrontPageBanner (2, TRUE, &NewString);\r
         HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_CPU_MODEL), NewString, NULL);\r
         FreePool (NewString);\r
 \r
-        ConvertProcessorToString(Type4Record->CurrentSpeed, 6, &NewString);\r
+        ConvertProcessorToString (Type4Record->CurrentSpeed, 6, &NewString);\r
         UiCustomizeFrontPageBanner (2, FALSE, &NewString);\r
         HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_CPU_SPEED), NewString, NULL);\r
         FreePool (NewString);\r
@@ -628,14 +633,20 @@ UpdateFrontPageBannerStrings (
       }\r
     }\r
 \r
-    if ( Record->Type == EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS ) {\r
-      Type19Record = (SMBIOS_TABLE_TYPE19 *) Record;\r
+    if ( Record->Type == SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS ) {\r
+      Type19Record = (SMBIOS_TABLE_TYPE19 *)Record;\r
       if (Type19Record->StartingAddress != 0xFFFFFFFF ) {\r
-        InstalledMemory += RShiftU64(Type19Record->EndingAddress -\r
-                                     Type19Record->StartingAddress + 1, 10);\r
+        InstalledMemory += RShiftU64 (\r
+                             Type19Record->EndingAddress -\r
+                             Type19Record->StartingAddress + 1,\r
+                             10\r
+                             );\r
       } else {\r
-        InstalledMemory += RShiftU64(Type19Record->ExtendedEndingAddress -\r
-                                     Type19Record->ExtendedStartingAddress + 1, 20);\r
+        InstalledMemory += RShiftU64 (\r
+                             Type19Record->ExtendedEndingAddress -\r
+                             Type19Record->ExtendedStartingAddress + 1,\r
+                             20\r
+                             );\r
       }\r
     }\r
 \r
@@ -645,7 +656,7 @@ UpdateFrontPageBannerStrings (
   //\r
   // Now update the total installed RAM size\r
   //\r
-  ConvertMemorySizeToString ((UINT32)InstalledMemory, &NewString );\r
+  ConvertMemorySizeToString ((UINT32)InstalledMemory, &NewString);\r
   UiCustomizeFrontPageBanner (3, FALSE, &NewString);\r
   HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE), NewString, NULL);\r
   FreePool (NewString);\r
@@ -662,8 +673,7 @@ UpdateFrontPageBannerStrings (
 \r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
-BdsSetConsoleMode (\r
+UiSetConsoleMode (\r
   BOOLEAN  IsSetupMode\r
   )\r
 {\r
@@ -694,7 +704,7 @@ BdsSetConsoleMode (
   Status = gBS->HandleProtocol (\r
                   gST->ConsoleOutHandle,\r
                   &gEfiGraphicsOutputProtocolGuid,\r
-                  (VOID**)&GraphicsOutput\r
+                  (VOID **)&GraphicsOutput\r
                   );\r
   if (EFI_ERROR (Status)) {\r
     GraphicsOutput = NULL;\r
@@ -703,7 +713,7 @@ BdsSetConsoleMode (
   Status = gBS->HandleProtocol (\r
                   gST->ConsoleOutHandle,\r
                   &gEfiSimpleTextOutProtocolGuid,\r
-                  (VOID**)&SimpleTextOut\r
+                  (VOID **)&SimpleTextOut\r
                   );\r
   if (EFI_ERROR (Status)) {\r
     SimpleTextOut = NULL;\r
@@ -715,7 +725,7 @@ BdsSetConsoleMode (
 \r
   if (IsSetupMode) {\r
     //\r
-    // The requried resolution and text mode is setup mode.\r
+    // The required resolution and text mode is setup mode.\r
     //\r
     NewHorizontalResolution = mSetupHorizontalResolution;\r
     NewVerticalResolution   = mSetupVerticalResolution;\r
@@ -732,7 +742,7 @@ BdsSetConsoleMode (
   }\r
 \r
   if (GraphicsOutput != NULL) {\r
-    MaxGopMode  = GraphicsOutput->Mode->MaxMode;\r
+    MaxGopMode = GraphicsOutput->Mode->MaxMode;\r
   }\r
 \r
   if (SimpleTextOut != NULL) {\r
@@ -748,22 +758,24 @@ BdsSetConsoleMode (
   //\r
   for (ModeNumber = 0; ModeNumber < MaxGopMode; ModeNumber++) {\r
     Status = GraphicsOutput->QueryMode (\r
-                       GraphicsOutput,\r
-                       ModeNumber,\r
-                       &SizeOfInfo,\r
-                       &Info\r
-                       );\r
+                               GraphicsOutput,\r
+                               ModeNumber,\r
+                               &SizeOfInfo,\r
+                               &Info\r
+                               );\r
     if (!EFI_ERROR (Status)) {\r
       if ((Info->HorizontalResolution == NewHorizontalResolution) &&\r
-          (Info->VerticalResolution == NewVerticalResolution)) {\r
+          (Info->VerticalResolution == NewVerticalResolution))\r
+      {\r
         if ((GraphicsOutput->Mode->Info->HorizontalResolution == NewHorizontalResolution) &&\r
-            (GraphicsOutput->Mode->Info->VerticalResolution == NewVerticalResolution)) {\r
+            (GraphicsOutput->Mode->Info->VerticalResolution == NewVerticalResolution))\r
+        {\r
           //\r
           // Current resolution is same with required resolution, check if text mode need be set\r
           //\r
           Status = SimpleTextOut->QueryMode (SimpleTextOut, SimpleTextOut->Mode->Mode, &CurrentColumn, &CurrentRow);\r
           ASSERT_EFI_ERROR (Status);\r
-          if (CurrentColumn == NewColumns && CurrentRow == NewRows) {\r
+          if ((CurrentColumn == NewColumns) && (CurrentRow == NewRows)) {\r
             //\r
             // If current text mode is same with required text mode. Do nothing\r
             //\r
@@ -771,11 +783,11 @@ BdsSetConsoleMode (
             return EFI_SUCCESS;\r
           } else {\r
             //\r
-            // If current text mode is different from requried text mode.  Set new video mode\r
+            // If current text mode is different from required text mode.  Set new video mode\r
             //\r
             for (Index = 0; Index < MaxTextMode; Index++) {\r
               Status = SimpleTextOut->QueryMode (SimpleTextOut, Index, &CurrentColumn, &CurrentRow);\r
-              if (!EFI_ERROR(Status)) {\r
+              if (!EFI_ERROR (Status)) {\r
                 if ((CurrentColumn == NewColumns) && (CurrentRow == NewRows)) {\r
                   //\r
                   // Required text mode is supported, set it.\r
@@ -794,9 +806,10 @@ BdsSetConsoleMode (
                 }\r
               }\r
             }\r
+\r
             if (Index == MaxTextMode) {\r
               //\r
-              // If requried text mode is not supported, return error.\r
+              // If required text mode is not supported, return error.\r
               //\r
               FreePool (Info);\r
               return EFI_UNSUPPORTED;\r
@@ -814,6 +827,7 @@ BdsSetConsoleMode (
           }\r
         }\r
       }\r
+\r
       FreePool (Info);\r
     }\r
   }\r
@@ -844,19 +858,21 @@ BdsSetConsoleMode (
   // Locate all the handles with GOP protocol and reconnect it.\r
   //\r
   Status = gBS->LocateHandleBuffer (\r
-                   ByProtocol,\r
-                   &gEfiSimpleTextOutProtocolGuid,\r
-                   NULL,\r
-                   &HandleCount,\r
-                   &HandleBuffer\r
-                   );\r
+                  ByProtocol,\r
+                  &gEfiSimpleTextOutProtocolGuid,\r
+                  NULL,\r
+                  &HandleCount,\r
+                  &HandleBuffer\r
+                  );\r
   if (!EFI_ERROR (Status)) {\r
     for (Index = 0; Index < HandleCount; Index++) {\r
       gBS->DisconnectController (HandleBuffer[Index], NULL, NULL);\r
     }\r
+\r
     for (Index = 0; Index < HandleCount; Index++) {\r
       gBS->ConnectController (HandleBuffer[Index], NULL, NULL, TRUE);\r
     }\r
+\r
     if (HandleBuffer != NULL) {\r
       FreePool (HandleBuffer);\r
     }\r
@@ -884,12 +900,12 @@ InitializeUserInterface (
   IN EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
 {\r
-  EFI_HII_HANDLE                     HiiHandle;\r
-  EFI_STATUS                         Status;\r
-  EFI_GRAPHICS_OUTPUT_PROTOCOL       *GraphicsOutput;\r
-  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *SimpleTextOut;\r
-  UINTN                              BootTextColumn;\r
-  UINTN                              BootTextRow;\r
+  EFI_HII_HANDLE                   HiiHandle;\r
+  EFI_STATUS                       Status;\r
+  EFI_GRAPHICS_OUTPUT_PROTOCOL     *GraphicsOutput;\r
+  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *SimpleTextOut;\r
+  UINTN                            BootTextColumn;\r
+  UINTN                            BootTextRow;\r
 \r
   if (!mModeInitialized) {\r
     //\r
@@ -899,7 +915,7 @@ InitializeUserInterface (
     Status = gBS->HandleProtocol (\r
                     gST->ConsoleOutHandle,\r
                     &gEfiGraphicsOutputProtocolGuid,\r
-                    (VOID**)&GraphicsOutput\r
+                    (VOID **)&GraphicsOutput\r
                     );\r
     if (EFI_ERROR (Status)) {\r
       GraphicsOutput = NULL;\r
@@ -908,7 +924,7 @@ InitializeUserInterface (
     Status = gBS->HandleProtocol (\r
                     gST->ConsoleOutHandle,\r
                     &gEfiSimpleTextOutProtocolGuid,\r
-                    (VOID**)&SimpleTextOut\r
+                    (VOID **)&SimpleTextOut\r
                     );\r
     if (EFI_ERROR (Status)) {\r
       SimpleTextOut = NULL;\r
@@ -941,7 +957,7 @@ InitializeUserInterface (
     mSetupTextModeColumn       = PcdGet32 (PcdSetupConOutColumn);\r
     mSetupTextModeRow          = PcdGet32 (PcdSetupConOutRow);\r
 \r
-    mModeInitialized           = TRUE;\r
+    mModeInitialized = TRUE;\r
   }\r
 \r
   gBS->SetWatchdogTimer (0x0000, 0x0000, 0x0000, NULL);\r
@@ -955,9 +971,9 @@ InitializeUserInterface (
 \r
   InitializeStringSupport ();\r
 \r
-  BdsSetConsoleMode (TRUE);\r
+  UiSetConsoleMode (TRUE);\r
   UiEntry (FALSE);\r
-  BdsSetConsoleMode (FALSE);\r
+  UiSetConsoleMode (FALSE);\r
 \r
   UninitializeStringSupport ();\r
   HiiRemovePackages (HiiHandle);\r
@@ -975,17 +991,26 @@ InitializeUserInterface (
 VOID\r
 EFIAPI\r
 UiEntry (\r
-  IN BOOLEAN                      ConnectAllHappened\r
+  IN BOOLEAN  ConnectAllHappened\r
   )\r
 {\r
-  EFI_STATUS                    Status;\r
-  EFI_BOOT_LOGO_PROTOCOL        *BootLogo;\r
+  EFI_STATUS              Status;\r
+  EFI_BOOT_LOGO_PROTOCOL  *BootLogo;\r
+\r
+  //\r
+  // Enter Setup page.\r
+  //\r
+  REPORT_STATUS_CODE (\r
+    EFI_PROGRESS_CODE,\r
+    (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_PC_USER_SETUP)\r
+    );\r
 \r
   //\r
   // Indicate if the connect all has been performed before.\r
+  // If has not been performed before, do here.\r
   //\r
-  if (ConnectAllHappened) {\r
-    gConnectAllHappened = TRUE;\r
+  if (!ConnectAllHappened) {\r
+    EfiBootManagerConnectAll ();\r
   }\r
 \r
   //\r
@@ -996,7 +1021,7 @@ UiEntry (
   //\r
   // Boot Logo is corrupted, report it using Boot Logo protocol.\r
   //\r
-  Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID **) &BootLogo);\r
+  Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID **)&BootLogo);\r
   if (!EFI_ERROR (Status) && (BootLogo != NULL)) {\r
     BootLogo->SetBootLogo (BootLogo, NULL, 0, 0, 0, 0);\r
   }\r
@@ -1013,7 +1038,7 @@ UiEntry (
   }\r
 \r
   //\r
-  //Will leave browser, check any reset required change is applied? if yes, reset system\r
+  // Will leave browser, check any reset required change is applied? if yes, reset system\r
   //\r
   SetupResetReminder ();\r
 }\r
@@ -1024,37 +1049,6 @@ UiEntry (
 //  user change any option setting which needs a reset to be effective, and  the reset will be applied according to  the user selection.\r
 //\r
 \r
-\r
-/**\r
-  Enable the setup browser reset reminder feature.\r
-  This routine is used in platform tip. If the platform policy need the feature, use the routine to enable it.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-EnableResetReminderFeature (\r
-  VOID\r
-  )\r
-{\r
-  mFeaturerSwitch = TRUE;\r
-}\r
-\r
-\r
-/**\r
-  Disable the setup browser reset reminder feature.\r
-  This routine is used in platform tip. If the platform policy do not want the feature, use the routine to disable it.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DisableResetReminderFeature (\r
-  VOID\r
-  )\r
-{\r
-  mFeaturerSwitch = FALSE;\r
-}\r
-\r
-\r
 /**\r
   Record the info that  a reset is required.\r
   A  module boolean variable is used to record whether a reset is required.\r
@@ -1069,36 +1063,6 @@ EnableResetRequired (
   mResetRequired = TRUE;\r
 }\r
 \r
-\r
-/**\r
-  Record the info that  no reset is required.\r
-  A  module boolean variable is used to record whether a reset is required.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DisableResetRequired (\r
-  VOID\r
-  )\r
-{\r
-  mResetRequired = FALSE;\r
-}\r
-\r
-\r
-/**\r
-  Check whether platform policy enable the reset reminder feature. The default is enabled.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-IsResetReminderFeatureEnable (\r
-  VOID\r
-  )\r
-{\r
-  return mFeaturerSwitch;\r
-}\r
-\r
-\r
 /**\r
   Check if  user changed any option setting which needs a system reset to be effective.\r
 \r
@@ -1112,7 +1076,6 @@ IsResetRequired (
   return mResetRequired;\r
 }\r
 \r
-\r
 /**\r
   Check whether a reset is needed, and finish the reset reminder feature.\r
   If a reset is needed, Popup a menu to notice user, and finish the feature\r
@@ -1125,35 +1088,30 @@ SetupResetReminder (
   VOID\r
   )\r
 {\r
-  EFI_INPUT_KEY                 Key;\r
-  CHAR16                        *StringBuffer1;\r
-  CHAR16                        *StringBuffer2;\r
-\r
+  EFI_INPUT_KEY  Key;\r
+  CHAR16         *StringBuffer1;\r
+  CHAR16         *StringBuffer2;\r
 \r
   //\r
-  //check any reset required change is applied? if yes, reset system\r
+  // check any reset required change is applied? if yes, reset system\r
   //\r
-  if (IsResetReminderFeatureEnable ()) {\r
-    if (IsResetRequired ()) {\r
-\r
-      StringBuffer1 = AllocateZeroPool (MAX_STRING_LEN * sizeof (CHAR16));\r
-      ASSERT (StringBuffer1 != NULL);\r
-      StringBuffer2 = AllocateZeroPool (MAX_STRING_LEN * sizeof (CHAR16));\r
-      ASSERT (StringBuffer2 != NULL);\r
-      StrCpyS (StringBuffer1, MAX_STRING_LEN, L"Configuration changed. Reset to apply it Now.");\r
-      StrCpyS (StringBuffer2, MAX_STRING_LEN, L"Press ENTER to reset");\r
-      //\r
-      // Popup a menu to notice user\r
-      //\r
-      do {\r
-        CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL);\r
-      } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
+  if (IsResetRequired ()) {\r
+    StringBuffer1 = AllocateZeroPool (MAX_STRING_LEN * sizeof (CHAR16));\r
+    ASSERT (StringBuffer1 != NULL);\r
+    StringBuffer2 = AllocateZeroPool (MAX_STRING_LEN * sizeof (CHAR16));\r
+    ASSERT (StringBuffer2 != NULL);\r
+    StrCpyS (StringBuffer1, MAX_STRING_LEN, L"Configuration changed. Reset to apply it Now.");\r
+    StrCpyS (StringBuffer2, MAX_STRING_LEN, L"Press ENTER to reset");\r
+    //\r
+    // Popup a menu to notice user\r
+    //\r
+    do {\r
+      CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL);\r
+    } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
 \r
-      FreePool (StringBuffer1);\r
-      FreePool (StringBuffer2);\r
+    FreePool (StringBuffer1);\r
+    FreePool (StringBuffer2);\r
 \r
-      gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);\r
-    }\r
+    gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);\r
   }\r
 }\r
-\r