Add a fixed pointer PCD to allow build-time selection of VT100 or TTY terminal
type. The default remains VT100 emulation.
Add support for building the ARM QEMU platforms with the TTY terminal
with the "-D TTY_TERMINAL" build option.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
[Roy Franz: minor edits: add TtyTerminal GUID, rename LINUX_TERMINAL to TTY_TERMINAL]
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Roy Franz <roy.franz@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17898
6f19259b-4bc3-4df7-8a09-
765794883524
\r
[Defines]\r
DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F\r
+ DEFINE TTY_TERMINAL = FALSE\r
\r
[BuildOptions.AARCH64.EDKII.DXE_RUNTIME_DRIVER]\r
GCC:*_*_AARCH64_DLINK_FLAGS = --script=$(EDK_TOOLS_PATH)/Scripts/gcc-aarch64-64K-align-ld-script\r
gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04\r
!endif\r
\r
+!if $(TTY_TERMINAL) == TRUE\r
+ # Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID\r
+ gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}\r
+!endif\r
+\r
[Components.common]\r
#\r
# Networking stack\r
#\r
gArmVirtTokenSpaceGuid.PcdDeviceTreeAllocationPadding|256|UINT32|0x00000002\r
\r
+ #\r
+ # Binary representation of the GUID that determines the terminal type. The\r
+ # size must be exactly 16 bytes. The default value corresponds to\r
+ # EFI_VT_100_GUID.\r
+ #\r
+ gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x65, 0x60, 0xA6, 0xDF, 0x19, 0xB4, 0xD3, 0x11, 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D}|VOID*|0x00000007\r
+\r
[PcdsDynamic, PcdsFixedAtBuild]\r
#\r
# ARM PSCI function invocations can be done either through hypervisor\r
typedef struct {\r
VENDOR_DEVICE_PATH SerialDxe;\r
UART_DEVICE_PATH Uart;\r
- VENDOR_DEFINED_DEVICE_PATH Vt100;\r
+ VENDOR_DEFINED_DEVICE_PATH TermType;\r
EFI_DEVICE_PATH_PROTOCOL End;\r
} PLATFORM_SERIAL_CONSOLE;\r
#pragma pack ()\r
},\r
\r
//\r
- // VENDOR_DEFINED_DEVICE_PATH Vt100\r
+ // VENDOR_DEFINED_DEVICE_PATH TermType\r
//\r
{\r
{\r
MESSAGING_DEVICE_PATH, MSG_VENDOR_DP,\r
DP_NODE_LEN (VENDOR_DEFINED_DEVICE_PATH)\r
- },\r
- EFI_VT_100_GUID\r
+ }\r
+ //\r
+ // Guid to be filled in dynamically\r
+ //\r
},\r
\r
//\r
//\r
// Add the hardcoded serial console device path to ConIn, ConOut, ErrOut.\r
//\r
+ CopyGuid (&mSerialConsole.TermType.Guid,\r
+ PcdGetPtr (PcdTerminalTypeGuidBuffer));\r
BdsLibUpdateConsoleVariable (L"ConIn",\r
(EFI_DEVICE_PATH_PROTOCOL *)&mSerialConsole, NULL);\r
BdsLibUpdateConsoleVariable (L"ConOut",\r
MdeModulePkg/MdeModulePkg.dec\r
MdePkg/MdePkg.dec\r
OvmfPkg/OvmfPkg.dec\r
+ ArmVirtPkg/ArmVirtPkg.dec\r
\r
[LibraryClasses]\r
BaseLib\r
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity\r
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits\r
\r
+[Pcd]\r
+ gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer\r
+\r
[Guids]\r
gEfiFileInfoGuid\r
gEfiFileSystemInfoGuid\r