Start DebugAgent from the beginning of Stage1B

Hardware Breakpoints must be used during CAR execution until
memory has been initiailzed for APL platform.

In order to use Hareware Breakpoints in UDK debugger, add
FlashRange in UDK config file and force to cover CAR area.
In SoftDebugger.ini of Windows UDK Debugger
Or In /etc/udkdebugger.conf of Linux UDK Debugger
  [Target System]
  FlashRange        = 0xFEF00000:0x1100000

Additionally,
  added Stage1BBase in STAGE1A_HOB
  fixed Stage1A module base report

Change-Id: I717f87bf141168de0b0987eb309fd4c5d48d3c14
Signed-off-by: Aiden Park <aiden.park@intel.com>
This commit is contained in:
Aiden Park 2018-10-16 11:48:05 -07:00 committed by Maurice Ma
parent 2373df3eb1
commit e74b4e5ce5
4 changed files with 8 additions and 4 deletions

View File

@ -62,6 +62,7 @@ typedef struct {
UINT32 VerInfoBase;
UINT32 AllocDataBase;
UINT32 AllocDataLen;
UINT32 Stage1BBase;
} STAGE1A_HOB;
typedef struct {

View File

@ -134,7 +134,7 @@ SecStartup2 (
Stage1aAsmHob = (STAGE1A_ASM_HOB *)Params;
Src = PcdGet32 (PcdStage1AFdBase) + PcdGet32 (PcdFSPTSize);
PeCoffFindAndReportImageInfo (Src);
PeCoffFindAndReportImageInfo ((UINT32) (UINTN) GET_STAGE_MODULE_BASE (Src));
LdrGlobal = GetLoaderGlobalDataPointer ();
@ -405,6 +405,7 @@ ContinueFunc (
PeCoffFindAndReportImageInfo ((UINT32) GET_STAGE_MODULE_BASE (StageBase));
StageEntry = (STAGE_ENTRY) GET_STAGE_MODULE_ENTRY (StageBase);
if (StageEntry != NULL) {
Stage1aHob->Stage1BBase = StageBase;
StageEntry (Stage1aHob);
}
}

View File

@ -278,11 +278,15 @@ SecStartup2 (
DEBUG ((DEBUG_INFO, "\n============= Intel Slim Bootloader STAGE1B =============\n"));
Stage1aHob = (STAGE1A_HOB *) Params;
if (Stage1aHob->Stage1BBase != 0) {
PeCoffFindAndReportImageInfo ((UINT32) (UINTN) GET_STAGE_MODULE_BASE (Stage1aHob->Stage1BBase));
}
// Reload Exception handler
UpdateExceptionHandler (NULL);
// Migrate data from Stage1A HOB to Stage1B HOB
Stage1aHob = (STAGE1A_HOB *)Params;
ZeroMem (&Stage1bHob, sizeof (STAGE1B_HOB));
Stage1bHob.CarBase = Stage1aHob->CarBase;
Stage1bHob.CarTop = Stage1aHob->CarTop;
@ -382,8 +386,6 @@ SecStartup2 (
RemapStage ();
}
PeCoffFindAndReportImageInfo ((UINT32) (UINTN) SecStartup2);
OldStatus = SaveAndSetDebugTimerInterrupt (FALSE);
InitializeDebugAgent (DEBUG_AGENT_INIT_POSTMEM_SEC, NULL, NULL);
SaveAndSetDebugTimerInterrupt (OldStatus);

0
BootloaderCorePkg/Stage1B/Stage1B.inf Executable file → Normal file
View File