]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Updated to use new PCD settings
authorAJFISH <AJFISH@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 16 Aug 2007 22:15:08 +0000 (22:15 +0000)
committerAJFISH <AJFISH@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 16 Aug 2007 22:15:08 +0000 (22:15 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3664 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf
IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.c
IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/Serial.h
MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf

index 7604092a81d03b66d2ec88e90802b7c433601cf3..fb2727f717f276f75b11899de3e28283a107ac18 100644 (file)
   gEfiSerialIoProtocolGuid                      # PROTOCOL BY_START\r
   gEfiDevicePathProtocolGuid                    # PROTOCOL TO_START\r
 \r
   gEfiSerialIoProtocolGuid                      # PROTOCOL BY_START\r
   gEfiDevicePathProtocolGuid                    # PROTOCOL TO_START\r
 \r
-\r
 [PcdsFeatureFlag.common]\r
   PcdNtEmulatorEnable|gEfiMdeModulePkgTokenSpaceGuid\r
 \r
 [PcdsFeatureFlag.common]\r
   PcdNtEmulatorEnable|gEfiMdeModulePkgTokenSpaceGuid\r
 \r
+\r
+[PcdsFixedAtBuild.common]\r
+  PcdUartDefaultBaudRate|gEfiMdePkgTokenSpaceGuid|115200\r
+  PcdUartDefaultDataBits|gEfiMdePkgTokenSpaceGuid|8\r
+  PcdUartDefaultParity|gEfiMdePkgTokenSpaceGuid|1\r
+  PcdUartDefaultStopBits|gEfiMdePkgTokenSpaceGuid|1\r
+\r
+  \r
index 1de6fde50acd91c8558e3eb9944079262f776e0b..3eeb1d4d0d4892abe2d0f55cd27b26cbef83ba91 100644 (file)
@@ -27,6 +27,63 @@ EFI_DRIVER_BINDING_PROTOCOL gSerialControllerDriver = {
 };\r
 \r
 \r
 };\r
 \r
 \r
