From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.3019.1649828384229868913 for ; Tue, 12 Apr 2022 22:39:44 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ggUeu/sc; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: chasel.chiu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649828384; x=1681364384; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WVJv/WlNng2vsbaiYV5+ga5KUcpVVMCpKbsxAGoQJXI=; b=ggUeu/scWCZYX7beWgUl1pSAasY6UVni71gVSP/x/yrG4jMHJMrYW++T Lv1f1IKF3W0nPWUkBgKmRgNwSLvaTGs5ke6gd13bMc5MfpWI3VrYPNbDz h2Oap4I1qUxbPMUEpyp/+TovMrApqFStLEDxwloHscFLf9FuHQFpFTpmG FmYcF+ojz5+abNYneB8egl89j3E8JLNvVQekJzX28/jE/9Y++D2BmGyK0 goOkhgR2q2r8n2xDwZeLkzr/9K07jsLy1sUmWNaMmvH3GHloFoChwQTFE HWwrxQdK1dJSzTotiuZbLBdcelKu+uaTD1z2H41qF3/FVPMLYkyMdd+E7 g==; X-IronPort-AV: E=McAfee;i="6400,9594,10315"; a="261427375" X-IronPort-AV: E=Sophos;i="5.90,255,1643702400"; d="scan'208";a="261427375" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Apr 2022 22:39:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,255,1643702400"; d="scan'208";a="526343645" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga002.jf.intel.com with ESMTP; 12 Apr 2022 22:39:42 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 12 Apr 2022 22:39:41 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 12 Apr 2022 22:39:41 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx607.amr.corp.intel.com (10.22.229.20) 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, 12 Apr 2022 22:39:41 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) 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, 12 Apr 2022 22:39:41 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lzsov2KEMvQHewVTNtqyYQUUEmvdI0qMJkSdYEYS+QmaA5mLLCmMfzTyusG4o6eO/agHEknUlullyZRh4YUJbYv5sw5LxvKBKYhQvdmRmjM09yxfK9GAWCogra9p/aSUhjxKVN3b1RAUkpwS2nisuS+uJZih4X86ZIULUsVXMkez3IryG7DrwnNFwdOdKYG7xR1WbGfCXCmjqtO4fEN22Ez0fQp9Zo5M/j6+vzgW8MBs0C68qIsrkw5vad46AmexfHOVmEo6Q8GcOkzY/by3bqtaiipe5p4FtgjLigZmk8gaTVRjcgScSkOYGY9sQA04pgtqQiuMK1nz5s4+lmeAwg== 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=RLDb9+F/Pf7r953ayU9PpaSi7kK6t9gPzh3bDWYOGwo=; b=TDhU14f+5PnwL3mrHsj9mofpVhKLIilEaGxkylwFNv1pQNO80AFne5+n/tK3gbHjhmfFQgeWQvF3nB7DR0P5asB2muIruTE5tWRQRqGNnXUpOSa/KipIGNmLa9Amaxfih/JiHFFfuhKq3+LS4ZNBI1/Vv7B/XpWgVz/qcsbFVOEG10T3cqkuTkZDqJF5Ii8B4z42X6h/Ui42usAWRr+kTDd17/R41A5qcEX4hTovS5SqMvEYbbbmJmkxUv47rxoqHF8qK3qbTI6Objs02wXiYrgPphNJXTXKaaJikt1QmmNFiv7xvf03AG5X22erFu/T46mMWL4sKxORxIlQ+KpTVg== 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 BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by MW4PR11MB5909.namprd11.prod.outlook.com (2603:10b6:303:168::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18; Wed, 13 Apr 2022 05:39:39 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::c076:6436:db8e:ee22]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::c076:6436:db8e:ee22%7]) with mapi id 15.20.5144.029; Wed, 13 Apr 2022 05:39:39 +0000 From: "Chiu, Chasel" To: "Kuo, Ted" , "devel@edk2.groups.io" CC: "Desimone, Nathaniel L" , "Zeng, Star" , "S, Ashraf Ali" Subject: Re: [edk2-devel][PATCH v4 1/8] IntelFsp2Pkg: X64 compatible changes to support PEI in 64bit Thread-Topic: [edk2-devel][PATCH v4 1/8] IntelFsp2Pkg: X64 compatible changes to support PEI in 64bit Thread-Index: AQHYTuBEYDB8mWDpxEm06ktL3Rj7pKztUqFQ Date: Wed, 13 Apr 2022 05:39:38 +0000 Message-ID: References: <5338d6eafa937f3041f72084e9a4df95ce0e753a.1649817627.git.ted.kuo@intel.com> In-Reply-To: <5338d6eafa937f3041f72084e9a4df95ce0e753a.1649817627.git.ted.kuo@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 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: b7df25d5-bc5e-4099-be02-08da1d100082 x-ms-traffictypediagnostic: MW4PR11MB5909: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: T1vMBVGbEnyaDno+Ql9J6R9M0UGSNLBDKye3leC3zbMbhoyjUk/W1Cz5jBK8pfMrfUdEVPIqVc+Em3p7EusK7pyNX+2RMvx0I+LG/uo1QPKaOvxuKspgK0RM2ExY7B+dHar5tFCmVZkgXhPnUrEMbaAthZbsZp20o3VdkUc9JMh/4HMSfGzkwWh6bUXAt/KGo9STHVAivgosvVibVmv8PjWudat/5ouT2xvJlSy8dC5zVs8J4micq0I0UI4aZ/087YpI5chY6e7E25pURera/fcf9v5D4bfY5A+MdyXRLEhoF3EFkf5Rn47Xa45TuiV8Vepo1mQIMk2XjEzjDtJDiiuMVSKc+7KuMZi/vdHnYNPOT3oldBgVbNjbKQTsecq1FVg1Jk3Wd1qbyR7f8wI1SrkW0i3sNi6HfLHUWTq6vI/4MUSv4IpRA9KjJxVOgL7ToTvhConA01oSNJVSmUJ6XsRLmG9uzqOUe0yL4HaeweiffTf4/jUfKQBZNIydbDV6aZO5J5cL17RRaHkgCk6j5g20a4Jrjdedvg7Lbfg0JfbSdyRA7yfBP798MGQaP7BxOInE76SWpyou6Ux1kkoe69wghvQbtdT0IQ41eORi0G1p5g1slU+JQleTsVIv6Pi/2Xexp5eknU4ItZ7Td1jFE1h6rtp8rU/v32e36xXUZ6vZPovwTasdpNgoD2SdWTX8yypuF2RgfpHpBEGChCzQfohM6DnPJTiU1nz4Np3pBm2a/Gf1hr2BnWxwLP9qys/kjgyLu86IWUHdM2BjTiInORkFRqp1dZveoGb09MCAQVO1BA3O5UE7WNGRpebzNCOt x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(38070700005)(19627235002)(54906003)(55016003)(110136005)(316002)(2906002)(8936002)(9686003)(82960400001)(83380400001)(107886003)(122000001)(4326008)(64756008)(66446008)(8676002)(52536014)(71200400001)(30864003)(66476007)(66946007)(76116006)(66556008)(508600001)(86362001)(7696005)(26005)(53546011)(186003)(5660300002)(33656002)(6506007)(11716005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?g13/tjVB0SMuUOhTy9VRMcLlo+axfe+DGHSH/OYdw7iNHh3fArP0/w7a+JEQ?= =?us-ascii?Q?RC/e6SSJdIx7y2ST3VuQumvSpRgVW++dt7zza9PMGQdA5X+MDKAOIXEv1T3Q?= =?us-ascii?Q?n3bNuntQ21vZhAkXoSFxvIMDI5JNkFRtPm0x3d06NK1LD8B99MkVguToAJQ+?= =?us-ascii?Q?C23fpJbP83XVqy245YdoWFBrlj4998pi8oq4jD1T6ZMFyMfBFvLNjgmtOXJJ?= =?us-ascii?Q?vxPZITmfTz+nWIVi0ry8EVbQpR9O8edSWfaSNXtLy1b5tLepT5M1eDhWdBRd?= =?us-ascii?Q?YTmi/C306XMjHNDi81TEpZcZIuE9LUVdkV2PvMs7+k0m30HkBPJoq27QkQDn?= =?us-ascii?Q?jrA+I4DbohYcc63780vD24IREOLf5zMEudihdYtxIwAYzRdQMNj+QLSnwm2k?= =?us-ascii?Q?nZV5zzDgjd/T2TVMe53GNu1CMR4MIBi2TiBXo6gKReVhAC1qbt3x4X479d9l?= =?us-ascii?Q?5cMWtqV4tzNdJVwql3if/qOlDaPAoZK+8WFHH8TyclW+c6VHGOOFWKbU7YsB?= =?us-ascii?Q?fBnUiNA4UGqU+BT19ix6dBbNAPd0YcMw/VS4/O4xzra3hDe/dndpbxd3GwLW?= =?us-ascii?Q?p5Zl3ZPp+j7330coFXdvvqQA24HqMOhWxUgzDtaYp1PrGHgMk8HDG37lM7f4?= =?us-ascii?Q?z+T4GvLpQFMhGHNdPJhh3Q5uIbHpHSnLtMwae5e65kV85dH9swHIYRkNwsM1?= =?us-ascii?Q?jA064nLy/92uEwGoHjhwY53WRO5gmwQewMPPlLGISonFAq3QMTZ2PE5jBYXi?= =?us-ascii?Q?zyHT8gNHNZgUFklhp4PtpVQ5ZpHXrKPMn1LnqLCeqpR1A4nESj4+yfut+mfJ?= =?us-ascii?Q?914UNbz4Wz5CgPUbouY5b/XwiOGjQMYDpF5N4VNlCCN89VfZowRrTvLzv9wu?= =?us-ascii?Q?WQP9udQoaeeLgPPMZ6NdRh3plC40GWMuQM/0sgQ6DIN+7HnH4R/TfdC2VDaL?= =?us-ascii?Q?a6yC+2SFo/bGkkQnP4VlEn99J9NODjeEKf58Fo4LOQA0aOnzGkRqJEgMTULe?= =?us-ascii?Q?M01JBtV1yJFMMGpP+JCnIFtS3Y3HMVqjFi/6sAtKhWLMhSjiheXhxa0d8mqw?= =?us-ascii?Q?QSD6EwgPoskg8PnLVZz6iQklIfbLttVMsgGbP5ihliOi11wxKWihx0BT8stW?= =?us-ascii?Q?TPIzhxauLObFs2JLRkcZTGiwO1+zt8rH8zPm/60Ajt9aF+FCMZhZ3aZFtzcD?= =?us-ascii?Q?KfeN92b3dOCU+OtVEJWpqKPz8+Y9vSSV884ZcRqkjyGhBH4YA1D1lzWCL8k9?= =?us-ascii?Q?Bl9MYBdE2MNIQDphO0IHtbHtpb/oFjvRIq6Y9AFSKgznPYKMPI3mBtsQT1di?= =?us-ascii?Q?PEoQkW7DhOqgs43cIqaNJ1+5nOC6Y9d1VO7jFmFVzqfbwrwuooaz0We7QsIx?= =?us-ascii?Q?9df5de6sEinTtjMkMuYWICQX4Wq74BEcs3iZ+hd8hWqzbWX8KQhQnPJwPpgb?= =?us-ascii?Q?Vye4ttMWVTmF2Gj4ZX9V84RAAMtDmg0KXsJEW24gPiEfb+SkOnWHvImYxwUM?= =?us-ascii?Q?GLxOa98cfERriDfm6cXqeHRUcA253DmNYaG348ePXPBRi3CRwjF9wzXwWuwf?= =?us-ascii?Q?vAwlAWhQk/0ne772/5PL/anr2RGoTj3LlfMSqg+Q/4FgkUReq5E4HC+0H6LN?= =?us-ascii?Q?8MSPkNPnbPb5ZH9omn11M/TbIdDXv2UUvpO1losDGN7hiW+B51ITfaHM9u1R?= =?us-ascii?Q?pJHfQcat3i6+n0qjEX/wZFBKWlvObfTrAE+9l6SNQjxK2KysvjQ4IBAztc7Z?= =?us-ascii?Q?l0b4tC+u7w=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7df25d5-bc5e-4099-be02-08da1d100082 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2022 05:39:38.9878 (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: WjJ8zmnmPehJhaL+iHzJtuugP8mRLldsaGQ2jPU8JeTST9ZptrE38QCWOgaBXDRmZAQFhoosuD2rhp0HQzESSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB5909 Return-Path: chasel.chiu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ted, Please see my comments below inline. Thanks, Chasel > -----Original Message----- > From: Kuo, Ted > Sent: Wednesday, April 13, 2022 10:43 AM > To: devel@edk2.groups.io > Cc: Chiu, Chasel ; Desimone, Nathaniel L > ; Zeng, Star ; S, > Ashraf Ali > Subject: [edk2-devel][PATCH v4 1/8] IntelFsp2Pkg: X64 compatible changes > to support PEI in 64bit >=20 > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3893 > 1.Added EFIAPI to FspNotifyPhasePeimEntryPoint, SwapStack and > PEI_CORE_ENTRY. > 2.Cast FspData from pointer to UINTN and then from UINTN to UINT32. This statement might cause confusion. We can update it later when pushing t= he patch, no need to send another V5. We actually only cast FspData pointer to UINT32 when verifying the pointer = is valid or not, we do not cast it to UINT32 when consuming the data pointe= r. So we still can support 64bits FspData pointer. > 3.Changed AsmReadEsp to AsmReadStackPointer. > 4.Changed the type of the return value of AsmReadStackPointer > from UINT32 to UINTN. > 5.Changed the type of TemporaryMemoryBase, PermenentMemoryBase > and BootLoaderStack from UINT32 to UINTN. > 6..Some type casting to pointers are UINT32. Changed them to > UINTN to accommodate both IA32 and X64. > 7.Corrected some typos. >=20 > Cc: Chasel Chiu > Cc: Nate DeSimone > Cc: Star Zeng > Cc: Ashraf Ali S > Signed-off-by: Ted Kuo > --- > IntelFsp2Pkg/FspNotifyPhase/FspNotifyPhasePeim.c | 1 + > IntelFsp2Pkg/FspSecCore/Ia32/ReadEsp.nasm | 8 ++++---- > IntelFsp2Pkg/FspSecCore/Ia32/Stack.nasm | 10 +++++----- > IntelFsp2Pkg/FspSecCore/SecFsp.c | 8 ++++---- > IntelFsp2Pkg/FspSecCore/SecFsp.h | 2 +- > IntelFsp2Pkg/FspSecCore/SecFspApiChk.c | 8 ++++---- > IntelFsp2Pkg/FspSecCore/SecMain.c | 8 ++++---- > IntelFsp2Pkg/FspSecCore/SecMain.h | 18 ++++++++++--= ------ > .../Library/BaseFspSwitchStackLib/FspSwitchStackLib.c | 1 > + .../Library/SecFspSecPlatformLibNull/Ia32/Flat32.nasm | 2 +- > 10 files changed, 35 insertions(+), 31 deletions(-) >=20 > diff --git a/IntelFsp2Pkg/FspNotifyPhase/FspNotifyPhasePeim.c > b/IntelFsp2Pkg/FspNotifyPhase/FspNotifyPhasePeim.c > index 88f5540fef..66d39cc70c 100644 > --- a/IntelFsp2Pkg/FspNotifyPhase/FspNotifyPhasePeim.c > +++ b/IntelFsp2Pkg/FspNotifyPhase/FspNotifyPhasePeim.c > @@ -112,6 +112,7 @@ WaitForNotify ( > @retval EFI_OUT_OF_RESOURCES Insufficient resources to create > database > **/ > EFI_STATUS > +EFIAPI > FspNotifyPhasePeimEntryPoint ( > IN EFI_PEI_FILE_HANDLE FileHandle, > IN CONST EFI_PEI_SERVICES **PeiServices > diff --git a/IntelFsp2Pkg/FspSecCore/Ia32/ReadEsp.nasm > b/IntelFsp2Pkg/FspSecCore/Ia32/ReadEsp.nasm > index 8046b43745..d40dad5a52 100644 > --- a/IntelFsp2Pkg/FspSecCore/Ia32/ReadEsp.nasm > +++ b/IntelFsp2Pkg/FspSecCore/Ia32/ReadEsp.nasm > @@ -9,14 +9,14 @@ > SECTION .text >=20 > ;-----------------------------------------------------------------------= ------- > -; UINT32 > +; UINTN > ; EFIAPI > -; AsmReadEsp ( > +; AsmReadStackPointer ( > ; VOID > ; ); > ;-----------------------------------------------------------------------= ------- > -global ASM_PFX(AsmReadEsp) > -ASM_PFX(AsmReadEsp): > +global ASM_PFX(AsmReadStackPointer) > +ASM_PFX(AsmReadStackPointer): > mov eax, esp > ret >=20 > diff --git a/IntelFsp2Pkg/FspSecCore/Ia32/Stack.nasm > b/IntelFsp2Pkg/FspSecCore/Ia32/Stack.nasm > index 5a7e27c240..ce20639890 100644 > --- a/IntelFsp2Pkg/FspSecCore/Ia32/Stack.nasm > +++ b/IntelFsp2Pkg/FspSecCore/Ia32/Stack.nasm > @@ -9,20 +9,20 @@ > ; > ;-----------------------------------------------------------------------= ------- >=20 > -SECTION .text > + SECTION .text >=20 > ;-----------------------------------------------------------------------= ------- > ; VOID > ; EFIAPI > ; SecSwitchStack ( > ; UINT32 TemporaryMemoryBase, > -; UINT32 PermenentMemoryBase > +; UINT32 PermanentMemoryBase > ; ); > ;-----------------------------------------------------------------------= ------- > global ASM_PFX(SecSwitchStack) > ASM_PFX(SecSwitchStack): > ; > - ; Save three register: eax, ebx, ecx > + ; Save four register: eax, ebx, ecx, edx > ; > push eax > push ebx > @@ -55,7 +55,7 @@ ASM_PFX(SecSwitchStack): > mov dword [eax + 12], edx > mov edx, dword [esp + 16] ; Update this function's return addre= ss > into permanent memory > mov dword [eax + 16], edx > - mov esp, eax ; From now, esp is pointed to per= manent > memory > + mov esp, eax ; From now, esp is pointed to permane= nt > memory >=20 > ; > ; Fixup the ebp point to permanent memory @@ -63,7 +63,7 @@ > ASM_PFX(SecSwitchStack): > mov eax, ebp > sub eax, ebx > add eax, ecx > - mov ebp, eax ; From now, ebp is pointed to permanen= t > memory > + mov ebp, eax ; From now, ebp is pointed to permane= nt > memory >=20 > pop edx > pop ecx > diff --git a/IntelFsp2Pkg/FspSecCore/SecFsp.c > b/IntelFsp2Pkg/FspSecCore/SecFsp.c > index 68e588dd41..85fbc7664c 100644 > --- a/IntelFsp2Pkg/FspSecCore/SecFsp.c > +++ b/IntelFsp2Pkg/FspSecCore/SecFsp.c > @@ -26,7 +26,7 @@ FspGetExceptionHandler ( > IA32_IDT_GATE_DESCRIPTOR *IdtGateDescriptor; > FSP_INFO_HEADER *FspInfoHeader; >=20 > - FspInfoHeader =3D (FSP_INFO_HEADER *)AsmGetFspInf= oHeader > (); > + FspInfoHeader =3D (FSP_INFO_HEADER > *)(UINTN)AsmGetFspInfoHeader (); > ExceptionHandler =3D IdtEntryTemplate; > IdtGateDescriptor =3D (IA32_IDT_GATE_DESCRIPTOR > *)&ExceptionHandler; > Entry =3D (IdtGateDescriptor->Bits.Offset= High << 16) | > IdtGateDescriptor->Bits.OffsetLow; > @@ -115,7 +115,7 @@ SecGetPlatformData ( VOID FspGlobalDataInit ( > IN OUT FSP_GLOBAL_DATA *PeiFspData, > - IN UINT32 BootLoaderStack, > + IN UINTN BootLoaderStack, > IN UINT8 ApiIdx > ) > { > @@ -141,7 +141,7 @@ FspGlobalDataInit ( > // Get FSP Header offset > // It may have multiple FVs, so look into the last one for FSP header > // > - PeiFspData->FspInfoHeader =3D (FSP_INFO_HEADER > *)AsmGetFspInfoHeader (); > + PeiFspData->FspInfoHeader =3D (FSP_INFO_HEADER > + *)(UINTN)AsmGetFspInfoHeader (); > SecGetPlatformData (PeiFspData); >=20 > // > @@ -154,7 +154,7 @@ FspGlobalDataInit ( > // > FspmUpdDataPtr =3D (VOID *)GetFspApiParameter (); > if (FspmUpdDataPtr =3D=3D NULL) { > - FspmUpdDataPtr =3D (VOID *)(PeiFspData->FspInfoHeader->ImageBase + > PeiFspData->FspInfoHeader->CfgRegionOffset); > + FspmUpdDataPtr =3D (VOID > + *)(UINTN)(PeiFspData->FspInfoHeader->ImageBase + > + PeiFspData->FspInfoHeader->CfgRegionOffset); > } >=20 > SetFspUpdDataPointer (FspmUpdDataPtr); diff --git > a/IntelFsp2Pkg/FspSecCore/SecFsp.h b/IntelFsp2Pkg/FspSecCore/SecFsp.h > index 7c9be85fe0..7fb31c3f87 100644 > --- a/IntelFsp2Pkg/FspSecCore/SecFsp.h > +++ b/IntelFsp2Pkg/FspSecCore/SecFsp.h > @@ -48,7 +48,7 @@ FspGetExceptionHandler ( VOID FspGlobalDataInit ( > IN OUT FSP_GLOBAL_DATA *PeiFspData, > - IN UINT32 BootLoaderStack, > + IN UINTN BootLoaderStack, > IN UINT8 ApiIdx > ); >=20 > diff --git a/IntelFsp2Pkg/FspSecCore/SecFspApiChk.c > b/IntelFsp2Pkg/FspSecCore/SecFspApiChk.c > index 7d6ef11fe7..06660e53d7 100644 > --- a/IntelFsp2Pkg/FspSecCore/SecFspApiChk.c > +++ b/IntelFsp2Pkg/FspSecCore/SecFspApiChk.c > @@ -31,7 +31,7 @@ FspApiCallingCheck ( > // > // NotifyPhase check > // > - if ((FspData =3D=3D NULL) || ((UINT32)FspData =3D=3D 0xFFFFFFFF)) { > + if ((FspData =3D=3D NULL) || ((UINT32)(UINTN)FspData =3D=3D 0xFFFFFF= FF)) { > Status =3D EFI_UNSUPPORTED; > } else { > if (FspData->Signature !=3D FSP_GLOBAL_DATA_SIGNATURE) { @@ -42,7 > +42,7 @@ FspApiCallingCheck ( > // > // FspMemoryInit check > // > - if ((UINT32)FspData !=3D 0xFFFFFFFF) { > + if ((UINT32)(UINTN)FspData !=3D 0xFFFFFFFF) { > Status =3D EFI_UNSUPPORTED; > } else if (EFI_ERROR (FspUpdSignatureCheck (ApiIdx, ApiParam))) { > Status =3D EFI_INVALID_PARAMETER; > @@ -51,7 +51,7 @@ FspApiCallingCheck ( > // > // TempRamExit check > // > - if ((FspData =3D=3D NULL) || ((UINT32)FspData =3D=3D 0xFFFFFFFF)) { > + if ((FspData =3D=3D NULL) || ((UINT32)(UINTN)FspData =3D=3D 0xFFFFFF= FF)) { > Status =3D EFI_UNSUPPORTED; > } else { > if (FspData->Signature !=3D FSP_GLOBAL_DATA_SIGNATURE) { @@ -62,7 > +62,7 @@ FspApiCallingCheck ( > // > // FspSiliconInit check > // > - if ((FspData =3D=3D NULL) || ((UINT32)FspData =3D=3D 0xFFFFFFFF)) { > + if ((FspData =3D=3D NULL) || ((UINT32)(UINTN)FspData =3D=3D 0xFFFFFF= FF)) { > Status =3D EFI_UNSUPPORTED; > } else { > if (FspData->Signature !=3D FSP_GLOBAL_DATA_SIGNATURE) { diff --gi= t > a/IntelFsp2Pkg/FspSecCore/SecMain.c > b/IntelFsp2Pkg/FspSecCore/SecMain.c > index d376fb8361..9e9332ffcd 100644 > --- a/IntelFsp2Pkg/FspSecCore/SecMain.c > +++ b/IntelFsp2Pkg/FspSecCore/SecMain.c > @@ -54,7 +54,7 @@ SecStartup ( > IN UINT32 TempRamBase, > IN VOID *BootFirmwareVolume, > IN PEI_CORE_ENTRY PeiCore, > - IN UINT32 BootLoaderStack, > + IN UINTN BootLoaderStack, > IN UINT32 ApiIdx > ) > { > @@ -233,7 +233,7 @@ SecTemporaryRamSupport ( > GetFspGlobalDataPointer ()->OnSeparateStack =3D 1; >=20 > if (PcdGet8 (PcdFspHeapSizePercentage) =3D=3D 0) { > - CurrentStack =3D AsmReadEsp (); > + CurrentStack =3D AsmReadStackPointer (); > FspStackBase =3D (UINTN)GetFspEntryStack (); >=20 > StackSize =3D FspStackBase - CurrentStack; @@ -292,8 +292,8 @@ > SecTemporaryRamSupport ( > // permanent memory. > // > SecSwitchStack ( > - (UINT32)(UINTN)OldStack, > - (UINT32)(UINTN)NewStack > + (UINTN)OldStack, > + (UINTN)NewStack > ); >=20 > return EFI_SUCCESS; > diff --git a/IntelFsp2Pkg/FspSecCore/SecMain.h > b/IntelFsp2Pkg/FspSecCore/SecMain.h > index 7794255af1..d179d2b02f 100644 > --- a/IntelFsp2Pkg/FspSecCore/SecMain.h > +++ b/IntelFsp2Pkg/FspSecCore/SecMain.h > @@ -23,9 +23,11 @@ > #include > #include >=20 > -typedef VOID (*PEI_CORE_ENTRY) ( \ > - IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, \ > - IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList \ > +typedef > +VOID > +(EFIAPI *PEI_CORE_ENTRY) ( > + IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, > + IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList > ); >=20 > typedef struct _SEC_IDT_TABLE { > @@ -51,8 +53,8 @@ typedef struct _SEC_IDT_TABLE { VOID EFIAPI > SecSwitchStack ( > - IN UINT32 TemporaryMemoryBase, > - IN UINT32 PermenentMemoryBase > + IN UINTN TemporaryMemoryBase, > + IN UINTN PermenentMemoryBase > ); >=20 > /** > @@ -104,7 +106,7 @@ SecStartup ( > IN UINT32 TempRamBase, > IN VOID *BootFirmwareVolume, > IN PEI_CORE_ENTRY PeiCore, > - IN UINT32 BootLoaderStack, > + IN UINTN BootLoaderStack, > IN UINT32 ApiIdx > ); >=20 > @@ -127,9 +129,9 @@ ProcessLibraryConstructorList ( > @return value of esp. >=20 > **/ > -UINT32 > +UINTN > EFIAPI > -AsmReadEsp ( > +AsmReadStackPointer ( > VOID > ); >=20 > diff --git a/IntelFsp2Pkg/Library/BaseFspSwitchStackLib/FspSwitchStackLib= .c > b/IntelFsp2Pkg/Library/BaseFspSwitchStackLib/FspSwitchStackLib.c > index dae4e27172..8abe035080 100644 > --- a/IntelFsp2Pkg/Library/BaseFspSwitchStackLib/FspSwitchStackLib.c > +++ b/IntelFsp2Pkg/Library/BaseFspSwitchStackLib/FspSwitchStackLib.c > @@ -21,6 +21,7 @@ >=20 > **/ > UINTN > +EFIAPI > SwapStack ( > IN UINTN NewStack > ) > diff --git > a/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/Ia32/Flat32.nasm > b/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/Ia32/Flat32.nasm > index aef7f96d1d..7be570c4e5 100644 > --- a/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/Ia32/Flat32.nasm > +++ b/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/Ia32/Flat32.nasm > @@ -16,7 +16,7 @@ SECTION .text >=20 > %macro RET_ESI 0 >=20 > - movd esi, mm7 ; restore ESP from MM7 > + movd esi, mm7 ; restore EIP from MM7 > jmp esi >=20 > %endmacro > -- > 2.16.2.windows.1