]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Vlv2TbltDevicePkg/PlatformSetupDxe/PlatformSetupDxe.c
Sync the branch changes to trunk.
[mirror_edk2.git] / Vlv2TbltDevicePkg / PlatformSetupDxe / PlatformSetupDxe.c
index 1490e2c0307742914aa31d3ce703b0eab56e835c..de7830ffe878c957c0bf1df62613942ada2c6124 100644 (file)
@@ -17,6 +17,8 @@ Module Name:
 \r
 #include "PlatformSetupDxe.h"\r
 #include "Guid/SetupVariable.h"\r
+#include <Protocol/FormBrowserEx2.h>\r
+\r
 \r
 #define EFI_CALLBACK_INFO_SIGNATURE SIGNATURE_32 ('C', 'l', 'b', 'k')\r
 #define EFI_CALLBACK_INFO_FROM_THIS(a)  CR (a, EFI_CALLBACK_INFO, ConfigAccess, EFI_CALLBACK_INFO_SIGNATURE)\r
@@ -306,7 +308,7 @@ SystemConfigRouteConfig (
   gRT->SetVariable(\r
          mSetupName,\r
          &mNormalSetupGuid,\r
-         EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+         EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
          sizeof(SYSTEM_CONFIGURATION),\r
          &Private->FakeNvData\r
          );\r
@@ -358,6 +360,7 @@ SystemConfigCallback (
   EFI_STATUS                    Status;\r
   UINTN                         DataSize;\r
   UINT8                         OsSelection;\r
+  EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL *FormBrowserEx2;\r
 \r
   StringBuffer1 = AllocateZeroPool (200 * sizeof (CHAR16));\r
   ASSERT (StringBuffer1 != NULL);\r
@@ -474,7 +477,7 @@ SystemConfigCallback (
           Status = gRT->SetVariable (\r
                           L"Setup",\r
                           &mNormalSetupGuid,\r
-                          EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+                          EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
                           sizeof(SYSTEM_CONFIGURATION),\r
                           &Private->FakeNvData\r
                           );\r
@@ -525,7 +528,7 @@ SystemConfigCallback (
           Status = gRT->SetVariable (\r
                           L"Setup",\r
                           &mNormalSetupGuid,\r
-                          EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+                          EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
                           sizeof(SYSTEM_CONFIGURATION),\r
                           &Private->FakeNvData\r
                           );\r
@@ -596,33 +599,31 @@ SystemConfigCallback (
       // If the user hits the YES Response key\r
       //\r
       if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {\r
-        //\r
-        // Load default\r
-        //\r
+\r
+        Status = gBS->LocateProtocol (&gEdkiiFormBrowserEx2ProtocolGuid, NULL, (VOID **) &FormBrowserEx2);\r
+        FormBrowserEx2->ExecuteAction(BROWSER_ACTION_DEFAULT, EFI_HII_DEFAULT_CLASS_STANDARD);\r
+\r
         FakeNvData = AllocateZeroPool (sizeof(SYSTEM_CONFIGURATION));\r
 \r
         if (FakeNvData == NULL) {\r
           return EFI_OUT_OF_RESOURCES;\r
         }\r
-\r
-        SizeOfNvStore = sizeof(SYSTEM_CONFIGURATION);\r
-        Status = gRT->GetVariable(\r
-                        L"SetupDefault",\r
-                        &mNormalSetupGuid,\r
-                        NULL,\r
-                        &SizeOfNvStore,\r
-                        FakeNvData\r
-                        );\r
+        \r
+        Status = HiiGetBrowserData (\r
+                          &mSystemConfigGuid,\r
+                                  mVariableName,\r
+                                  sizeof (SYSTEM_CONFIGURATION),\r
+                                  (UINT8 *) FakeNvData\r
+                                  );\r
+        \r
         if (!EFI_ERROR (Status)) {\r
-          if(SizeOfNvStore >= sizeof(SYSTEM_CONFIGURATION)) {\r
-            Status = gRT->SetVariable (\r
-                            L"Setup",\r
-                            &mNormalSetupGuid,\r
-                            EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
-                            sizeof(SYSTEM_CONFIGURATION),\r
-                            FakeNvData\r
-                            );\r
-          }\r
+          Status = gRT->SetVariable (\r
+                          L"Setup",\r
+                          &mNormalSetupGuid,\r
+                            EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+                          sizeof(SYSTEM_CONFIGURATION),\r
+                          FakeNvData\r
+                          );\r
         }\r
 \r
         FreePool (FakeNvData);\r