]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add PCD for selecting terminal type at build time
authorLaszlo Ersek <lersek@redhat.com>
Thu, 9 Jul 2015 06:24:25 +0000 (06:24 +0000)
committerlersek <lersek@Edk2>
Thu, 9 Jul 2015 06:24:25 +0000 (06:24 +0000)
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

ArmVirtPkg/ArmVirt.dsc.inc
ArmVirtPkg/ArmVirtPkg.dec
ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf

index 16d7ea635ee9db45011b0f50d68dc61322f84203..2517233ede37164f8658278a4f59be0d21e69f5b 100644 (file)
@@ -15,6 +15,7 @@
 \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
index 7bbd9fff570e18b4d20504a40066d28473a99f14..9833c5aa688f2df2c3f9c6b499e6fd81169428d3 100644 (file)
   #\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
index 13830cbe3665820bc88963c010f507681133869f..b242a293a103c9738d6a50a6e29bc23ca18ed685 100644 (file)
@@ -35,7 +35,7 @@
 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
@@ -67,14 +67,16 @@ STATIC PLATFORM_SERIAL_CONSOLE mSerialConsole = {
   },\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
@@ -421,6 +423,8 @@ PlatformBdsPolicyBehavior (
   //\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
index d9982167e81d0e397dd5b7bb1b6384c565123f23..9a3cfcd9553ec18a0e822813fbc875eff01ee610 100644 (file)
@@ -39,6 +39,7 @@
   MdeModulePkg/MdeModulePkg.dec\r
   MdePkg/MdePkg.dec\r
   OvmfPkg/OvmfPkg.dec\r
+  ArmVirtPkg/ArmVirtPkg.dec\r
 \r
 [LibraryClasses]\r
   BaseLib\r
@@ -61,6 +62,9 @@
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity\r
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits\r
 \r
+[Pcd]\r
+  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer\r
+\r
 [Guids]\r
   gEfiFileInfoGuid\r
   gEfiFileSystemInfoGuid\r