+SERIAL_DEV  gSerialDevTempate = {\r
+  SERIAL_DEV_SIGNATURE,\r
+  NULL,\r
+  { // SerialIo\r
+    SERIAL_IO_INTERFACE_REVISION,\r
+    IsaSerialReset,\r
+    IsaSerialSetAttributes,\r
+    IsaSerialSetControl,\r
+    IsaSerialGetControl,\r
+    IsaSerialWrite,\r
+    IsaSerialRead,\r
+    NULL\r
+  },\r
+  { // SerialMode\r
+    SERIAL_PORT_DEFAULT_CONTROL_MASK,\r
+    SERIAL_PORT_DEFAULT_TIMEOUT,\r
+    FixedPcdGet64 (PcdUartDefaultBaudRate),     // BaudRate\r
+    SERIAL_PORT_DEFAULT_RECEIVE_FIFO_DEPTH,\r
+    FixedPcdGet8 (PcdUartDefaultDataBits),      // DataBits\r
+    FixedPcdGet8 (PcdUartDefaultParity),        // Parity\r
+    FixedPcdGet8 (PcdUartDefaultStopBits)       // StopBits\r
+  },\r
+  NULL,\r
+  NULL,\r
+  { // UartDevicePath\r
+    {\r
+      MESSAGING_DEVICE_PATH,\r
+      MSG_UART_DP,\r
+      (UINT8) (sizeof (UART_DEVICE_PATH)),\r
+      (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8),\r
+    },\r
+    0,\r
+    FixedPcdGet64 (PcdUartDefaultBaudRate),    \r
+    FixedPcdGet8 (PcdUartDefaultDataBits),\r
+    FixedPcdGet8 (PcdUartDefaultParity),\r
+    FixedPcdGet8 (PcdUartDefaultStopBits)\r
+  },\r
+  NULL,\r
+  0,    //BaseAddress\r
+  {\r
+    0,\r
+    0,\r
+    SERIAL_MAX_BUFFER_SIZE,\r
+    { 0 }\r
+  },\r
+  {\r
+    0,\r
+    0,\r
+    SERIAL_MAX_BUFFER_SIZE,\r
+    { 0 }\r
+  },\r
+  FALSE,\r
+  FALSE,\r
+  UART16550A,\r
+  NULL\r
+};\r
+\r
 /**\r
   The user Entry Point for module IsaSerial. The user code starts with this function.\r
 \r
 /**\r
   The user Entry Point for module IsaSerial. The user code starts with this function.\r
 \r
@@ -39,7 +96,7 @@ EFI_DRIVER_BINDING_PROTOCOL gSerialControllerDriver = {
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-InitializeIsaSerial(\r
+InitializeIsaSerial (\r
   IN EFI_HANDLE           ImageHandle,\r
   IN EFI_SYSTEM_TABLE     *SystemTable\r
   )\r
   IN EFI_HANDLE           ImageHandle,\r
   IN EFI_SYSTEM_TABLE     *SystemTable\r
   )\r
@@ -333,17 +390,15 @@ SerialControllerDriverStart (
   //\r
   // Initialize the serial device instance\r
   //\r
   //\r
   // Initialize the serial device instance\r
   //\r
-  SerialDevice = AllocatePool (sizeof (SERIAL_DEV));\r
+  SerialDevice = AllocateCopyPool (sizeof (SERIAL_DEV), &gSerialDevTempate);\r
   if (SerialDevice == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Error;\r
   }\r
 \r
   if (SerialDevice == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Error;\r
   }\r
 \r
-  ZeroMem (SerialDevice, sizeof (SERIAL_DEV));\r
-\r
+  SerialDevice->SerialIo.Mode       = &(SerialDevice->SerialMode);\r
   SerialDevice->IsaIo               = IsaIo;\r
   SerialDevice->ParentDevicePath    = ParentDevicePath;\r
   SerialDevice->IsaIo               = IsaIo;\r
   SerialDevice->ParentDevicePath    = ParentDevicePath;\r
-  SerialDevice->ControllerNameTable = NULL;\r
 \r
   ADD_SERIAL_NAME (SerialDevice, IsaIo);\r
 \r
 \r
   ADD_SERIAL_NAME (SerialDevice, IsaIo);\r
 \r
@@ -371,30 +426,6 @@ SerialControllerDriverStart (
     goto Error;\r
   }\r
 \r
     goto Error;\r
   }\r
 \r
-  SerialDevice->Signature               = SERIAL_DEV_SIGNATURE;\r
-  SerialDevice->Type                    = UART16550A;\r
-  SerialDevice->SoftwareLoopbackEnable  = FALSE;\r
-  SerialDevice->HardwareFlowControl     = FALSE;\r
-  SerialDevice->Handle                  = NULL;\r
-  SerialDevice->Receive.First           = 0;\r
-  SerialDevice->Receive.Last            = 0;\r
-  SerialDevice->Receive.Surplus         = SERIAL_MAX_BUFFER_SIZE;\r
-  SerialDevice->Transmit.First          = 0;\r
-  SerialDevice->Transmit.Last           = 0;\r
-  SerialDevice->Transmit.Surplus        = SERIAL_MAX_BUFFER_SIZE;\r
-\r
-  //\r
-  // Serial I/O\r
-  //\r
-  SerialDevice->SerialIo.Revision       = SERIAL_IO_INTERFACE_REVISION;\r
-  SerialDevice->SerialIo.Reset          = IsaSerialReset;\r
-  SerialDevice->SerialIo.SetAttributes  = IsaSerialSetAttributes;\r
-  SerialDevice->SerialIo.SetControl     = IsaSerialSetControl;\r
-  SerialDevice->SerialIo.GetControl     = IsaSerialGetControl;\r
-  SerialDevice->SerialIo.Write          = IsaSerialWrite;\r
-  SerialDevice->SerialIo.Read           = IsaSerialRead;\r
-  SerialDevice->SerialIo.Mode           = &(SerialDevice->SerialMode);\r
-\r
   if (RemainingDevicePath != NULL) {\r
     //\r
     // Match the configuration of the RemainingDevicePath. IsHandleSupported()\r
   if (RemainingDevicePath != NULL) {\r
     //\r
     // Match the configuration of the RemainingDevicePath. IsHandleSupported()\r
@@ -404,14 +435,9 @@ SerialControllerDriverStart (
     CopyMem (&SerialDevice->UartDevicePath, RemainingDevicePath, sizeof (UART_DEVICE_PATH));\r
   } else {\r
     //\r
     CopyMem (&SerialDevice->UartDevicePath, RemainingDevicePath, sizeof (UART_DEVICE_PATH));\r
   } else {\r
     //\r
-    // Build the device path by appending the UART node to the ParentDevicePath\r
-    // from the WinNtIo handle. The Uart setings are zero here, since\r
-    // SetAttribute() will update them to match the default setings.\r
+    // Use the values from the gSerialDevTempate as no remaining device path was\r
+    // passed in.\r
     //\r
     //\r
-    ZeroMem (&SerialDevice->UartDevicePath, sizeof (UART_DEVICE_PATH));\r
-    SerialDevice->UartDevicePath.Header.Type    = MESSAGING_DEVICE_PATH;\r
-    SerialDevice->UartDevicePath.Header.SubType = MSG_UART_DP;\r
-    SetDevicePathNodeLength ((EFI_DEVICE_PATH_PROTOCOL *) &SerialDevice->UartDevicePath, sizeof (UART_DEVICE_PATH));\r
   }\r
   //\r
   // Build the device path by appending the UART node to the ParentDevicePath\r
   }\r
   //\r
   // Build the device path by appending the UART node to the ParentDevicePath\r
@@ -420,20 +446,17 @@ SerialControllerDriverStart (
   //\r
   SerialDevice->DevicePath = AppendDevicePathNode (\r
                                ParentDevicePath,\r
   //\r
   SerialDevice->DevicePath = AppendDevicePathNode (\r
                                ParentDevicePath,\r
-                               (EFI_DEVICE_PATH_PROTOCOL *) &SerialDevice->UartDevicePath\r
+                               (EFI_DEVICE_PATH_PROTOCOL *)&SerialDevice->UartDevicePath\r
                                );\r
                                );\r
-\r
   if (SerialDevice->DevicePath == NULL) {\r
     Status = EFI_DEVICE_ERROR;\r
     goto Error;\r
   }\r
   if (SerialDevice->DevicePath == NULL) {\r
     Status = EFI_DEVICE_ERROR;\r
     goto Error;\r
   }\r
+\r
   //\r
   // Fill in Serial I/O Mode structure based on either the RemainingDevicePath or defaults.\r
   //\r
   //\r
   // Fill in Serial I/O Mode structure based on either the RemainingDevicePath or defaults.\r
   //\r
-  SerialDevice->SerialMode.ControlMask      = SERIAL_PORT_DEFAULT_CONTROL_MASK;\r
-  SerialDevice->SerialMode.Timeout          = SERIAL_PORT_DEFAULT_TIMEOUT;\r
   SerialDevice->SerialMode.BaudRate         = SerialDevice->UartDevicePath.BaudRate;\r
   SerialDevice->SerialMode.BaudRate         = SerialDevice->UartDevicePath.BaudRate;\r
-  SerialDevice->SerialMode.ReceiveFifoDepth = SERIAL_PORT_DEFAULT_RECEIVE_FIFO_DEPTH;\r
   SerialDevice->SerialMode.DataBits         = SerialDevice->UartDevicePath.DataBits;\r
   SerialDevice->SerialMode.Parity           = SerialDevice->UartDevicePath.Parity;\r
   SerialDevice->SerialMode.StopBits         = SerialDevice->UartDevicePath.StopBits;\r
   SerialDevice->SerialMode.DataBits         = SerialDevice->UartDevicePath.DataBits;\r
   SerialDevice->SerialMode.Parity           = SerialDevice->UartDevicePath.Parity;\r
   SerialDevice->SerialMode.StopBits         = SerialDevice->UartDevicePath.StopBits;\r
@@ -1132,7 +1155,7 @@ IsaSerialSetAttributes (
   // Check for default settings and fill in actual values.\r
   //\r
   if (BaudRate == 0) {\r
   // Check for default settings and fill in actual values.\r
   //\r
   if (BaudRate == 0) {\r
-    BaudRate = SERIAL_PORT_DEFAULT_BAUD_RATE;\r
+    BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);\r
   }\r
 \r
   if (ReceiveFifoDepth == 0) {\r
   }\r
 \r
   if (ReceiveFifoDepth == 0) {\r
@@ -1144,15 +1167,15 @@ IsaSerialSetAttributes (
   }\r
 \r
   if (Parity == DefaultParity) {\r
   }\r
 \r
   if (Parity == DefaultParity) {\r
-    Parity = SERIAL_PORT_DEFAULT_PARITY;\r
+    Parity = FixedPcdGet8 (PcdUartDefaultParity);\r
   }\r
 \r
   if (DataBits == 0) {\r
   }\r
 \r
   if (DataBits == 0) {\r
-    DataBits = SERIAL_PORT_DEFAULT_DATA_BITS;\r
+    DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);\r
   }\r
 \r
   if (StopBits == DefaultStopBits) {\r
   }\r
 \r
   if (StopBits == DefaultStopBits) {\r
-    StopBits = (EFI_STOP_BITS_TYPE) SERIAL_PORT_DEFAULT_STOP_BITS;\r
+    StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);\r
   }\r
   //\r
   // 5 and 6 data bits can not be verified on a 16550A UART\r
   }\r
   //\r
   // 5 and 6 data bits can not be verified on a 16550A UART\r
@@ -1801,8 +1824,7 @@ IsaSerialPortPresent (
   Temp = READ_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);\r
   WRITE_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, 0xAA);\r
 \r
   Temp = READ_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);\r
   WRITE_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, 0xAA);\r
 \r
-  if (READ_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress) != 0xAA)\r
-  {\r
+  if (READ_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress) != 0xAA) {\r
     if (!FeaturePcdGet (PcdNtEmulatorEnable)) {\r
       Status = FALSE;\r
     }\r
     if (!FeaturePcdGet (PcdNtEmulatorEnable)) {\r
       Status = FALSE;\r
     }\r
@@ -1810,8 +1832,7 @@ IsaSerialPortPresent (
 \r
   WRITE_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, 0x55);\r
 \r
 \r
   WRITE_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, 0x55);\r
 \r
-  if (READ_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress) != 0x55)\r
-  {\r
+  if (READ_SCR (SerialDevice->IsaIo, SerialDevice->BaseAddress) != 0x55) {\r
     if (!FeaturePcdGet (PcdNtEmulatorEnable)) {\r
       Status = FALSE;\r
     }\r
     if (!FeaturePcdGet (PcdNtEmulatorEnable)) {\r
       Status = FALSE;\r
     }\r
index bf78094ac4c3e95b96e147485d2ce53606c64922..0fcc4f3fb0ddccd931f9d6d222e07289744775c2 100644 (file)
@@ -121,14 +121,18 @@ extern EFI_DRIVER_BINDING_PROTOCOL  gSerialControllerDriver;
 //\r
 // Serial Driver Defaults\r
 //\r
 //\r
 // Serial Driver Defaults\r
 //\r
-#define SERIAL_PORT_DEFAULT_BAUD_RATE           115200\r
 #define SERIAL_PORT_DEFAULT_RECEIVE_FIFO_DEPTH  1\r
 #define SERIAL_PORT_DEFAULT_TIMEOUT             1000000\r
 #define SERIAL_PORT_DEFAULT_RECEIVE_FIFO_DEPTH  1\r
 #define SERIAL_PORT_DEFAULT_TIMEOUT             1000000\r
+\r
+/*\r
+#define SERIAL_PORT_DEFAULT_BAUD_RATE           115200\r
 #define SERIAL_PORT_DEFAULT_PARITY              NoParity\r
 #define SERIAL_PORT_DEFAULT_DATA_BITS           8\r
 #define SERIAL_PORT_DEFAULT_STOP_BITS           1\r
 #define SERIAL_PORT_DEFAULT_PARITY              NoParity\r
 #define SERIAL_PORT_DEFAULT_DATA_BITS           8\r
 #define SERIAL_PORT_DEFAULT_STOP_BITS           1\r
+*/\r
 #define SERIAL_PORT_DEFAULT_CONTROL_MASK        0\r
 \r
 #define SERIAL_PORT_DEFAULT_CONTROL_MASK        0\r
 \r
