public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Michael Kinney <michael.d.kinney@intel.com>, edk2-devel@ml01.01.org
Cc: Jordan Justen <jordan.l.justen@intel.com>, Jeff Fan <jeff.fan@intel.com>
Subject: Re: [Patch v3] OvmgPkg/PlatformBootManagerLib: Add Debug Agent console
Date: Mon, 9 Jan 2017 20:43:42 +0100	[thread overview]
Message-ID: <ccbd0d6a-91c8-aa8e-3d93-dd2b868dc021@redhat.com> (raw)
In-Reply-To: <6cbaade1-9c9e-6708-f408-a3365f461059@redhat.com>

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.justen@intel.com>
>> Cc: Laszlo Ersek <lersek@redhat.com>
>> Cc: Jeff Fan <jeff.fan@intel.com>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Michael Kinney <michael.d.kinney@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 <lersek@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 }
>>  };
>>  
>>  //
>>
> 



  reply	other threads:[~2017-01-09 19:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-09 18:02 [Patch v3] OvmgPkg/PlatformBootManagerLib: Add Debug Agent console Michael Kinney
2017-01-09 19:33 ` Laszlo Ersek
2017-01-09 19:43   ` Laszlo Ersek [this message]
2017-01-10 20:56     ` Kinney, Michael D

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ccbd0d6a-91c8-aa8e-3d93-dd2b868dc021@redhat.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox