&gEfiPcAnsiGuid,\r
&gEfiVT100Guid,\r
&gEfiVT100PlusGuid,\r
- &gEfiVTUTF8Guid\r
+ &gEfiVTUTF8Guid,\r
+ &gEfiTtyTermGuid\r
};\r
\r
\r
NULL, // TwoSecondTimeOut\r
INPUT_STATE_DEFAULT,\r
RESET_STATE_DEFAULT,\r
+ {\r
+ 0,\r
+ 0,\r
+ 0\r
+ },\r
+ 0,\r
FALSE,\r
{ // SimpleTextInputEx\r
TerminalConInResetEx,\r
\r
}\r
//\r
- // only supports PC ANSI, VT100, VT100+ and VT-UTF8 terminal types\r
+ // only supports PC ANSI, VT100, VT100+, VT-UTF8, and TtyTerm terminal types\r
//\r
if (!CompareGuid (&Node->Guid, &gEfiPcAnsiGuid) &&\r
!CompareGuid (&Node->Guid, &gEfiVT100Guid) &&\r
!CompareGuid (&Node->Guid, &gEfiVT100PlusGuid) &&\r
- !CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
+ !CompareGuid (&Node->Guid, &gEfiVTUTF8Guid) &&\r
+ !CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
\r
return EFI_UNSUPPORTED;\r
}\r
EFI_STATUS Status;\r
\r
TerminalDevicePath = NULL;\r
- TerminalType = PCANSITYPE;\r
\r
//\r
// Use the RemainingDevicePath to determine the terminal type\r
//\r
Node = (VENDOR_DEVICE_PATH *) RemainingDevicePath;\r
if (Node == NULL) {\r
- TerminalType = PCANSITYPE;\r
+ TerminalType = PcdGet8 (PcdDefaultTerminalType);\r
\r
} else if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) {\r
\r
\r
TerminalType = VTUTF8TYPE;\r
\r
+ } else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
+\r
+ TerminalType = TTYTERMTYPE;\r
+\r
} else {\r
return NULL;\r
}\r
EFI_SERIAL_IO_PROTOCOL *SerialIo;\r
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
VENDOR_DEVICE_PATH *Node;\r
- VENDOR_DEVICE_PATH *DefaultNode;\r
EFI_SERIAL_IO_MODE *Mode;\r
UINTN SerialInTimeOut;\r
TERMINAL_DEV *TerminalDevice;\r
UINTN ModeCount;\r
\r
TerminalDevice = NULL;\r
- DefaultNode = NULL;\r
- ConInSelected = FALSE;\r
- ConOutSelected = FALSE;\r
- NullRemaining = TRUE;\r
+ ConInSelected = FALSE;\r
+ ConOutSelected = FALSE;\r
+ NullRemaining = FALSE;\r
SimTxtInInstalled = FALSE;\r
SimTxtOutInstalled = FALSE;\r
FirstEnter = FALSE;\r
//\r
if (FirstEnter) {\r
//\r
- // First enther the start funciton\r
+ // First enther the start function\r
//\r
FirstEnter = FALSE;\r
//\r
}\r
\r
//\r
- // If RemainingDevicePath is NULL, then create default device path node\r
+ // If RemainingDevicePath is NULL, use default terminal type\r
//\r
if (RemainingDevicePath == NULL) {\r
- DefaultNode = AllocateZeroPool (sizeof (VENDOR_DEVICE_PATH));\r
- if (DefaultNode == NULL) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
- goto Error;\r
- }\r
-\r
TerminalType = PcdGet8 (PcdDefaultTerminalType);\r
//\r
- // Must be between PCANSITYPE (0) and VTUTF8TYPE (3)\r
+ // Must be between PCANSITYPE (0) and TTYTERMTYPE (4)\r
//\r
- ASSERT (TerminalType <= VTUTF8TYPE);\r
-\r
- CopyMem (&DefaultNode->Guid, gTerminalType[TerminalType], sizeof (EFI_GUID));\r
- RemainingDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) DefaultNode;\r
+ ASSERT (TerminalType <= TTYTERMTYPE);\r
} else if (!IsDevicePathEnd (RemainingDevicePath)) {\r
//\r
// If RemainingDevicePath isn't the End of Device Path Node,\r
TerminalType = VT100PLUSTYPE;\r
} else if (CompareGuid (&Node->Guid, &gEfiVTUTF8Guid)) {\r
TerminalType = VTUTF8TYPE;\r
+ } else if (CompareGuid (&Node->Guid, &gEfiTtyTermGuid)) {\r
+ TerminalType = TTYTERMTYPE;\r
} else {\r
goto Error;\r
}\r
);\r
\r
break;\r
+\r
+ case TTYTERMTYPE:\r
+ AddUnicodeString2 (\r
+ "eng",\r
+ gTerminalComponentName.SupportedLanguages,\r
+ &TerminalDevice->ControllerNameTable,\r
+ (CHAR16 *)L"Tty Terminal Serial Console",\r
+ TRUE\r
+ );\r
+ AddUnicodeString2 (\r
+ "en",\r
+ gTerminalComponentName2.SupportedLanguages,\r
+ &TerminalDevice->ControllerNameTable,\r
+ (CHAR16 *)L"Tty Terminal Serial Console",\r
+ FALSE\r
+ );\r
+\r
+ break;\r
}\r
\r
//\r
goto Error;\r
}\r
}\r
- if (DefaultNode != NULL) {\r
- FreePool (DefaultNode);\r
- }\r
\r
return EFI_SUCCESS;\r
\r
}\r
}\r
\r
- if (DefaultNode != NULL) {\r
- FreePool (DefaultNode);\r
- }\r
-\r
This->Stop (This, Controller, 0, NULL);\r
\r
return Status;\r
//\r
// Append terminal device path onto the variable.\r
//\r
- for (TerminalType = PCANSITYPE; TerminalType <= VTUTF8TYPE; TerminalType++) {\r
+ for (TerminalType = PCANSITYPE; TerminalType <= TTYTERMTYPE; TerminalType++) {\r
SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);\r
NewVariable = AppendDevicePathInstance (Variable, TempDevicePath);\r
ASSERT (NewVariable != NULL);\r
// Loop through all the terminal types that this driver supports\r
//\r
Match = FALSE;\r
- for (TerminalType = PCANSITYPE; TerminalType <= VTUTF8TYPE; TerminalType++) {\r
+ for (TerminalType = PCANSITYPE; TerminalType <= TTYTERMTYPE; TerminalType++) {\r
\r
SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);\r
\r
CopyGuid (&Node.Guid, &gEfiVTUTF8Guid);\r
break;\r
\r
+ case TTYTERMTYPE:\r
+ CopyGuid (&Node.Guid, &gEfiTtyTermGuid);\r
+ break;\r
+\r
default:\r
return EFI_UNSUPPORTED;\r
}\r