Isn't having a library print information to console out a pretty significant 
violation of the principles of the UEFI spec?

-Jaben

> -----Original Message-----
> From: Jeff Fan [mailto:jeff....@intel.com]
> Sent: Thursday, May 14, 2015 1:42 AM
> To: edk2-devel@lists.sourceforge.net
> Subject: [edk2] [Patch 2/2] SourceLevelDebugPkg/DebugAgentDxe: Move
> help info from DxeDebugAgent
> Importance: High
> 
> Now DxeDebugAgent Library instance will print help information on how to
> load DebugAgentDxe.efi in UEFI shell. But it is printed after Target connected
> to Host side. This fix is to move help info print to DebugAgentDxe module
> before Target tries to connect HOST. It could help developer to get useful
> information as early as possible.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jeff Fan <jeff....@intel.com>
> SourceLevelDebugPkg/DebugAgentDxe: Move help info from
> DxeDebugAgent
> 
> Now DxeDebugAgent Library instance will print help information on how to
> load DebugAgentDxe.efi in UEFI shell. But it is printed after Target connected
> to Host side. This fix is to move help info print to DebugAgentDxe module
> before Target tries to connect HOST. It could help developer to get useful
> information as early as possible.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jeff Fan <jeff....@intel.com>
> Cc: Ruiyu Ni <ruiyu...@intel.com>
> ---
>  SourceLevelDebugPkg/DebugAgentDxe/DebugAgentDxe.c  | 42
> +++++++++++++++++++++-
>  .../DebugAgent/DxeDebugAgent/DxeDebugAgentLib.c    | 29 ---------------
>  2 files changed, 41 insertions(+), 30 deletions(-)
> 
> diff --git a/SourceLevelDebugPkg/DebugAgentDxe/DebugAgentDxe.c
> b/SourceLevelDebugPkg/DebugAgentDxe/DebugAgentDxe.c
> index a55c5eb..f5ae59f 100644
> --- a/SourceLevelDebugPkg/DebugAgentDxe/DebugAgentDxe.c
> +++ b/SourceLevelDebugPkg/DebugAgentDxe/DebugAgentDxe.c
> @@ -1,7 +1,7 @@
>  /** @file
>    Initialize Debug Agent in DXE by invoking Debug Agent Library.
> 
> -Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2013 - 2015, 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
> @@ -16,6 +16,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY
> KIND, EITHER EXPRESS OR IMPLIED.
>  #include <Guid/EventGroup.h>
>  #include <Library/UefiBootServicesTableLib.h>
>  #include <Library/DebugAgentLib.h>
> +#include <Library/UefiLib.h>
> 
>  EFI_EVENT       mExitBootServiceEvent;
> 
> @@ -58,11 +59,42 @@ DebugAgentDxeInitialize(  {
>    EFI_STATUS      Status;
> 
> +  if (gST->ConOut != NULL) {
> +    Print (L"If the Debug Port is serial port, please make sure this serial 
> port
> isn't connected by");
> +    Print (L" ISA Serial driver\r\n");
> +    Print (L"You could do the following steps to disconnect the serial
> port:\r\n");
> +    Print (L"1: Shell> drivers\r\n");
> +    Print (L"   ...\r\n");
> +    Print (L"   V  VERSION  E G G #D #C DRIVER NAME                         
> IMAGE
> NAME\r\n");
> +    Print (L"   == ======== = = = == ==
> ===================================
> ===================\r\n");
> +    Print (L"   8F 0000000A B - -  1 14 PCI Bus Driver                      
> PciBusDxe\r\n");
> +    Print (L"   91 00000010 ? - -  -  - ATA Bus Driver                      
> AtaBusDxe\r\n");
> +    Print (L"   ...\r\n");
> +    Print (L"   A7 0000000A B - -  1  1 ISA Serial Driver
> IsaSerialDxe\r\n");
> +    Print (L"   ...\r\n");
> +    Print (L"2: Shell> dh -d A7\r\n");
> +    Print (L"   A7: Image(IsaSerialDxe) ImageDevPath (..9FB3-11D4-9A3A-
> 0090273FC14D))DriverBinding");
> +    Print (L" ComponentName ComponentName2\r\n");
> +    Print (L"        Driver Name    : ISA Serial Driver\r\n");
> +    Print (L"        Image Name     : FvFile(93B80003-9FB3-11D4-9A3A-
> 0090273FC14D)\r\n");
> +    Print (L"        Driver Version : 0000000A\r\n");
> +    Print (L"        Driver Type    : BUS\r\n");
> +    Print (L"        Configuration  : NO\r\n");
> +    Print (L"        Diagnostics    : NO\r\n");
> +    Print (L"        Managing       :\r\n");
> +    Print (L"          Ctrl[EA] : 
> PciRoot(0x0)/Pci(0x1F,0x0)/Serial(0x0)\r\n");
> +    Print (L"            Child[EB] :
> PciRoot(0x0)/Pci(0x1F,0x0)/Serial(0x0)/Uart(115200,8,N,1)\r\n");
> +    Print (L"3: Shell> disconnect EA\r\n");
> +    Print (L"4: Shell> load -nc DebugAgentDxe.efi\r\n\r\n");  }
>    Status = EFI_UNSUPPORTED;
>    InitializeDebugAgent (DEBUG_AGENT_INIT_DXE_LOAD, &Status, NULL);
>    if (EFI_ERROR (Status)) {
>      return Status;
>    }
> +  if (gST->ConOut != NULL) {
> +    Print (L"Debug Agent: Initialized successfully!\r\n\r\n");  }
>    //
>    // Create event to disable Debug Timer interrupt when exit boot service.
>    //
> @@ -98,6 +130,14 @@ DebugAgentDxeUnload (
> 
>    Status = EFI_UNSUPPORTED;
>    InitializeDebugAgent (DEBUG_AGENT_INIT_DXE_UNLOAD, &Status, NULL);
> +  switch (Status) {
> +  case EFI_ACCESS_DENIED:
> +    Print (L"Debug Agent: Host is still connected, please de-attach TARGET
> firstly!\r\n");
> +    break;
> +  case EFI_NOT_STARTED:
> +    Print (L"Debug Agent: It hasn't been initialized, cannot unload 
> it!\r\n");
> +    break;
> +  }
> 
>    return Status;
>  }
> diff --git
> a/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugA
> gentLib.c
> b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugA
> gentLib.c
> index 6af934a..d178f36 100644
> ---
> a/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugA
> gentLib.c
> +++
> b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugA
> gent
> +++ Lib.c
> @@ -433,39 +433,11 @@ InitializeDebugAgent (
> 
>      *(EFI_STATUS *)Context = EFI_SUCCESS;
> 
> -    if (gST->ConOut != NULL) {
> -      Print (L"Debug Agent: Initialized successfully!\r\n");
> -      Print (L"If the Debug Port is serial port, please make sure this 
> serial port
> isn't connected by ISA Serial driver\r\n");
> -      Print (L"You could do the following steps to disconnect the serial
> port:\r\n");
> -      Print (L"1: Shell> drivers\r\n");
> -      Print (L"   ...\r\n");
> -      Print (L"   V  VERSION  E G G #D #C DRIVER NAME                        
>  IMAGE
> NAME\r\n");
> -      Print (L"   == ======== = = = == ==
> ===================================
> ===================\r\n");
> -      Print (L"   8F 0000000A B - -  1 14 PCI Bus Driver                     
>  PciBusDxe\r\n");
> -      Print (L"   91 00000010 ? - -  -  - ATA Bus Driver                     
>  AtaBusDxe\r\n");
> -      Print (L"   ...\r\n");
> -      Print (L"   A7 0000000A B - -  1  1 ISA Serial Driver
> IsaSerialDxe\r\n");
> -      Print (L"   ...\r\n");
> -      Print (L"2: Shell> dh -d A7\r\n");
> -      Print (L"   A7: Image(IsaSerialDxe) ImageDevPath (..9FB3-11D4-9A3A-
> 0090273FC14D))DriverBinding ComponentName ComponentName2\r\n");
> -      Print (L"        Driver Name    : ISA Serial Driver\r\n");
> -      Print (L"        Image Name     : FvFile(93B80003-9FB3-11D4-9A3A-
> 0090273FC14D)\r\n");
> -      Print (L"        Driver Version : 0000000A\r\n");
> -      Print (L"        Driver Type    : BUS\r\n");
> -      Print (L"        Configuration  : NO\r\n");
> -      Print (L"        Diagnostics    : NO\r\n");
> -      Print (L"        Managing       :\r\n");
> -      Print (L"          Ctrl[EA] : 
> PciRoot(0x0)/Pci(0x1F,0x0)/Serial(0x0)\r\n");
> -      Print (L"            Child[EB] :
> PciRoot(0x0)/Pci(0x1F,0x0)/Serial(0x0)/Uart(115200,8,N,1)\r\n");
> -      Print (L"3: Shell> disconnect EA\r\n");
> -      Print (L"4: Shell> load -nc DebugAgentDxe.efi\r\n\r\n");
> -    }
>      break;
> 
>    case DEBUG_AGENT_INIT_DXE_UNLOAD:
>      if (mDebugAgentInitialized) {
>        if (IsHostAttached ()) {
> -        Print (L"Debug Agent: Host is still connected, please de-attach 
> TARGET
> firstly!\r\n");
>          *(EFI_STATUS *)Context = EFI_ACCESS_DENIED;
>          //
>          // Enable Debug Timer interrupt again @@ -484,7 +456,6 @@
> InitializeDebugAgent (
>          *(EFI_STATUS *)Context = EFI_SUCCESS;
>        }
>      } else {
> -      Print (L"Debug Agent: It hasn't been initialized, cannot unload 
> it!\r\n");
>        *(EFI_STATUS *)Context = EFI_NOT_STARTED;
>      }
> 
> --
> 1.9.5.msysgit.0
> 
> 
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to