]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c
Merger trackers #7807 and #8372.
[mirror_edk2.git] / Nt32Pkg / WinNtBusDriverDxe / WinNtBusDriver.c
index a0baa751e6e453363a98309f15bd76bed9174cc0..951e8c88fd65131b9b897d0c1040624c280504c7 100644 (file)
@@ -26,7 +26,7 @@ EFI_WIN_NT_PHYSICAL_DISKS - maps to drives on your system
 EFI_WIN_NT_VIRTUAL_DISKS  - maps to a device emulated by a file\r
 EFI_WIN_NT_FILE_SYSTEM    - mouts a directory as a file system\r
 EFI_WIN_NT_CONSOLE        - make a logical comand line window (only one!)\r
-EFI_WIN_NT_UGA            - Builds UGA Windows of Width and Height\r
+EFI_WIN_NT_GOP            - Builds GOP Windows of Width and Height\r
 EFI_WIN_NT_SERIAL_PORT    - maps physical serial ports\r
 \r
  <F>ixed       - Fixed disk like a hard drive.\r
@@ -76,11 +76,11 @@ EFI_WIN_NT_SERIAL_PORT    - maps physical serial ports
    Declaring a text console window with the title "My EFI Console" woild look like:\r
    EFI_WIN_NT_CONSOLE=My EFI Console\r
 \r
- EFI_WIN_NT_UGA =\r
+ EFI_WIN_NT_GOP =\r
    <width> <height>[!...]\r
 \r
-   Declaring a two UGA windows with resolutions of 800x600 and 1024x768 would look like:\r
-   Example : EFI_WIN_NT_UGA=800 600!1024 768\r
+   Declaring a two GOP windows with resolutions of 800x600 and 1024x768 would look like:\r
+   Example : EFI_WIN_NT_GOP=800 600!1024 768\r
 \r
  EFI_WIN_NT_SERIAL_PORT =\r
    <port name>[!...]\r
@@ -138,52 +138,27 @@ EFI_DRIVER_BINDING_PROTOCOL           gWinNtBusDriverBinding = {
   NULL\r
 };\r
 \r
-#define NT_PCD_ARRAY_SIZE (sizeof(mPcdEnvironment)/sizeof(NT_ENVIRONMENT_VARIABLE_ENTRY))\r
-\r
-//\r
-// BUGBUG: Because currently the new build tools does not support dynamic PCD \r
-//         following dynamic PCd will be hard code. After tools ready, we should\r
-//         use dynmanic PCD AQAP.\r
-//\r
+#define NT_PCD_ARRAY_SIZE (sizeof(mPcdEnvironment)/sizeof(NT_PCD_ENTRY))\r
 \r
 //\r
 // Table to map NT Environment variable to the GUID that should be in\r
 // device path.\r
 //\r
