From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web08.6862.1653379335459851362 for ; Tue, 24 May 2022 01:02:16 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=SNlUb2oA; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653379335; x=1684915335; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=vQBT5sOMQF00B+4eAI9hGV4f9w/rczV8apWfk89q6hA=; b=SNlUb2oAj/ePGGs1TWAWkif7kke5x5yq8QAvADKJttlfiStDDGVFk09H TpziW3Rd1GWVjytzf8KR4LFIE6Rr3UmcFP+XvRUOPV7ASuOB5HBDFCj+r SiLwrey0kkhErIcE5f3+OGQ8qZvIRgXdJ8jPgJb8tvU+lieMZTelTis7g jBLrzH4VX3qxj7wVJxKgp/Fl49Zi7lwhhQ92q4+yaBYK+PIdQ1Ujx8TpL JkhmEcnFmBhXPyKps5r3yG7zloPeN3hhrVShRKfCWpmP+OeHre5ewGr6O 8Bg6k2MkMPgeC3dR/QL1sHXWJs0Fc1P8v8OdU8Nq8mz6ZnV0AEmGSBXp9 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10356"; a="253336509" X-IronPort-AV: E=Sophos;i="5.91,248,1647327600"; d="scan'208";a="253336509" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2022 01:01:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,248,1647327600"; d="scan'208";a="703369947" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga004.jf.intel.com with ESMTP; 24 May 2022 01:01:53 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 24 May 2022 01:01:53 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 24 May 2022 01:01:52 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Tue, 24 May 2022 01:01:52 -0700 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.45) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Tue, 24 May 2022 01:01:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ggY88BSvesEHYRw9ELfWcig2FRY2tjQ5wnC1sbhly+LlgwZmVnkBHVhABZXg6uA3ZCex+SEQHgEIbS/GMo0RZjj8XXeR+oAO+RpDi9yo+BJR2AcshLi3EVEYJlcSwbQ+jAwZwKfLDKqb1tWFG+HB0VDXccT93pxqghQnR0wTzT8UhTvJuncIKsokpuLAxP/W6pMkFSYPFfdRFDBj22U2tm6ZE9o5zLaHGL12XnKkVnAwswAcFaP35Apa8ZAzoS+38sXTsifm16Ogi4Fej+BmftAk54mdTzlw5Oca1v3DupTHxKrvlMwLSsmRLw7lm1uk7h62W09Cum/YEVx4rBKCSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CsTn/lO7pUAEb7zzArLq3I/VW1qkacUJbeahCGxVli4=; b=kPikxwVwHcsWd7gnVbNdBaaNdF1PEk5YUDXGqnnRPorgUnlgmltkUkNa8a/f1uS7EkHJHy6CThqKN0DfiSWGZ7nACNNv/q186ksDOx2AF6F8VO7P2+Yq5TGnMX/8cdm1/6DO2LYiJwtxzM+u72tV9hfaOb2WfFYSjV4iu//zTYojPA2R+RwewgwqLPNzUN/0LVmpbFuKTPBJjDG/P+a+0EZVuzoJhQZy6XV2fbTCBhH74kf0DlFsQx8EHhkEToePDAPYNtZg4ab0tRJXYNz6keePkkhUX0rKS1ithgurizza6zkLGjEE1w9LdGn95iG9Ti2zeT3qgVNfQK7+DrwWHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MWHPR11MB1631.namprd11.prod.outlook.com (2603:10b6:301:10::10) by PH0PR11MB4855.namprd11.prod.outlook.com (2603:10b6:510:41::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13; Tue, 24 May 2022 08:01:50 +0000 Received: from MWHPR11MB1631.namprd11.prod.outlook.com ([fe80::901a:95d1:76f8:d69d]) by MWHPR11MB1631.namprd11.prod.outlook.com ([fe80::901a:95d1:76f8:d69d%11]) with mapi id 15.20.5273.023; Tue, 24 May 2022 08:01:49 +0000 From: "Ni, Ray" To: "Wang, Jian J" , "devel@edk2.groups.io" CC: "Dong, Eric" Subject: Re: [edk2-devel] [PATCH 1/5] CpuException: Avoid allocating code pages for DXE instance Thread-Topic: [edk2-devel] [PATCH 1/5] CpuException: Avoid allocating code pages for DXE instance Thread-Index: AQHYbfqZaLyqq25vnkyVAvRFCQsJ/a0trDcJ Date: Tue, 24 May 2022 08:01:49 +0000 Message-ID: References: <20220520141549.108-1-ray.ni@intel.com> <20220520141549.108-2-ray.ni@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 166b31dc-db26-05c0-cb45-2fafd1837010 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 61234b6a-e90e-4cc0-7fe5-08da3d5ba800 x-ms-traffictypediagnostic: PH0PR11MB4855:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 89Na4+ueHbZ+OOnjN15jarvVmCYWQwoE3zAUFO+sdCRk0VpfWJy6/KktHY6a7VdgAGAW57cWTEQRBfstXJfHgUQrqU4WfLnGr45ZajduHTiJVVxlS3fQbGlJtKnEbSTwg1EH14ydXk1L/HTjBkR/Uv5rSJ9d1zrNOjRxnlxZPIqsL3KyQYA4igwAfadwRgT7eGaMKOmW2MNJrSiUWfXPnEO8CFbLoIdLa6D6pYbiHaXT7Q8rTDme9bTQdRyM7J829y37bVtEyUbl2dtzY3HNfLEqazZL3oMZLa7fpJOznVMIJQVPZZH179F49ArnOcb1MQxgPwiI7QQxgAUV1pGJ2VCni0vVhjsedSqqFhihw9LCPHXoEAgLfMr/UFbcRjKoyJ3hmfSEyToIaIT2Zktozy7sWNyIU59X4IL3A62hNluVho0s0mXcIdtdO83ESujBppAK1isu//k6zBxKNYv9CjRR180s2Vulkrn0gjTS6UEvfPOcpDnt9r7+HXGEYf3UVl5Ucd4mnk3DDaFoe17ZlL6p9V77L/LK83qGb8Rs77pGiNoioEf+xnnnGJ8HAk3yE+82CVQUhN5gXVra9/1H8zs723LUsUpCLUk1TTEJROMAyTJQy1ggAYzaFiE1pD0z7prgaaEdjU7L7hXFMbT/qlLNroptoVe8dN7o/oEwxLGpoN6qH9wcb3kTgEuQE3NIXhL5q/cHL2N9yWmvcgOAIRn9WQMRMqjCQ4tGqPDD3s01K3rQY9Y3ubThCeK8DwutTkE279OVp3UHDfj730DX3uE8UH4XZUCgAGmu5z/JTAWmpX7e/DkbfBxtCOm01QW6y3qdMv7r8HjN9JWYruhL8w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1631.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(26005)(71200400001)(19627235002)(9686003)(966005)(508600001)(55016003)(52536014)(5660300002)(8936002)(6506007)(2906002)(33656002)(53546011)(7696005)(8676002)(38070700005)(4326008)(316002)(122000001)(83380400001)(110136005)(38100700002)(82960400001)(66476007)(66946007)(76116006)(186003)(66556008)(86362001)(66446008)(107886003)(91956017)(64756008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?fNXDctv+xfbPO+QZJLwGhVJT5sF1q+lYTJ+fBx1A2/HLQYAmd3A9RDDoSW?= =?iso-8859-1?Q?/LXmBwa7A0nExsx4fBVvK/ZuThfco6M1VKtnrEC+JGZmwy1pC2BR7gzPfg?= =?iso-8859-1?Q?VvLpj6dGOLrIea36La0+sddfdbmVgNW5YmxITf/isoCd7dXHP5nJixRVDu?= =?iso-8859-1?Q?v/YDVUI/lgthbnVD0xy5t39PD6UB5RBdsO8UJ4a9Hy1TNOBkuvMAFYgguo?= =?iso-8859-1?Q?MsikrLYU3u/fafdowoCBFGXBEz9GNRKT5QxUUJPSWANfAyn7n5b6dq7Xs+?= =?iso-8859-1?Q?FcM0RKp54g0LYX0Ix2UR4XRneoGWyhW6b22206pLsTyBkpZsvVoEqY+zTO?= =?iso-8859-1?Q?H9mVagpGeBn+svej2nnxuqK2+4WRZWVpmIPU5eWUNO9Mgof1lTnOc9Uw84?= =?iso-8859-1?Q?MFnF3dkCUJjm40+tiAYop1f0ohOCO6oJVWmqltlj342UffTTp4Uom0N2/L?= =?iso-8859-1?Q?c6gge0vmyzt4KaD4ymrJYvYKX1yXW/zHvtovFxtjAeGiQ/g2CKpnl6jUFW?= =?iso-8859-1?Q?u85kBG2/CqbgTvcD45mwL7hIUTgxPEBh7xRVbrC4wYr8D4U7K0ck6GNAz3?= =?iso-8859-1?Q?ohXvn+x6U7R/pUqZLoBHxhjFqfgfgUhsXYzTqSj1WFw5KktXEQpEmygkQa?= =?iso-8859-1?Q?Iy6+b7nnMHd8xxz0+dNhR+iOr8o/AWAclExbuxy6MPHl1sCyAd1DMHksk+?= =?iso-8859-1?Q?aLY3wzI490kkYYcZ+tz6MOZ8Jd/CKEOTRg4YhZvwmGJZVl0RKGCTtMfHdx?= =?iso-8859-1?Q?Mc5J91RsAu/dHU8WjYhniiH7mbrggNeMfDHBCAU+OPlCcPMUWXABnQFgE3?= =?iso-8859-1?Q?jDyy6Djq/8rErkr1SiOl2hid7+rhssStgFYqIO6ByYoBSnf9Ir52ULXe92?= =?iso-8859-1?Q?ktbXzDD64CNLtWfZwHM/loY1CGFJw/sIEVubxs3oXabvLTKkmUvLpEEbss?= =?iso-8859-1?Q?jSnkt8AD5xoDi/z9hMFzU8dxNtj+pcHQzPhaq7AUsC0zrajp3xWKweba8o?= =?iso-8859-1?Q?/fJ3ROzvUuEw40J3H8NOMVYT5i6Th3QBJrdIc8IOZfQcS7n+y+QP+AY3FF?= =?iso-8859-1?Q?4lyvqbprdKEKx7uj1Z0NtqDFeR3gt8jMlPxK1vQZXcUOxs6WJP0CEbw5Kb?= =?iso-8859-1?Q?Oksqs5cc+Q1pES9xnPpUCAi/QSG5lFNMDH3reA1ufJWfgDnlAqQ8qn31+B?= =?iso-8859-1?Q?RMz3tmDkAqEHQLzVyftQTVR/E9d2URQkpRhbkR9DhdcYkNE0MlQIgVyzw3?= =?iso-8859-1?Q?7yQiiWLungx3noS7I2cRuu+UC5vV1oyHc8iuI/dQehx2JgTxPYXCitlJ9m?= =?iso-8859-1?Q?4BTHC7kPq7cDrg9+s42c+rSzk0xqk/8Z75J+cHsvnukL+Q4QSc1VeEDDCm?= =?iso-8859-1?Q?EKRjgAHzB8JQWP2C6B4H99dahf+YKbgrWFVTB0ixfBxQW3IerxJe5nPR33?= =?iso-8859-1?Q?RJZcmOxtJBNjbuBzx8z+pK++PnR6I3d4fGfkgZTA76m7I7dlB1HXKl9wa0?= =?iso-8859-1?Q?kSCmZZM+RpeojwERtjVtYGW2JQj/RNteFKFg9gb7/oVRs80dzOW4Oo/6v8?= =?iso-8859-1?Q?XQCMSRSzRCBOWo+HQfRomvmg6MHE34YpGiOpN4fr/SbaTXHT08sLhBMpJN?= =?iso-8859-1?Q?tcbhbSZ7za7aq+SLos9YCvt3Kh/LM940QWrTdMJqV/HrsNc58DlNuOyjBY?= =?iso-8859-1?Q?FrzTbdcwUQHMNNMuVgWpjyjAIc65Pxv59YuLESM9h5aWsZl2dzPHWnWbXU?= =?iso-8859-1?Q?awSW0jLHL9GLOaOgIXezWs48Jed9Y87Q9YkxMFG1733inJ?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1631.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61234b6a-e90e-4cc0-7fe5-08da3d5ba800 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2022 08:01:49.5957 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: we4sk5bb/GV8CxpTUAJBZnWiz9tluvuso4HCVRXfm8d+AYBpxrqFia/wmtOemVHCH8eW2O27Fj6T6QnSL1q32A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4855 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Jian,=0A= Ia32/ExceptionHandlerAsm.nasm is used by 32bit DxeCpuExceptionHandlerLib in= stance.=0A= =0A= I agree the commit message is not correct. The commit message says=0A= SEC still creates 32 entries but 32bit SEC creates 256 entries.=0A= =0A= I will update the commit message to align to code behavior.=0A= =0A= Thanks,=0A= Ray=0A= =0A= ________________________________________=0A= From: Wang, Jian J =0A= Sent: Monday, May 23, 2022 0:40=0A= To: devel@edk2.groups.io; Ni, Ray=0A= Cc: Dong, Eric=0A= Subject: RE: [edk2-devel] [PATCH 1/5] CpuException: Avoid allocating code p= ages for DXE instance=0A= =0A= Ray,=0A= =0A= You changed "%rep 32" to "%rep 256" in Ia32/ExceptionHandlerAsm.nasm.=0A= According to my understanding and your comments, this should be done=0A= only to X64 code, right?=0A= =0A= Regards,=0A= Jian=0A= =0A= > -----Original Message-----=0A= > From: devel@edk2.groups.io On Behalf Of Ni, Ray=0A= > Sent: Friday, May 20, 2022 10:16 PM=0A= > To: devel@edk2.groups.io=0A= > Cc: Dong, Eric =0A= > Subject: [edk2-devel] [PATCH 1/5] CpuException: Avoid allocating code pag= es=0A= > for DXE instance=0A= >=0A= > Today the DXE instance allocates code page and then copies the IDT=0A= > vectors to the allocated code page. Then it fixes up the vector number=0A= > in the IDT vector.=0A= >=0A= > But if we update the NASM file to generate 256 IDT vectors, there is=0A= > no need to do the copy and fix-up.=0A= >=0A= > A side effect is up to 4096 bytes (HOOKAFTER_STUB_SIZE * 256) is=0A= > used for 256 IDT vectors. While 32 IDT vectors only require 512 bytes.=0A= >=0A= > But considering the code logic simplification, 3.5K space is not a big=0A= > deal. SEC instance still generates 32 IDT vectors so no impact to SEC.=0A= > If 3.5K is too much a waste in PEI phase, we can enhance the code=0A= > further to generate 32 vectors for PEI.=0A= >=0A= > Signed-off-by: Ray Ni =0A= > Cc: Eric Dong =0A= > ---=0A= > .../CpuExceptionHandlerLib/DxeException.c | 22 -------------------= =0A= > .../Ia32/ExceptionHandlerAsm.nasm | 4 ++--=0A= > .../X64/ExceptionHandlerAsm.nasm | 2 ++=0A= > .../X64/Xcode5ExceptionHandlerAsm.nasm | 9 ++++----=0A= > 4 files changed, 9 insertions(+), 28 deletions(-)=0A= >=0A= > diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c=0A= > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c=0A= > index 61f11e98f8..5083c4b8e8 100644=0A= > --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c=0A= > +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c=0A= > @@ -95,9 +95,6 @@ InitializeCpuInterruptHandlers (=0A= > IA32_DESCRIPTOR IdtDescriptor;=0A= >=0A= > UINTN IdtEntryCount;=0A= >=0A= > EXCEPTION_HANDLER_TEMPLATE_MAP TemplateMap;=0A= >=0A= > - UINTN Index;=0A= >=0A= > - UINTN InterruptEntry;=0A= >=0A= > - UINT8 *InterruptEntryCode;=0A= >=0A= > RESERVED_VECTORS_DATA *ReservedVectors;=0A= >=0A= > EFI_CPU_INTERRUPT_HANDLER *ExternalInterruptHandler;=0A= >=0A= >=0A= >=0A= > @@ -138,25 +135,6 @@ InitializeCpuInterruptHandlers (=0A= > AsmGetTemplateAddressMap (&TemplateMap);=0A= >=0A= > ASSERT (TemplateMap.ExceptionStubHeaderSize <=3D HOOKAFTER_STUB_SIZE);= =0A= >=0A= >=0A= >=0A= > - Status =3D gBS->AllocatePool (=0A= >=0A= > - EfiBootServicesCode,=0A= >=0A= > - TemplateMap.ExceptionStubHeaderSize * CPU_INTERRUPT_NU= M,=0A= >=0A= > - (VOID **)&InterruptEntryCode=0A= >=0A= > - );=0A= >=0A= > - ASSERT (!EFI_ERROR (Status) && InterruptEntryCode !=3D NULL);=0A= >=0A= > -=0A= >=0A= > - InterruptEntry =3D (UINTN)InterruptEntryCode;=0A= >=0A= > - for (Index =3D 0; Index < CPU_INTERRUPT_NUM; Index++) {=0A= >=0A= > - CopyMem (=0A= >=0A= > - (VOID *)InterruptEntry,=0A= >=0A= > - (VOID *)TemplateMap.ExceptionStart,=0A= >=0A= > - TemplateMap.ExceptionStubHeaderSize=0A= >=0A= > - );=0A= >=0A= > - AsmVectorNumFixup ((VOID *)InterruptEntry, (UINT8)Index, (VOID=0A= > *)TemplateMap.ExceptionStart);=0A= >=0A= > - InterruptEntry +=3D TemplateMap.ExceptionStubHeaderSize;=0A= >=0A= > - }=0A= >=0A= > -=0A= >=0A= > - TemplateMap.ExceptionStart =3D (UINTN)InterruptEnt= ryCode;=0A= >=0A= > mExceptionHandlerData.IdtEntryCount =3D CPU_INTERRUPT_NUM;= =0A= >=0A= > mExceptionHandlerData.ReservedVectors =3D ReservedVectors;=0A= >=0A= > mExceptionHandlerData.ExternalInterruptHandler =3D ExternalInterruptHa= ndler;=0A= >=0A= > diff --git=0A= > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nas= =0A= > m=0A= > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nas= =0A= > m=0A= > index 3fe9aed1e8..8ed2b8f455 100644=0A= > ---=0A= > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nas= =0A= > m=0A= > +++=0A= > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nas= =0A= > m=0A= > @@ -33,7 +33,7 @@ ALIGN 8=0A= > ;=0A= >=0A= > AsmIdtVectorBegin:=0A= >=0A= > %assign Vector 0=0A= >=0A= > -%rep 32=0A= >=0A= > +%rep 256=0A= >=0A= > push byte %[Vector];=0A= >=0A= > push eax=0A= >=0A= > mov eax, ASM_PFX(CommonInterruptEntry)=0A= >=0A= > @@ -439,7 +439,7 @@ ASM_PFX(AsmGetTemplateAddressMap):=0A= >=0A= >=0A= > mov ebx, dword [ebp + 0x8]=0A= >=0A= > mov dword [ebx], AsmIdtVectorBegin=0A= >=0A= > - mov dword [ebx + 0x4], (AsmIdtVectorEnd - AsmIdtVectorBegin) / 32=0A= >=0A= > + mov dword [ebx + 0x4], (AsmIdtVectorEnd - AsmIdtVectorBegin) / 256= =0A= >=0A= > mov dword [ebx + 0x8], HookAfterStubBegin=0A= >=0A= >=0A= >=0A= > popad=0A= >=0A= > diff --git=0A= > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm= =0A= > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm= =0A= > index 9a806d1f86..aaf8d622e6 100644=0A= > ---=0A= > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm= =0A= > +++=0A= > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm= =0A= > @@ -31,6 +31,8 @@ SECTION .text=0A= >=0A= >=0A= > ALIGN 8=0A= >=0A= >=0A= >=0A= > +; Generate 32 IDT vectors.=0A= >=0A= > +; 32 IDT vectors are enough because interrupts (32+) are not enabled in = SEC and=0A= > PEI phase.=0A= >=0A= > AsmIdtVectorBegin:=0A= >=0A= > %assign Vector 0=0A= >=0A= > %rep 32=0A= >=0A= > diff --git=0A= > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAs= =0A= > m.nasm=0A= > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAs= =0A= > m.nasm=0A= > index 9c72fa5815..7c0e3d3b0b 100644=0A= > ---=0A= > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAs= =0A= > m.nasm=0A= > +++=0A= > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAs= =0A= > m.nasm=0A= > @@ -53,9 +53,10 @@ SECTION .text=0A= >=0A= >=0A= > ALIGN 8=0A= >=0A= >=0A= >=0A= > +; Generate 256 IDT vectors.=0A= >=0A= > AsmIdtVectorBegin:=0A= >=0A= > %assign Vector 0=0A= >=0A= > -%rep 32=0A= >=0A= > +%rep 256=0A= >=0A= > push byte %[Vector]=0A= >=0A= > push rax=0A= >=0A= > mov rax, strict qword 0 ; mov rax, ASM_PFX(CommonInterrup= tEntry)=0A= >=0A= > @@ -453,16 +454,16 @@ global ASM_PFX(AsmGetTemplateAddressMap)=0A= > ASM_PFX(AsmGetTemplateAddressMap):=0A= >=0A= > lea rax, [AsmIdtVectorBegin]=0A= >=0A= > mov qword [rcx], rax=0A= >=0A= > - mov qword [rcx + 0x8], (AsmIdtVectorEnd - AsmIdtVectorBegin) / = 32=0A= >=0A= > + mov qword [rcx + 0x8], (AsmIdtVectorEnd - AsmIdtVectorBegin) / = 256=0A= >=0A= > lea rax, [HookAfterStubHeaderBegin]=0A= >=0A= > mov qword [rcx + 0x10], rax=0A= >=0A= >=0A= >=0A= > ; Fix up CommonInterruptEntry address=0A= >=0A= > lea rax, [ASM_PFX(CommonInterruptEntry)]=0A= >=0A= > lea rcx, [AsmIdtVectorBegin]=0A= >=0A= > -%rep 32=0A= >=0A= > +%rep 256=0A= >=0A= > mov qword [rcx + (JmpAbsoluteAddress - 8 - HookAfterStubHeaderBeg= in)],=0A= > rax=0A= >=0A= > - add rcx, (AsmIdtVectorEnd - AsmIdtVectorBegin) / 32=0A= >=0A= > + add rcx, (AsmIdtVectorEnd - AsmIdtVectorBegin) / 256=0A= >=0A= > %endrep=0A= >=0A= > ; Fix up HookAfterStubHeaderEnd=0A= >=0A= > lea rax, [HookAfterStubHeaderEnd]=0A= >=0A= > --=0A= > 2.35.1.windows.2=0A= >=0A= >=0A= >=0A= > -=3D-=3D-=3D-=3D-=3D-=3D=0A= > Groups.io Links: You receive all messages sent to this group.=0A= > View/Reply Online (#89916): https://edk2.groups.io/g/devel/message/89916= =0A= > Mute This Topic: https://groups.io/mt/91231767/1768734=0A= > Group Owner: devel+owner@edk2.groups.io=0A= > Unsubscribe: https://edk2.groups.io/g/devel/unsub [jian.j.wang@intel.com]= =0A= > -=3D-=3D-=3D-=3D-=3D-=3D=0A= >=0A= =0A=