]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UnixPkg/Library/UnixBdsLib/BdsPlatform.c
Update Unix platform to use dynamic HII pcd to save console output mode.
[mirror_edk2.git] / UnixPkg / Library / UnixBdsLib / BdsPlatform.c
index 42882ca1f30fd175e7813a4aa96679d0d6dc9c0e..f4d32f1a57bc990a5d689d3fa5f3ce316819e961 100644 (file)
@@ -23,6 +23,44 @@ Abstract:
 #include "BdsPlatform.h"\r
 \r
 CHAR16  mFirmwareVendor[] = L"TianoCore.org";\r
+UNIX_SYSTEM_CONFIGURATION mSystemConfigData;\r
+\r
+VOID\r
+SetupVariableInit (\r
+  VOID\r
+  )\r
+{\r
+  EFI_STATUS                      Status;\r
+  UINTN                           Size;\r
+\r
+  Size = sizeof (mSystemConfigData);\r
+  Status = gRT->GetVariable (\r
+                  L"Setup",\r
+                  &gEfiUnixSystemConfigGuid,\r
+                  NULL,\r
+                  &Size,\r
+                  (VOID *) &mSystemConfigData\r
+                  );\r
+\r
+  if (EFI_ERROR (Status)) {\r
+    //\r
+    // SetupVariable is corrupt\r
+    //\r
+    mSystemConfigData.ConOutRow = PcdGet32 (PcdConOutColumn);\r
+    mSystemConfigData.ConOutColumn = PcdGet32 (PcdConOutRow);\r
+\r
+    Status = gRT->SetVariable (\r
+                    L"Setup",\r
+                    &gEfiUnixSystemConfigGuid,\r
+                    EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
+                    sizeof (mSystemConfigData),\r
+                    (VOID *) &mSystemConfigData\r
+                    );\r
+    if (EFI_ERROR (Status)) {\r
+      DEBUG ((EFI_D_ERROR, "Failed to save Setup Variable to non-volatile storage, Status = %r\n", Status));\r
+    }\r
+  }\r
+}\r
 \r
 //\r
 // BDS Platform Functions\r
@@ -35,7 +73,7 @@ PlatformBdsInit (
 \r
 Routine Description:\r
 \r
-  Platform Bds init. Incude the platform firmware vendor, revision\r
+  Platform Bds init. Include the platform firmware vendor, revision\r
   and so crc check.\r
 \r
 Arguments:\r