Revision: 17898
          http://sourceforge.net/p/edk2/code/17898
Author:   lersek
Date:     2015-07-09 06:24:25 +0000 (Thu, 09 Jul 2015)
Log Message:
-----------
Add PCD for selecting terminal type at build time

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 <[email protected]>
[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 <[email protected]>
Reviewed-by: Ard Biesheuvel <[email protected]>

Modified Paths:
--------------
    trunk/edk2/ArmVirtPkg/ArmVirt.dsc.inc
    trunk/edk2/ArmVirtPkg/ArmVirtPkg.dec
    trunk/edk2/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
    trunk/edk2/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf

Modified: trunk/edk2/ArmVirtPkg/ArmVirt.dsc.inc
===================================================================
--- trunk/edk2/ArmVirtPkg/ArmVirt.dsc.inc       2015-07-09 06:24:20 UTC (rev 
17897)
+++ trunk/edk2/ArmVirtPkg/ArmVirt.dsc.inc       2015-07-09 06:24:25 UTC (rev 
17898)
@@ -15,6 +15,7 @@
 
 [Defines]
   DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F
+  DEFINE TTY_TERMINAL            = FALSE
 
 [BuildOptions.AARCH64.EDKII.DXE_RUNTIME_DRIVER]
   GCC:*_*_AARCH64_DLINK_FLAGS = 
--script=$(EDK_TOOLS_PATH)/Scripts/gcc-aarch64-64K-align-ld-script
@@ -362,6 +363,11 @@
   gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
 !endif
 
+!if $(TTY_TERMINAL) == TRUE
+  # Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
+  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 
0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
+!endif
+
 [Components.common]
   #
   # Networking stack

Modified: trunk/edk2/ArmVirtPkg/ArmVirtPkg.dec
===================================================================
--- trunk/edk2/ArmVirtPkg/ArmVirtPkg.dec        2015-07-09 06:24:20 UTC (rev 
17897)
+++ trunk/edk2/ArmVirtPkg/ArmVirtPkg.dec        2015-07-09 06:24:25 UTC (rev 
17898)
@@ -49,6 +49,13 @@
   #
   gArmVirtTokenSpaceGuid.PcdDeviceTreeAllocationPadding|256|UINT32|0x00000002
 
+  #
+  # Binary representation of the GUID that determines the terminal type. The
+  # size must be exactly 16 bytes. The default value corresponds to
+  # EFI_VT_100_GUID.
+  #
+  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x65, 0x60, 0xA6, 0xDF, 
0x19, 0xB4, 0xD3, 0x11, 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 
0x4D}|VOID*|0x00000007
+
 [PcdsDynamic, PcdsFixedAtBuild]
   #
   # ARM PSCI function invocations can be done either through hypervisor

Modified: trunk/edk2/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
===================================================================
--- trunk/edk2/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c        
2015-07-09 06:24:20 UTC (rev 17897)
+++ trunk/edk2/ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c        
2015-07-09 06:24:25 UTC (rev 17898)
@@ -35,7 +35,7 @@
 typedef struct {
   VENDOR_DEVICE_PATH         SerialDxe;
   UART_DEVICE_PATH           Uart;
-  VENDOR_DEFINED_DEVICE_PATH Vt100;
+  VENDOR_DEFINED_DEVICE_PATH TermType;
   EFI_DEVICE_PATH_PROTOCOL   End;
 } PLATFORM_SERIAL_CONSOLE;
 #pragma pack ()
@@ -67,14 +67,16 @@
   },
 
   //
-  // VENDOR_DEFINED_DEVICE_PATH Vt100
+  // VENDOR_DEFINED_DEVICE_PATH TermType
   //
   {
     {
       MESSAGING_DEVICE_PATH, MSG_VENDOR_DP,
       DP_NODE_LEN (VENDOR_DEFINED_DEVICE_PATH)
-    },
-    EFI_VT_100_GUID
+    }
+    //
+    // Guid to be filled in dynamically
+    //
   },
 
   //
@@ -421,6 +423,8 @@
   //
   // Add the hardcoded serial console device path to ConIn, ConOut, ErrOut.
   //
+  CopyGuid (&mSerialConsole.TermType.Guid,
+    PcdGetPtr (PcdTerminalTypeGuidBuffer));
   BdsLibUpdateConsoleVariable (L"ConIn",
     (EFI_DEVICE_PATH_PROTOCOL *)&mSerialConsole, NULL);
   BdsLibUpdateConsoleVariable (L"ConOut",

Modified: 
trunk/edk2/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
===================================================================
--- trunk/edk2/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf   
2015-07-09 06:24:20 UTC (rev 17897)
+++ trunk/edk2/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf   
2015-07-09 06:24:25 UTC (rev 17898)
@@ -39,6 +39,7 @@
   MdeModulePkg/MdeModulePkg.dec
   MdePkg/MdePkg.dec
   OvmfPkg/OvmfPkg.dec
+  ArmVirtPkg/ArmVirtPkg.dec
 
 [LibraryClasses]
   BaseLib
@@ -61,6 +62,9 @@
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
 
+[Pcd]
+  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer
+
 [Guids]
   gEfiFileInfoGuid
   gEfiFileSystemInfoGuid


------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to