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