From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web08.39644.1656315805164350899 for ; Mon, 27 Jun 2022 00:43:26 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Rzd5sUop; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: ted.kuo@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1656315806; x=1687851806; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xbkzb03mHdvDhIWoDKjrYWWM3y3/ALcfPn6E+ructog=; b=Rzd5sUopzpam2WOdJA3l86gXDKMu74V4zhbQT1F403MCYY/mHaI3H2jt BVDmhoVcnb1/FHcPcwxUz4PYqT7nskVCLG0LSn92/0HQinY1ssMd5GTU1 /evJty0HZZthVup45V7TnPcCNmTYfQjsGjdGQoOswVWjUQgZPrfkBgM+p UnyVhSYPZ15Gbv/U9GKr/mDD3ejUniYOeilQpDNmTzFnt86+UIZk4sv+0 WyNDdmKtfTx35ReFfBzEojI8DTpx/PPqqPQbEANkfmoCtLZ5VZNTD4XDO 2cylKISpbb5/reByjyJMIj7ywior83YtP0BEhRtlBS7OtgnUzxXS47GVt Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10390"; a="264430824" X-IronPort-AV: E=Sophos;i="5.92,225,1650956400"; d="scan'208";a="264430824" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jun 2022 00:43:26 -0700 X-IronPort-AV: E=Sophos;i="5.92,225,1650956400"; d="scan'208";a="540022953" Received: from tedkuo1-win10.gar.corp.intel.com ([10.5.215.13]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jun 2022 00:43:24 -0700 From: "Kuo, Ted" To: devel@edk2.groups.io Cc: Chasel Chiu , Nate DeSimone , Ray Ni , Ashraf Ali S , Debkumar De , Harry Han , Catharine West Subject: [edk2-devel][PATCH v1 1/2] UefiCpuPkg: Update SEC_IDT_TABLE struct Date: Mon, 27 Jun 2022 15:42:58 +0800 Message-Id: X-Mailer: git-send-email 2.35.3.windows.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3957 The reserved IDT table size in SecCore is too small for X64. Changed the ty= pe 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 Cc: Nate DeSimone Cc: Ray Ni Cc: Ashraf Ali S Cc: Debkumar De Cc: Harry Han Cc: Catharine West Signed-off-by: Ted Kuo --- 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 a7526be9dd..d7140c2db3 100644 --- a/UefiCpuPkg/SecCore/SecMain.c +++ b/UefiCpuPkg/SecCore/SecMain.c @@ -202,6 +202,7 @@ SecStartup ( =0D IdtTableInStack.PeiService =3D 0;=0D for (Index =3D 0; Index < SEC_IDT_ENTRY_COUNT; Index++) {=0D + ZeroMem ((VOID *)&IdtTableInStack.IdtTable[Index], sizeof (IA32_IDT_GA= TE_DESCRIPTOR));=0D CopyMem ((VOID *)&IdtTableInStack.IdtTable[Index], (VOID *)&mIdtEntryT= emplate, sizeof (UINT64));=0D }=0D =0D 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=0D // EFI_PEI_SERVICES**=0D //=0D - UINT64 PeiService;=0D - UINT64 IdtTable[SEC_IDT_ENTRY_COUNT];=0D + UINT64 PeiService;=0D + IA32_IDT_GATE_DESCRIPTOR IdtTable[SEC_IDT_ENTRY_COUNT];=0D } SEC_IDT_TABLE;=0D =0D /**=0D --=20 2.26.2.windows.1