+\r
 //\r
 // (24000000/13)MHz input clock\r
 //\r
 //\r
 // (24000000/13)MHz input clock\r
 //\r
index 4860a4b21041a0cf220b77164a76ae97d4834567..5b8cb8da0b0c3a20e360727ad74b841b2c9055c2 100644 (file)
@@ -20,7 +20,6 @@ Revision History:
 --*/\r
 \r
 \r
 --*/\r
 \r
 \r
-\r
 #include "Terminal.h"\r
 \r
 //\r
 #include "Terminal.h"\r
 \r
 //\r
@@ -36,6 +35,70 @@ EFI_DRIVER_BINDING_PROTOCOL gTerminalDriverBinding = {
 };\r
 \r
 \r
 };\r
 \r
 \r
+EFI_GUID  *gTerminalType[] = {\r
+  &gEfiPcAnsiGuid,\r
+  &gEfiVT100Guid,\r
+  &gEfiVT100PlusGuid,\r
+  &gEfiVTUTF8Guid\r
+};\r
+\r
+\r
+TERMINAL_DEV  gTerminalDevTemplate = {\r
+  TERMINAL_DEV_SIGNATURE,\r
+  NULL,\r
+  0,\r
+  NULL,\r
+  NULL,\r
+  {   // SimpleTextInput\r
+    TerminalConInReset,\r
+    TerminalConInReadKeyStroke,\r
+    NULL\r
+  },\r
+  {   // SimpleTextOutput\r
+    TerminalConOutReset,\r
+    TerminalConOutOutputString,\r
+    TerminalConOutTestString,\r
+    TerminalConOutQueryMode,\r
+    TerminalConOutSetMode,\r
+    TerminalConOutSetAttribute,\r
+    TerminalConOutClearScreen,\r
+    TerminalConOutSetCursorPosition,\r
+    TerminalConOutEnableCursor,\r
+    NULL\r
+  },\r
+  {   // SimpleTextOutputMode\r
+    1,                                           // MaxMode\r
+    0,                                           // Mode?\r
+    EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK),    // Attribute\r
+    0,                                           // CursorColumn\r
+    0,                                           // CursorRow\r
+    TRUE                                         // CursorVisible\r
+  },\r
+  0,\r
+  {\r
+    0,\r
+    0,\r
+    { 0 }\r
+  },\r
+  {\r
+    0,\r
+    0,\r
+    { 0 }\r
+  },\r
+  {\r
+    0,\r
+    0,\r
+    { 0 }\r
+  },\r
+  NULL, // ControllerNameTable\r
+  NULL, \r
+  INPUT_STATE_DEFAULT,\r
+  RESET_STATE_DEFAULT,\r
+  FALSE\r
+};\r
+\r
+\r
+\r
 EFI_STATUS\r
 EFIAPI\r
 TerminalDriverBindingSupported (\r
 EFI_STATUS\r
 EFIAPI\r
 TerminalDriverBindingSupported (\r
@@ -276,62 +339,48 @@ TerminalDriverBindingStart (
   // If RemainingDevicePath is NULL, then create default device path node\r
   //\r
   if (RemainingDevicePath == NULL) {\r
   // If RemainingDevicePath is NULL, then create default device path node\r
   //\r
   if (RemainingDevicePath == NULL) {\r
-    DefaultNode = AllocatePool (sizeof (VENDOR_DEVICE_PATH));\r
+    DefaultNode = AllocateZeroPool (sizeof (VENDOR_DEVICE_PATH));\r
     if (DefaultNode == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Error;\r
     }\r
 \r
     if (DefaultNode == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Error;\r
     }\r
 \r
-    CopyMem (&DefaultNode->Guid, &gEfiPcAnsiGuid, sizeof (EFI_GUID));\r
-    RemainingDevicePath = (EFI_DEVICE_PATH_PROTOCOL*) DefaultNode;\r
-  }\r
-  //\r
-  // Use the RemainingDevicePath to determine the terminal type\r
-  //\r
-  Node = (VENDOR_DEVICE_PATH *) RemainingDevicePath;\r
-\r
-  if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) {\r
-\r
-    TerminalType = PcAnsiType;\r
-\r
-  } else if (CompareGuid (&Node->Guid, &gEfiVT100Guid)) {\r
-\r
-    TerminalType = VT100Type;\r
-\r
-  } else if (CompareGuid (&Node->Guid, &gEfiVT100PlusGuid)) {\r
-\r
-    TerminalType = VT100PlusType;\r
-\r
-  } else if (CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
-\r
-    TerminalType = VTUTF8Type;\r
+    TerminalType = FixedPcdGet8 (PcdDefaultTerminalType);\r
+    // must be between PcAnsiType (0) and VTUTF8Type (3)\r
+    ASSERT (TerminalType <= VTUTF8Type);\r
 \r
 \r
+    CopyMem (&DefaultNode->Guid, gTerminalType[TerminalType], sizeof (EFI_GUID));\r
+    RemainingDevicePath = (EFI_DEVICE_PATH_PROTOCOL*)DefaultNode;\r
   } else {\r
   } else {\r
-    goto Error;\r
+    //\r
+    // Use the RemainingDevicePath to determine the terminal type\r
+    //\r
+    Node = (VENDOR_DEVICE_PATH *)RemainingDevicePath;\r
+    if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) {\r
+      TerminalType = PcAnsiType;\r
+    } else if (CompareGuid (&Node->Guid, &gEfiVT100Guid)) {\r
+      TerminalType = VT100Type;\r
+    } else if (CompareGuid (&Node->Guid, &gEfiVT100PlusGuid)) {\r
+      TerminalType = VT100PlusType;\r
+    } else if (CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
+      TerminalType = VTUTF8Type;\r
+    } else {\r
+      goto Error;\r
+    }\r
   }\r
   }\r
+\r
   //\r
   // Initialize the Terminal Dev\r
   //\r
   //\r
   // Initialize the Terminal Dev\r
   //\r
-  TerminalDevice = AllocatePool (sizeof (TERMINAL_DEV));\r
+  TerminalDevice = AllocateCopyPool (sizeof (TERMINAL_DEV), &gTerminalDevTemplate);\r
   if (TerminalDevice == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Error;\r
   }\r
 \r
   if (TerminalDevice == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Error;\r
   }\r
 \r
-  ZeroMem (TerminalDevice, sizeof (TERMINAL_DEV));\r
-\r
-  TerminalDevice->Signature     = TERMINAL_DEV_SIGNATURE;\r
-\r
   TerminalDevice->TerminalType  = TerminalType;\r
   TerminalDevice->TerminalType  = TerminalType;\r
-\r
   TerminalDevice->SerialIo      = SerialIo;\r
 \r
   TerminalDevice->SerialIo      = SerialIo;\r
 \r
-  //\r
-  // Simple Input Protocol\r
-  //\r
-  TerminalDevice->SimpleInput.Reset         = TerminalConInReset;\r
-  TerminalDevice->SimpleInput.ReadKeyStroke = TerminalConInReadKeyStroke;\r
-\r
   Status = gBS->CreateEvent (\r
                   EVT_NOTIFY_WAIT,\r
                   TPL_NOTIFY,\r
   Status = gBS->CreateEvent (\r
                   EVT_NOTIFY_WAIT,\r
                   TPL_NOTIFY,\r
@@ -342,6 +391,7 @@ TerminalDriverBindingStart (
   if (EFI_ERROR (Status)) {\r
     goto Error;\r
   }\r
   if (EFI_ERROR (Status)) {\r
     goto Error;\r
   }\r
+\r
   //\r
   // initialize the FIFO buffer used for accommodating\r
   // the pre-read pending characters\r
   //\r
   // initialize the FIFO buffer used for accommodating\r
   // the pre-read pending characters\r
@@ -355,7 +405,6 @@ TerminalDriverBindingStart (
   // keystroke response performance issue\r
   //\r
   Mode            = TerminalDevice->SerialIo->Mode;\r
   // keystroke response performance issue\r
   //\r
   Mode            = TerminalDevice->SerialIo->Mode;\r
-\r
   SerialInTimeOut = 0;\r
   if (Mode->BaudRate != 0) {\r
     SerialInTimeOut = (1 + Mode->DataBits + Mode->StopBits) * 2 * 1000000 / (UINTN) Mode->BaudRate;\r
   SerialInTimeOut = 0;\r
   if (Mode->BaudRate != 0) {\r
     SerialInTimeOut = (1 + Mode->DataBits + Mode->StopBits) * 2 * 1000000 / (UINTN) Mode->BaudRate;\r
@@ -409,24 +458,8 @@ TerminalDriverBindingStart (
   //\r
   // Simple Text Output Protocol\r
   //\r
   //\r
   // Simple Text Output Protocol\r
   //\r
-  TerminalDevice->SimpleTextOutput.Reset              = TerminalConOutReset;\r
-  TerminalDevice->SimpleTextOutput.OutputString       = TerminalConOutOutputString;\r
-  TerminalDevice->SimpleTextOutput.TestString         = TerminalConOutTestString;\r
-  TerminalDevice->SimpleTextOutput.QueryMode          = TerminalConOutQueryMode;\r
-  TerminalDevice->SimpleTextOutput.SetMode            = TerminalConOutSetMode;\r
-  TerminalDevice->SimpleTextOutput.SetAttribute       = TerminalConOutSetAttribute;\r
-  TerminalDevice->SimpleTextOutput.ClearScreen        = TerminalConOutClearScreen;\r
-  TerminalDevice->SimpleTextOutput.SetCursorPosition  = TerminalConOutSetCursorPosition;\r
-  TerminalDevice->SimpleTextOutput.EnableCursor       = TerminalConOutEnableCursor;\r
   TerminalDevice->SimpleTextOutput.Mode               = &TerminalDevice->SimpleTextOutputMode;\r
 \r
   TerminalDevice->SimpleTextOutput.Mode               = &TerminalDevice->SimpleTextOutputMode;\r
 \r
-  TerminalDevice->SimpleTextOutputMode.MaxMode        = 1;\r
-  //\r
-  // For terminal devices, cursor is always visible\r
-  //\r
-  TerminalDevice->SimpleTextOutputMode.CursorVisible  = TRUE;\r
-  TerminalDevice->SimpleTextOutputMode.Attribute      = EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK);\r
-\r
   Status = TerminalDevice->SimpleTextOutput.Reset (\r
                                               &TerminalDevice->SimpleTextOutput,\r
                                               FALSE\r
   Status = TerminalDevice->SimpleTextOutput.Reset (\r
                                               &TerminalDevice->SimpleTextOutput,\r
                                               FALSE\r
@@ -450,11 +483,6 @@ TerminalDriverBindingStart (
   if (EFI_ERROR (Status)) {\r
     goto ReportError;\r
   }\r
   if (EFI_ERROR (Status)) {\r
     goto ReportError;\r
   }\r
-  //\r
-  //\r
-  //\r
-  TerminalDevice->InputState  = INPUT_STATE_DEFAULT;\r
-  TerminalDevice->ResetState  = RESET_STATE_DEFAULT;\r
 \r
   Status = gBS->CreateEvent (\r
                   EVT_TIMER,\r
 \r
   Status = gBS->CreateEvent (\r
                   EVT_TIMER,\r
index 5a7dc0e3e7d49607e3a688b279e5237727b963d3..c4f5ac19f3006f855d1ce3ac60330ae46f778803 100644 (file)
@@ -74,7 +74,6 @@ typedef struct {
   UINT8                               TerminalType;\r
   EFI_SERIAL_IO_PROTOCOL              *SerialIo;\r
   EFI_DEVICE_PATH_PROTOCOL            *DevicePath;\r
   UINT8                               TerminalType;\r
   EFI_SERIAL_IO_PROTOCOL              *SerialIo;\r
   EFI_DEVICE_PATH_PROTOCOL            *DevicePath;\r
-  VENDOR_DEVICE_PATH                  Node;\r
   EFI_SIMPLE_TEXT_INPUT_PROTOCOL      SimpleInput;\r
   EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL     SimpleTextOutput;\r
   EFI_SIMPLE_TEXT_OUTPUT_MODE         SimpleTextOutputMode;\r
   EFI_SIMPLE_TEXT_INPUT_PROTOCOL      SimpleInput;\r
   EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL     SimpleTextOutput;\r
   EFI_SIMPLE_TEXT_OUTPUT_MODE         SimpleTextOutputMode;\r
@@ -85,7 +84,7 @@ typedef struct {
   EFI_UNICODE_STRING_TABLE            *ControllerNameTable;\r
   EFI_EVENT                           TwoSecondTimeOut;\r
   UINT32                              InputState;\r
   EFI_UNICODE_STRING_TABLE            *ControllerNameTable;\r
   EFI_EVENT                           TwoSecondTimeOut;\r
   UINT32                              InputState;\r
-  UINT32                           ResetState;\r
+  UINT32                              ResetState;\r
 \r
   //\r
   // Esc could not be output to the screen by user,\r
 \r
   //\r
   // Esc could not be output to the screen by user,\r
@@ -94,7 +93,7 @@ typedef struct {
   // This boolean is used by the terminal driver only\r
   // to indicate whether the Esc could be sent or not.\r
   //\r
   // This boolean is used by the terminal driver only\r
   // to indicate whether the Esc could be sent or not.\r
   //\r
-  BOOLEAN                       OutputEscChar;\r
+  BOOLEAN                             OutputEscChar;\r
 } TERMINAL_DEV;\r
 \r
 #define INPUT_STATE_DEFAULT               0x00\r
 } TERMINAL_DEV;\r
 \r
 #define INPUT_STATE_DEFAULT               0x00\r
index 9368bf43775299715e4ce11bb2952a478fa5679b..ad0177ebbb34d0528a94ef994ab56c7972cd0c6a 100644 (file)
   gEfiSimpleTextInProtocolGuid                  # PROTOCOL BY_START\r
   gEfiSimpleTextOutProtocolGuid                 # PROTOCOL BY_START\r
 \r
   gEfiSimpleTextInProtocolGuid                  # PROTOCOL BY_START\r
   gEfiSimpleTextOutProtocolGuid                 # PROTOCOL BY_START\r
 \r
-[PcdsFixedAtBuild]\r
+[PcdsDynamic]\r
   PcdStatusCodeValueRemoteConsoleError|gEfiMdePkgTokenSpaceGuid\r
   PcdStatusCodeValueRemoteConsoleReset|gEfiMdePkgTokenSpaceGuid\r
   PcdStatusCodeValueRemoteConsoleInputError|gEfiMdePkgTokenSpaceGuid\r
   PcdStatusCodeValueRemoteConsoleOutputError|gEfiMdePkgTokenSpaceGuid\r
   PcdStatusCodeValueRemoteConsoleError|gEfiMdePkgTokenSpaceGuid\r
   PcdStatusCodeValueRemoteConsoleReset|gEfiMdePkgTokenSpaceGuid\r
   PcdStatusCodeValueRemoteConsoleInputError|gEfiMdePkgTokenSpaceGuid\r
   PcdStatusCodeValueRemoteConsoleOutputError|gEfiMdePkgTokenSpaceGuid\r
+  PcdDefaultTerminalType|gEfiMdePkgTokenSpaceGuid\r
+  \r