UINTN mSavedDebugRegisters[6];\r
IA32_IDT_GATE_DESCRIPTOR mIdtEntryTable[33];\r
BOOLEAN mSkipBreakpoint = FALSE;\r
+BOOLEAN mSmmDebugIdtInitFlag = FALSE;\r
\r
CHAR8 mWarningMsgIgnoreSmmEntryBreak[] = "Ignore smmentrybreak setting for SMI issued during DXE debugging!\r\n";\r
\r
\r
case DEBUG_AGENT_INIT_ENTER_SMI:\r
SaveDebugRegister ();\r
- InitializeDebugIdt ();\r
+ if (!mSmmDebugIdtInitFlag) {\r
+ //\r
+ // We only need to initialize Debug IDT table at first SMI entry\r
+ // after SMM relocation.\r
+ //\r
+ InitializeDebugIdt ();\r
+ mSmmDebugIdtInitFlag = TRUE;\r
+ }\r
//\r
// Check if CPU APIC Timer is working, otherwise initialize it.\r
//\r