1. DebugAgentLib will install reserved vector table to persist vectors.
2. Update PeCoffExtraActionLib to detect if debug agent initialized or not by checking each IDT entry instead of whole IDT table. 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@14886 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -192,6 +192,19 @@ InitializeDebugAgent (
|
||||
|
||||
switch (InitFlag) {
|
||||
case DEBUG_AGENT_INIT_SMM:
|
||||
//
|
||||
// Install configuration table for persisted vector handoff info
|
||||
//
|
||||
Status = gSmst->SmmInstallConfigurationTable (
|
||||
gSmst,
|
||||
&gEfiVectorHandoffTableGuid,
|
||||
(VOID *) &mVectorHandoffInfoDebugAgent[0],
|
||||
sizeof (EFI_VECTOR_HANDOFF_INFO) * mVectorHandoffInfoCount
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((EFI_D_ERROR, "DebugAgent: Cannot install configuration table for persisted vector handoff info!\n"));
|
||||
CpuDeadLoop ();
|
||||
}
|
||||
//
|
||||
// Check if Debug Agent initialized in DXE phase
|
||||
//
|
||||
@ -210,7 +223,7 @@ InitializeDebugAgent (
|
||||
break;
|
||||
}
|
||||
//
|
||||
// Debug Agent was not initialized before, uset the local mailbox.
|
||||
// Debug Agent was not initialized before, use the local mailbox.
|
||||
//
|
||||
ZeroMem (&mLocalMailbox, sizeof (DEBUG_AGENT_MAILBOX));
|
||||
Mailbox = &mLocalMailbox;
|
||||
|
Reference in New Issue
Block a user