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/DxeDebugAgentLib.c 
b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAgentLib.c
index 6af934a..d178f36 100644
--- a/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAgentLib.c
+++ b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAgentLib.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

Reply via email to