-//static NT_PCD_ENTRY  mPcdEnvironment[] = {\r
-//  PcdToken(PcdWinNtConsole),       &gEfiWinNtConsoleGuid,\r
-//  PcdToken(PcdWinNtGop),           &gEfiWinNtGopGuid,\r
-//  PcdToken(PcdWinNtSerialPort),    &gEfiWinNtSerialPortGuid,\r
-//  PcdToken(PcdWinNtFileSystem),    &gEfiWinNtFileSystemGuid,\r
-//  PcdToken(PcdWinNtVirtualDisk),   &gEfiWinNtVirtualDisksGuid,\r
-//  PcdToken(PcdWinNtPhysicalDisk),  &gEfiWinNtPhysicalDisksGuid,\r
-//  PcdToken(PcdWinNtCpuModel),      &gEfiWinNtCPUModelGuid,\r
-//  PcdToken(PcdWinNtCpuSpeed),      &gEfiWinNtCPUSpeedGuid,\r
-//  PcdToken(PcdWinNtMemorySize),    &gEfiWinNtMemoryGuid\r
-//};\r
-typedef struct {\r
-  CHAR16    *Variable;\r
-  EFI_GUID  *DevicePathGuid;\r
-} NT_ENVIRONMENT_VARIABLE_ENTRY;\r
-\r
-static NT_ENVIRONMENT_VARIABLE_ENTRY  mPcdEnvironment[] = {\r
-  L"Bus Driver Console Window",         &gEfiWinNtConsoleGuid,\r
-  L"UGA Window 1!UGA Window 2",         &gEfiWinNtGopGuid,\r
-  L"COM1!COM2",                        &gEfiWinNtSerialPortGuid,\r
-  L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps",      &gEfiWinNtFileSystemGuid,\r
-  L"FW;40960;512",                     &gEfiWinNtVirtualDisksGuid,\r
-  L"E:RW;245760;512",                  &gEfiWinNtPhysicalDisksGuid,\r
-  L"Intel(R) Processor Model",         &gEfiWinNtCPUModelGuid,\r
-  L"3000",                             &gEfiWinNtCPUSpeedGuid,\r
-  L"64!64",                             &gEfiWinNtMemoryGuid\r
+static NT_PCD_ENTRY  mPcdEnvironment[] = {\r
+  PcdToken(PcdWinNtConsole),       &gEfiWinNtConsoleGuid,\r
+  PcdToken(PcdWinNtGop),           &gEfiWinNtGopGuid,\r
+  PcdToken(PcdWinNtSerialPort),    &gEfiWinNtSerialPortGuid,\r
+  PcdToken(PcdWinNtFileSystem),    &gEfiWinNtFileSystemGuid,\r
+  PcdToken(PcdWinNtVirtualDisk),   &gEfiWinNtVirtualDisksGuid,\r
+  PcdToken(PcdWinNtPhysicalDisk),  &gEfiWinNtPhysicalDisksGuid\r
 };\r
 \r
 /**\r
   The user Entry Point for module WinNtBusDriver. The user code starts with this function.\r
 \r
-  @param[in] ImageHandle    The firmware allocated handle for the EFI image.  \r
+  @param[in] ImageHandle    The firmware allocated handle for the EFI image.\r
   @param[in] SystemTable    A pointer to the EFI System Table.\r
-  \r
+\r
   @retval EFI_SUCCESS       The entry point is executed successfully.\r
   @retval other             Some error occurs when executing this entry point.\r
 \r
@@ -200,14 +175,13 @@ InitializeWinNtBusDriver(
   //\r
   // Install driver model protocol(s).\r
   //\r
-  Status = EfiLibInstallAllDriverProtocols (\r
+  Status = EfiLibInstallDriverBindingComponentName2 (\r
              ImageHandle,\r
              SystemTable,\r
              &gWinNtBusDriverBinding,\r
              ImageHandle,\r
              &gWinNtBusDriverComponentName,\r
-             NULL,\r
-             NULL\r
+             &gWinNtBusDriverComponentName2\r
              );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
@@ -426,13 +400,22 @@ Returns:
     WinNtBusDevice->Signature           = WIN_NT_BUS_DEVICE_SIGNATURE;\r
     WinNtBusDevice->ControllerNameTable = NULL;\r
 \r
-    AddUnicodeString (\r
+    AddUnicodeString2 (\r
       "eng",\r
       gWinNtBusDriverComponentName.SupportedLanguages,\r
       &WinNtBusDevice->ControllerNameTable,\r
-      L"Windows Bus Controller"\r
+      L"Windows Bus Controller",\r
+      TRUE\r
+      );\r
+    AddUnicodeString2 (\r
+      "en",\r
+      gWinNtBusDriverComponentName2.SupportedLanguages,\r
+      &WinNtBusDevice->ControllerNameTable,\r
+      L"Windows Bus Controller",\r
+      FALSE\r
       );\r
 \r
+\r
     Status = gBS->InstallMultipleProtocolInterfaces (\r
                     &ControllerHandle,\r
                     &gWinNtBusDriverGuid,\r
@@ -452,8 +435,7 @@ Returns:
   //\r
   InstallStatus   = EFI_NOT_FOUND;\r
   for (Index = 0; Index < NT_PCD_ARRAY_SIZE; Index++) {\r
-    //PcdTempStr = (VOID *)LibPcdGetPtr (mPcdEnvironment[Index].Token);\r
-    PcdTempStr = mPcdEnvironment[Index].Variable;\r
+    PcdTempStr = (VOID *)LibPcdGetPtr (mPcdEnvironment[Index].Token);\r
     ASSERT (PcdTempStr != NULL);\r
 \r
     TempStrSize = StrLen (PcdTempStr);\r
@@ -542,12 +524,21 @@ Returns:
           return EFI_OUT_OF_RESOURCES;\r
         }\r
 \r
-        AddUnicodeString (\r
+        AddUnicodeString2 (\r
           "eng",\r
           gWinNtBusDriverComponentName.SupportedLanguages,\r
           &WinNtDevice->ControllerNameTable,\r
-          ComponentName\r
+          ComponentName,\r
+          TRUE\r
           );\r
+        AddUnicodeString2 (\r
+          "en",\r
+          gWinNtBusDriverComponentName2.SupportedLanguages,\r
+          &WinNtDevice->ControllerNameTable,\r
+          ComponentName,\r
+          FALSE\r
+          );\r
+\r
 \r
         WinNtDevice->WinNtIo.TypeGuid       = mPcdEnvironment[Index].DevicePathGuid;\r
         WinNtDevice->WinNtIo.InstanceNumber = Count;\r