Fix more InitializeDebugAgent API change bugs. GDB stub was not turned on in example platforms.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10687 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
andrewfish 2010-07-23 15:25:32 +00:00
parent 7c137cae5a
commit 685f8c7600
4 changed files with 50 additions and 10 deletions

View File

@ -109,7 +109,8 @@
OmapLib|Omap35xxPkg/Library/OmapLib/OmapLib.inf
OmapDmaLib|Omap35xxPkg/Library/OmapDmaLib/OmapDmaLib.inf
EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
DebugAgentTimerLib|Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
GdbSerialLib|Omap35xxPkg/Library/GdbSerialLib/GdbSerialLib.inf
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
@ -129,6 +130,9 @@
# 1/123 faster than Stm or Vstm version
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
# Uncomment to turn on GDB stub in SEC.
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
[LibraryClasses.common.PEI_CORE]
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf

View File

@ -15,7 +15,6 @@
#include <GdbDebugAgent.h>
#include <Library/CacheMaintenanceLib.h>
#include <Library/PrintLib.h>
#include <Library/ArmLib.h>
@ -597,17 +596,31 @@ GdbFPutString (
/**
Initialize debug agent.
This function is used to set up debug enviroment. It may enable interrupts.
This function is used to set up debug environment to support source level debugging.
If certain Debug Agent Library instance has to save some private data in the stack,
this function must work on the mode that doesn't return to the caller, then
the caller needs to wrap up all rest of logic after InitializeDebugAgent() into one
function and pass it into InitializeDebugAgent(). InitializeDebugAgent() is
responsible to invoke the passing-in function at the end of InitializeDebugAgent().
@param[in] InitFlag Init flag is used to decide initialize process.
@param[in] Context Context needed according to InitFlag, it was optional.
If the parameter Function is not NULL, Debug Agent Libary instance will invoke it by
passing in the Context to be its parameter.
If Function() is NULL, Debug Agent Library instance will return after setup debug
environment.
@param[in] InitFlag Init flag is used to decide the initialize process.
@param[in] Context Context needed according to InitFlag; it was optional.
@param[in] Function Continue function called by debug agent library; it was
optional.
**/
VOID
EFIAPI
InitializeDebugAgent (
IN UINT32 InitFlag,
IN VOID *Context OPTIONAL
IN VOID *Context, OPTIONAL
IN DEBUG_AGENT_CONTINUE Function OPTIONAL
)
{
UINTN Offset;
@ -653,6 +666,10 @@ InitializeDebugAgent (
ArmEnableInterrupts ();
}
if (Function != NULL) {
Function (Context);
}
return;
}

View File

@ -26,6 +26,7 @@
#include <Library/PrintLib.h>
#include <Library/CacheMaintenanceLib.h>
#include <Library/DebugAgentTimerLib.h>
#include <Library/DebugAgentLib.h>
#include <IndustryStandard/PeImage.h>
#include <Protocol/DebugSupport.h>

View File

@ -915,19 +915,37 @@ RemoveBreakPoint (
/**
Initialize debug agent.
This function is used to set up debug enviroment. It may enable interrupts.
This function is used to set up debug environment to support source level debugging.
If certain Debug Agent Library instance has to save some private data in the stack,
this function must work on the mode that doesn't return to the caller, then
the caller needs to wrap up all rest of logic after InitializeDebugAgent() into one
function and pass it into InitializeDebugAgent(). InitializeDebugAgent() is
responsible to invoke the passing-in function at the end of InitializeDebugAgent().
@param[in] InitFlag Init flag is used to decide initialize process.
@param[in] Context Context needed according to InitFlag, it was optional.
If the parameter Function is not NULL, Debug Agent Libary instance will invoke it by
passing in the Context to be its parameter.
If Function() is NULL, Debug Agent Library instance will return after setup debug
environment.
@param[in] InitFlag Init flag is used to decide the initialize process.
@param[in] Context Context needed according to InitFlag; it was optional.
@param[in] Function Continue function called by debug agent library; it was
optional.
**/
VOID
EFIAPI
InitializeDebugAgent (
IN UINT32 InitFlag,
IN VOID *Context OPTIONAL
IN VOID *Context, OPTIONAL
IN DEBUG_AGENT_CONTINUE Function OPTIONAL
)
{
// BugBug: Add the code to build an GDT/IDT
if (Function != NULL) {
Function (Context);
}
}