summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Fan <jeff.fan@intel.com>2015-05-18 01:21:30 +0000
committervanjeff <vanjeff@Edk2>2015-05-18 01:21:30 +0000
commitb057be47f732b86496e2c1b997972d31953a1198 (patch)
tree7992a5313b4b5468b90efa64d2c85110fab1f863
parentadcc2727dfef1fce28cae61960ecf7b4eea889c6 (diff)
downloadedk2-platforms-b057be47f732b86496e2c1b997972d31953a1198.tar.xz
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.fan@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17458 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--SourceLevelDebugPkg/DebugAgentDxe/DebugAgentDxe.c42
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAgentLib.c29
2 files changed, 41 insertions, 30 deletions
diff --git a/SourceLevelDebugPkg/DebugAgentDxe/DebugAgentDxe.c b/SourceLevelDebugPkg/DebugAgentDxe/DebugAgentDxe.c
index a55c5eb49e..f5ae59fcb4 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 f1cb7d5601..8fa0f5c545 100644
--- a/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAgentLib.c
+++ b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAgentLib.c
@@ -437,39 +437,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
@@ -488,7 +460,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;
}