REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3957
The reserved IDT table size in SecCore is too small for X64. Changed the type
of IdtTable in SEC_IDT_TABLE from UINT64 to IA32_IDT_GATE_DESCRIPTOR to have
sufficient size reserved in IdtTable for X64. dff

Cc: Chasel Chiu <[email protected]>
Cc: Nate DeSimone <[email protected]>
Cc: Ray Ni <[email protected]>
Cc: Ashraf Ali S <[email protected]>
Cc: Debkumar De <[email protected]>
Cc: Harry Han <[email protected]>
Cc: Catharine West <[email protected]>
Signed-off-by: Ted Kuo <[email protected]>
---
 UefiCpuPkg/SecCore/SecMain.c | 1 +
 UefiCpuPkg/SecCore/SecMain.h | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c
index 4edf0ce972..fe03d8019a 100644
--- a/UefiCpuPkg/SecCore/SecMain.c
+++ b/UefiCpuPkg/SecCore/SecMain.c
@@ -211,6 +211,7 @@ SecStartup (
 
   IdtTableInStack.PeiService = 0;
   for (Index = 0; Index < SEC_IDT_ENTRY_COUNT; Index++) {
+    ZeroMem ((VOID *)&IdtTableInStack.IdtTable[Index], sizeof 
(IA32_IDT_GATE_DESCRIPTOR));
     CopyMem ((VOID *)&IdtTableInStack.IdtTable[Index], (VOID 
*)&mIdtEntryTemplate, sizeof (UINT64));
   }
 
diff --git a/UefiCpuPkg/SecCore/SecMain.h b/UefiCpuPkg/SecCore/SecMain.h
index 189fcf9326..1be57c2248 100644
--- a/UefiCpuPkg/SecCore/SecMain.h
+++ b/UefiCpuPkg/SecCore/SecMain.h
@@ -43,8 +43,8 @@ typedef struct _SEC_IDT_TABLE {
   // Note: For IA32, only the 4 bytes immediately preceding IDT is used to 
store
   // EFI_PEI_SERVICES**
   //
-  UINT64    PeiService;
-  UINT64    IdtTable[SEC_IDT_ENTRY_COUNT];
+  UINT64                    PeiService;
+  IA32_IDT_GATE_DESCRIPTOR  IdtTable[SEC_IDT_ENTRY_COUNT];
 } SEC_IDT_TABLE;
 
 /**
-- 
2.35.3.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#91234): https://edk2.groups.io/g/devel/message/91234
Mute This Topic: https://groups.io/mt/92329472/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to