You've already forked slimbootloader
mirror of
https://github.com/Dasharo/slimbootloader.git
synced 2026-03-06 15:26:20 -08:00
b6697f12a8
* Enable DebugAgentLib to support source level debug over serial By default, source level debug is NOT enabled. ENABLE_SOURCE_DEBUG needs to be set to 1 in BoardConfig.py of each Platforms. - self.ENABLE_SOURCE_DEBUG = 1 As an initial drop, there are some limitations on APL platform. - Stage1A does not include DebugAgentLib due to Stage1A size limitation(32KB). Further optimization is required. - DebugAgentLib supports ONLY POSTMEM debugging on APL currently. Refer to EDKII Debugging: - https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Debugging - https://github.com/tianocore/tianocore.github.io/wiki/SourceLevelDebugPkg Change-Id: Ia28c5470bc5755768f2b380cc1dabbcb8ee60f0d Signed-off-by: Aiden Park <aiden.park@intel.com> * Additional changes for DebugAgent - Adjust stage size depending on ENABLE_SOURCE_DEBUG Pcd value - Add PeCoffFindAndReportImageInfo - Fix debugger hang at Shell Change-Id: I11b41e5ad610fcb2999e9d43e5dd8f8899e8265a Signed-off-by: Aiden Park <aiden.park@intel.com> * Move PeCoffFindAndReportImageInfo() from LitePeCoffLib to DebugAgentLib Change-Id: I2c4ab4f9561dfd0536da1820048f0e5f2660e2ab Signed-off-by: Aiden Park <aiden.park@intel.com>
90 lines
2.6 KiB
C
90 lines
2.6 KiB
C
/** @file
|
|
Debug Agent library implementition with empty functions.
|
|
|
|
Copyright (c) 2018, 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
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
**/
|
|
|
|
#include <Library/DebugAgentLib.h>
|
|
|
|
/**
|
|
Update IDT entries for DebugAgent whenever IDT base is re-configured
|
|
|
|
@param[in] IdtDescriptor IDT descriptor which needs to be updated
|
|
@param[in] Function Continue function called by debug agent library
|
|
|
|
**/
|
|
VOID
|
|
UpdateDebugAgentIdt (
|
|
IN IA32_DESCRIPTOR *IdtDescriptor,
|
|
IN DEBUG_AGENT_CONTINUE Function
|
|
)
|
|
{
|
|
if (Function != NULL) {
|
|
Function (IdtDescriptor);
|
|
}
|
|
}
|
|
|
|
/**
|
|
Initialize debug agent.
|
|
|
|
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().
|
|
|
|
If the parameter Function is not NULL, Debug Agent Library 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 DEBUG_AGENT_CONTINUE Function OPTIONAL
|
|
)
|
|
{
|
|
if (Function != NULL) {
|
|
Function (Context);
|
|
}
|
|
}
|
|
|
|
/**
|
|
Enable/Disable the interrupt of debug timer and return the interrupt state
|
|
prior to the operation.
|
|
|
|
If EnableStatus is TRUE, enable the interrupt of debug timer.
|
|
If EnableStatus is FALSE, disable the interrupt of debug timer.
|
|
|
|
@param[in] EnableStatus Enable/Disable.
|
|
|
|
@return FALSE always.
|
|
|
|
**/
|
|
BOOLEAN
|
|
EFIAPI
|
|
SaveAndSetDebugTimerInterrupt (
|
|
IN BOOLEAN EnableStatus
|
|
)
|
|
{
|
|
return FALSE;
|
|
}
|