On 01/09/17 20:33, Laszlo Ersek wrote:
> On 01/09/17 19:02, Michael Kinney wrote:
>> The Debug Agent in the SourceLevelDebugPkg can multiplex
>> both source level debug messages and console messages on
>> the same UART.  When this is done, the Debug Agent owns
>> the UART device and an additional device handle with a
>> Serial I/O Protocol is produced with a VenHw device path
>> node.
>>
>> In order for a platform to provide a UART based console
>> when the Debug Agent is using the same UART device, the
>> PlatformBootManagerLib must consider the SerialI/O
>> Protocol produces by the Debug Agent as one of the
>> supported consoles.
>>
>> Cc: Jordan Justen <jordan.l.jus...@intel.com>
>> Cc: Laszlo Ersek <ler...@redhat.com>
>> Cc: Jeff Fan <jeff....@intel.com>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Michael Kinney <michael.d.kin...@intel.com>
>> ---
>>  .../Library/PlatformBootManagerLib/BdsPlatform.h   | 13 ++++-
>>  .../PlatformBootManagerLib.inf                     |  3 +-
>>  .../Library/PlatformBootManagerLib/PlatformData.c  | 55 
>> ++++++++++++++++++++--
>>  3 files changed, 64 insertions(+), 7 deletions(-)
> 
> 
> The patch looks good to me:
> 
> Reviewed-by: Laszlo Ersek <ler...@redhat.com>
> 
> I just have two trivial improvements in mind:
> 
>> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.h 
>> b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.h
>> index 00a1d22..ec58efa 100644
>> --- a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.h
>> +++ b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.h
>> @@ -1,7 +1,7 @@
>>  /** @file
>>    Platform BDS customizations include file.
>>  
>> -  Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
>> +  Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
>>    This program and the accompanying materials
>>    are licensed and made available under the terms and conditions of the BSD 
>> License
>>    which accompanies this distribution.  The full text of the license may be 
>> found at
>> @@ -65,6 +65,7 @@ Abstract:
>>  #include <Guid/HobList.h>
>>  #include <Guid/GlobalVariable.h>
>>  #include <Guid/EventGroup.h>
>> +#include <Guid/DebugAgentGuid.h>
>>  
>>  #include <OvmfPlatforms.h>
>>  
>> @@ -144,6 +145,16 @@ extern VENDOR_DEVICE_PATH         
>> gTerminalTypeDeviceNode;
>>      DEVICE_PATH_MESSAGING_PC_ANSI \
>>    }
>>  
>> +#define gEndEntire \
>> +  { \
>> +    END_DEVICE_PATH_TYPE, \
>> +    END_ENTIRE_DEVICE_PATH_SUBTYPE, \
>> +    { \
>> +      END_DEVICE_PATH_LENGTH, \
>> +      0 \
>> +    } \
>> +  }
>> +
>>  #define PCI_CLASS_SCC          0x07
>>  #define PCI_SUBCLASS_SERIAL    0x00
>>  #define PCI_IF_16550           0x02
>> diff --git 
>> a/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf 
>> b/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>> index 4a6bece..f9e35c9 100644
>> --- a/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>> +++ b/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>> @@ -1,7 +1,7 @@
>>  ## @file
>>  #  Platform BDS customizations library.
>>  #
>> -#  Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
>> +#  Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>
>>  #  This program and the accompanying materials
>>  #  are licensed and made available under the terms and conditions of the 
>> BSD License
>>  #  which accompanies this distribution.  The full text of the license may 
>> be found at
>> @@ -36,6 +36,7 @@
>>    MdePkg/MdePkg.dec
>>    MdeModulePkg/MdeModulePkg.dec
>>    IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
>> +  SourceLevelDebugPkg/SourceLevelDebugPkg.dec
>>    OvmfPkg/OvmfPkg.dec
>>  
>>  [LibraryClasses]
>> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/PlatformData.c 
>> b/OvmfPkg/Library/PlatformBootManagerLib/PlatformData.c
>> index e9737a7..fa5cd7d 100644
>> --- a/OvmfPkg/Library/PlatformBootManagerLib/PlatformData.c
>> +++ b/OvmfPkg/Library/PlatformBootManagerLib/PlatformData.c
>> @@ -2,7 +2,7 @@
>>    Defined the platform specific device path which will be used by
>>    platform Bbd to perform the platform policy connect.
>>  
>> -  Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>
>> +  Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>
>>    This program and the accompanying materials
>>    are licensed and made available under the terms and conditions of the BSD 
>> License
>>    which accompanies this distribution.  The full text of the license may be 
>> found at
>> @@ -15,6 +15,17 @@
>>  
>>  #include "BdsPlatform.h"
>>  
>> +//
>> +// Debug Agent UART Device Path structure
>> +//
>> +typedef struct {
>> +  VENDOR_DEVICE_PATH        VendorHardware;
>> +  UART_DEVICE_PATH          Uart;
>> +  VENDOR_DEVICE_PATH        TerminalType;
>> +  EFI_DEVICE_PATH_PROTOCOL  End;
>> +} VENDOR_UART_DEVICE_PATH;
> 
> (1) I think this typedef should be wrapped in "#pragma pack (1)".
> 
>> +
>> +
>>  ACPI_HID_DEVICE_PATH       gPnpPs2KeyboardDeviceNode  = gPnpPs2Keyboard;
>>  ACPI_HID_DEVICE_PATH       gPnp16550ComPortDeviceNode = gPnp16550ComPort;
>>  UART_DEVICE_PATH           gUartDeviceNode            = gUart;
>> @@ -24,14 +35,48 @@ VENDOR_DEVICE_PATH         gTerminalTypeDeviceNode    = 
>> gPcAnsiTerminal;
>>  // Platform specific keyboard device path
>>  //
>>  
>> +
>> +//
>> +// Debug Agent UART Device Path
>> +//
>> +VENDOR_UART_DEVICE_PATH gDebugAgentUartDevicePath = {
>> +  {
>> +    {
>> +      HARDWARE_DEVICE_PATH,
>> +      HW_VENDOR_DP,
>> +      {
>> +        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
>> +        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
>> +      }
>> +    },
>> +    EFI_DEBUG_AGENT_GUID,
>> +  },
>> +  {
>> +    {
>> +      MESSAGING_DEVICE_PATH,
>> +      MSG_UART_DP,
>> +      {
>> +        (UINT8) (sizeof (UART_DEVICE_PATH)),
>> +        (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8)
>> +      }
>> +    },
>> +    0,  // Reserved
>> +    0,  // BaudRate - Default
>> +    0,  // DataBits - Default
>> +    0,  // Parity   - Default
>> +    0,  // StopBits - Default
>> +  },
>> +  gPcAnsiTerminal,
>> +  gEndEntire
>> +};
>> +
>> +
>>  //
>>  // Predefined platform default console device path
>>  //
>>  PLATFORM_CONSOLE_CONNECT_ENTRY   gPlatformConsole[] = {
>> -  {
>> -    NULL,
>> -    0
>> -  }
>> +  { (EFI_DEVICE_PATH_PROTOCOL *) &gDebugAgentUartDevicePath, (CONSOLE_OUT | 
>> CONSOLE_IN | STD_ERROR) },
> 
> (2) I'd like if we could split this long-ish line, so that the bitmask
> starts a separate line.
> 
> Do you prefer sending v4, or are you okay if I do these changes before
> pushing the patch?

Ugh, apologies (it's been a while since last year and it looks like I
got a bit rusty...) I forgot that: (3) you too can do the changes (if
you agree with them) and commit / push the patch at once, with my R-b.

So I guess that would be simplest.

Thanks!
Laszlo

> Thank you,
> Laszlo
> 
>> +  { NULL, 0 }
>>  };
>>  
>>  //
>>
> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to