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.web11.25374.1632705015329286397 for ; Sun, 26 Sep 2021 18:10:15 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=a8Cm6GXe; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: chasel.chiu@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10119"; a="203874702" X-IronPort-AV: E=Sophos;i="5.85,325,1624345200"; d="scan'208";a="203874702" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Sep 2021 18:10:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,325,1624345200"; d="scan'208";a="615589462" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 26 Sep 2021 18:10:13 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Sun, 26 Sep 2021 18:10:13 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Sun, 26 Sep 2021 18:10:12 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Sun, 26 Sep 2021 18:10:12 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.106) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Sun, 26 Sep 2021 18:10:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fM8da1rHMtQxuhXOYRXiTDq1Ao1nM9N4yj4i9HrF16pe+sgmGpAAaW0KzYNvlO7Pbzdb4hYDh76J71M5AeoS4YHD3eeuPj8DABucc54olpXpFam/JPt16H1vW87MLc58SOCzhOhaS198nnd2ZWUo70LUEujgdXE04tjzG7GvbsND1Xl7eZmudz16xkON43rDseKCi8Xmu4gs0v7ya6vlwOLam3IiT1FtXObExkOTSd0xsv0RvoDsFdo+tS5Wb+4HGAAfZZz+wgs5xZJT0Lsu6dQ2NM44bcrypjXRYyBLxPgvaR5alLJiQMHCnOySiSE9B78s4ChfsG2m01knFSnq0A== 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; bh=3YGZxThOwrDdKTlguj+d08O2R7bWIUksWdsxyB2/Tvg=; b=O+yT7/9IlU98BQ3MDfUL25M7OrDhI12/KhVvboiUIfKMNnAP6pHfdbIo6kfjFUnr/JJz8oi8mG9e63cQYERyjYcOl13Xy3cjOX5dyJwIfCKxnAo21C0MXVo1xAUXTjTrAyBK6yRuGIBKf1wr9r1fE+fhGzn+fhlVqq3WNMBRonC+4kwtjDNM4i0ZXmVnIR8AY/NjFLgenI5ImIv/O6bY/1XSuRGcRKVuZqHrwmgkHcdPhkEK8QxTVs+c3uttIgSKVeh1gemgCXaM2caocMwUPr1WFb6z3xlcii0EpdL4kTlGdCLGETYh5bcLPVBGmafzdICPkc9ggcET6Ra3Qbi8Lg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3YGZxThOwrDdKTlguj+d08O2R7bWIUksWdsxyB2/Tvg=; b=a8Cm6GXebE/iH3Q1fHvyXKz2idkp6PTGsiH+COlQdu/Mu1J3p+SCc+eucjMvqQN9UjOmlQObnRaPzO8aNTWiKJc938LMe5Zit/SY0NLUX16IymaZO7Ie7ArbQY2aoi4UmEKzRynLOEzYWzKdwvIBjxOesL/qlcYY3OjBdkcNVDg= Received: from BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by BN9PR11MB5305.namprd11.prod.outlook.com (2603:10b6:408:136::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.14; Mon, 27 Sep 2021 01:10:07 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::882:4e40:b0e4:239e]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::882:4e40:b0e4:239e%7]) with mapi id 15.20.4544.021; Mon, 27 Sep 2021 01:10:07 +0000 From: "Chiu, Chasel" To: "S, Ashraf Ali" , "devel@edk2.groups.io" CC: "Desimone, Nathaniel L" , "Zeng, Star" , "Kuo, Ted" , "Duggapu, Chinni B" , "Chaganty, Rangasai V" , "Solanki, Digant H" , "V, Sangeetha" , "Ni, Ray" Subject: Re: [PATCH v7] IntelFsp2WrapperPkg : FSPM/S UPD data address based on Build Type Thread-Topic: [PATCH v7] IntelFsp2WrapperPkg : FSPM/S UPD data address based on Build Type Thread-Index: AQHXsTlU8n/OyZPadkeljlitHjjbU6u3FjYw Date: Mon, 27 Sep 2021 01:10:07 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bfe8daed-9dd2-4258-74c7-08d981538bd4 x-ms-traffictypediagnostic: BN9PR11MB5305: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1775; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bXsfXOlz5m2RRyx9XJz2kp2hwY758nokzmRv30eRSAcSz3oHzfHMt4KyLi58el4u4Ydl+8mHFAwXS3e8abr5mGXqvEoHnJdgxSkXnlmskiphRyfhob01SQUO0VybN0/NQ+/g6BU/1SF+L4xfY1NCDMRznCLJFTcBzSdA2D5uDxrkjy0/9E+byZFBoeLJaPGN8xz0UqY95dUjmaTna7abbBUN7WoTK2JTVOrJ5cu6B7X2lt1lhS+CjO3V5p7RwSfTDqNu8lcZrfF+ZRTmKBuTIwhoSjFuYWTPJ9gVj+caQaH+xp+gjelV0/6IBb2jJGM7Z35k/xvbmr8Pjg34TtbqKUuZVGVIMycIn7PlWISuMXhWlP7Nt5XIsO5F3rGtRqneRbZxyPgg6D05t6h5zwQKiTbbZ+BDkSAfF3VSbXExTbK8507jYs1DikByH1sa/Ttxh4laoRM/2dYcl6nVeBHdoUKOxN509X6VlIo4Uo1v3cdqfWyfiqBv+XqtzMLUtMfvA+20u1ih+qryfjl69dwwOdgnw95yWp9WSSa7H9MChK4l+/J8ZkYJXoHRV3UMhzRl61CXguHAmdfqqGr0Nlo0JwFPdlLsg7iAnUYPAXBHlIM73HTciFFvv0fyjr1OT9h5kKumx/l7bCUMjF3/tMdOFWuPPowOaGmFk/IFYJ/12rccfijhTYpL1i6rvk9EmTLZNCco3aP5NhuIhlgzKP2KkpDJBki96IH7FE9lLpNnLph24Q9nSG2GqN72anZRQE7UE2t3GWbR1I2RFhBuZ28uhlLlJlaL3juD+AiVnpMxaCU= 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:(4636009)(366004)(8936002)(508600001)(38070700005)(38100700002)(26005)(186003)(110136005)(33656002)(6506007)(7696005)(66446008)(64756008)(66556008)(66476007)(122000001)(54906003)(66946007)(107886003)(76116006)(53546011)(52536014)(71200400001)(8676002)(9686003)(86362001)(5660300002)(19627235002)(55016002)(83380400001)(316002)(2906002)(30864003)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?7ga+gj70dFy7MHI6r9mqGqycsluJQCB02bwF7EBKpcEFeu4I4gG+orbZ6HwJ?= =?us-ascii?Q?t8UNDHPO9GeZxUve58Du0VVLGV89kBsn/t5tKltYU99flSPmJwN64xoVWXgk?= =?us-ascii?Q?xAVoZMvyBxHoPkOmqtAHxUcX5OnEZbw/DFpQRxTm4KfE6wbnbTQ6T+AOHaAi?= =?us-ascii?Q?EbFWZfM187f5oUhrxM4SIHGGAc3F/v1Y7y5Lp2IGByZYPHh3/hhIT1rcLuvc?= =?us-ascii?Q?5uy/2SdcVEwVackUPVCPusVI0Z3EOk6XKRT3yp/Tqxj1UrEEvtyI4KV/Hggn?= =?us-ascii?Q?NCmqDBIN4cp4r/3EukXmp6UZh5H5W2p6zE09ml8gZXKQCBNYdlAGobyrjOQ8?= =?us-ascii?Q?3ZPxyjAf12mLthb1Y51BRLhUMK4X/SyZFb6VK+w3o9z9YPB5te6ZplLM0hN7?= =?us-ascii?Q?HAWn6Zo02WN9jr4cZ7UScI/km/AaBGtSZW94s+H8g7lhlskCkq8pfixw9fiB?= =?us-ascii?Q?ovl3hEl08upMHoaIs1hLxY58PUjZPBDHOmN7kc4PuPNtvNcI6eAbTiyDI4B6?= =?us-ascii?Q?meNgsRxr837md0SV9jhatGRanY7iFv8c/FeEJ2MTg7iP6OfIF5tJ+L44I84x?= =?us-ascii?Q?kIrsOpb4SQfFlLQoDiFZW6ob0GFNoK1tm6aMwxB1qrIq9l1+cVT3ATuIfzqk?= =?us-ascii?Q?u+tFyIHZdjG1o2tKdQ1QdcxY2Hixf2Wyqj/pJSp1Yoo17NwX5YI84H12ts7A?= =?us-ascii?Q?XAsd/4/LM9BF5liBMsTtQM3zi54kUYTkhdyKeHUTvOyFKLIoXw7w3wNvgVwi?= =?us-ascii?Q?8siAgEogxA0Z1dreQuMQ1Mq5sKL6/BNLzZ2yqSt9MDqFvOFSGhBGbVKa+xi/?= =?us-ascii?Q?9yP2He/PYt0HgLnf/6PJaocOuRi5bIuk4qlQzC7Eu3+i8YboJYu6+HlNj+e8?= =?us-ascii?Q?NOkUeuzVGds6FS/x+jECmdTIBgPsVz8eEk7Tb1E2reqEY9sabebSFrvkl+P9?= =?us-ascii?Q?nwhQKGh/IxyeX7/wyv/3h8blNL6UamdKM5tPX7I3SpqnLfnxHQ0pBTNfgUv7?= =?us-ascii?Q?atfBnCV5/VVzkvSa3D2Juu9aAYCgpXl2eY6+kWtwfnJNNIiC+k72cxNHUZwE?= =?us-ascii?Q?PuJVuyFU3qt4xmIucSgxBITyM2fxDKLMkBHJ/t4j+86TPlDufph5cJdYsEIf?= =?us-ascii?Q?CmXSQlGhs1mf/HmsiDKuqIZvAO77k+2324mH8uuuwBsuh4XtYygWZBpCoLkR?= =?us-ascii?Q?XKA8vjS71HGeODZ3LPEz/bX3mG9sZSofumJLgyUCh6elnbKR+aJWQRju6lGh?= =?us-ascii?Q?5y363T1HF/cL728/Lhh017xUonINODR0gOHcm/lpjkB9ipRBd3yzreFSZiTw?= =?us-ascii?Q?ULAlNCTURtMgP+Zevyx+xj/m?= 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: bfe8daed-9dd2-4258-74c7-08d981538bd4 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Sep 2021 01:10:07.5610 (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: SlmfJ3NsIk0YrD2SqLCdtirzHbAwzVmvFXL8JX97ZO6jqEyX08NwwGQ39MXB/PGEjENaDJhRN5tLqkudnA+YNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5305 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 Reviewed-by: Chasel Chiu > -----Original Message----- > From: S, Ashraf Ali > Sent: Friday, September 24, 2021 7:43 PM > To: devel@edk2.groups.io > Cc: S, Ashraf Ali ; Chiu, Chasel ; > Desimone, Nathaniel L ; Zeng, Star > ; Kuo, Ted ; Duggapu, Chinni B > ; Chaganty, Rangasai V > ; Solanki, Digant H > ; V, Sangeetha ; Ni, R= ay > > Subject: [PATCH v7] IntelFsp2WrapperPkg : FSPM/S UPD data address based o= n > Build Type >=20 > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3642 > when the module is not building in IA32 mode which will lead to building = error. > when a module built-in X64 function pointer will be the size of 64bit wid= th which > cannot be fit in 32bit address which will lead to error. to overcome this= issue > introducing the 2 new PCD's for the 64bit modules can consume it. > Creating the API's to support different architecture >=20 > Cc: Chasel Chiu > Cc: Nate DeSimone > Cc: Star Zeng > Cc: Kuo Ted > Cc: Duggapu Chinni B > Cc: Rangasai V Chaganty > Cc: Digant H Solanki > Cc: Sangeetha V > Cc: Ray Ni > Signed-off-by: Ashraf Ali S > --- > .../FspmWrapperPeim/FspmWrapperPeim.c | 19 +++++++++++--- > .../FspmWrapperPeim/FspmWrapperPeim.inf | 16 ++++++++++-- > .../FspmWrapperPeim/IA32/FspmHelper.c | 26 +++++++++++++++++++ > .../FspmWrapperPeim/X64/FspmHelper.c | 26 +++++++++++++++++++ > .../FspsWrapperPeim/FspsWrapperPeim.c | 17 +++++++++--- > .../FspsWrapperPeim/FspsWrapperPeim.inf | 14 +++++++++- > .../FspsWrapperPeim/IA32/FspsHelper.c | 26 +++++++++++++++++++ > .../FspsWrapperPeim/X64/FspsHelper.c | 26 +++++++++++++++++++ > IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec | 2 ++ > 9 files changed, 162 insertions(+), 10 deletions(-) create mode 100644 > IntelFsp2WrapperPkg/FspmWrapperPeim/IA32/FspmHelper.c > create mode 100644 > IntelFsp2WrapperPkg/FspmWrapperPeim/X64/FspmHelper.c > create mode 100644 > IntelFsp2WrapperPkg/FspsWrapperPeim/IA32/FspsHelper.c > create mode 100644 IntelFsp2WrapperPkg/FspsWrapperPeim/X64/FspsHelper.c >=20 > diff --git a/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.c > b/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.c > index 24ab534620..4a15136c39 100644 > --- a/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.c > +++ b/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.c > @@ -3,7 +3,7 @@ > register TemporaryRamDonePpi to call TempRamExit API, and register > MemoryDiscoveredPpi > notify to call FspSiliconInit API. >=20 > - Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.
> + Copyright (c) 2014 - 2021, Intel Corporation. All rights > + reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > **/ > @@ -39,6 +39,17 @@ >=20 > extern EFI_GUID gFspHobGuid; >=20 > +/** > + Get the Fspm Upd Data Address from the PCD > + > + @return FSPM UPD Data Address > +**/ > +UINTN > +EFIAPI > +GetFspmUpdDataAddress ( > + VOID > + ); > + > /** > Call FspMemoryInit API. >=20 > @@ -59,7 +70,7 @@ PeiFspMemoryInit ( >=20 > DEBUG ((DEBUG_INFO, "PeiFspMemoryInit enter\n")); >=20 > - FspHobListPtr =3D NULL; > + FspHobListPtr =3D NULL; > FspmUpdDataPtr =3D NULL; >=20 > FspmHeaderPtr =3D (FSP_INFO_HEADER *) FspFindFspHeader (PcdGet32 > (PcdFspmBaseAddress)); @@ -68,7 +79,7 @@ PeiFspMemoryInit ( > return EFI_DEVICE_ERROR; > } >=20 > - if (PcdGet32 (PcdFspmUpdDataAddress) =3D=3D 0 && (FspmHeaderPtr- > >CfgRegionSize !=3D 0) && (FspmHeaderPtr->CfgRegionOffset !=3D 0)) { > + if (GetFspmUpdDataAddress () =3D=3D 0 && (FspmHeaderPtr->CfgRegionSize= !=3D > + 0) && (FspmHeaderPtr->CfgRegionOffset !=3D 0)) { > // > // Copy default FSP-M UPD data from Flash > // > @@ -80,7 +91,7 @@ PeiFspMemoryInit ( > // > // External UPD is ready, get the buffer from PCD pointer. > // > - FspmUpdDataPtr =3D (FSPM_UPD_COMMON *)PcdGet32 > (PcdFspmUpdDataAddress); > + FspmUpdDataPtr =3D (FSPM_UPD_COMMON *) GetFspmUpdDataAddress (); > ASSERT (FspmUpdDataPtr !=3D NULL); > } >=20 > diff --git a/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf > b/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf > index 00166e56a0..5b4ad531e7 100644 > --- a/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf > +++ b/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf > @@ -6,7 +6,7 @@ > # register TemporaryRamDonePpi to call TempRamExit API, and register > MemoryDiscoveredPpi # notify to call FspSiliconInit API. > # > -# Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved. > +# Copyright (c) 2014 - 2021, Intel Corporation. All rights > +reserved.
> # > # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -45,6 +45,7 @@ > FspWrapperApiLib > FspWrapperApiTestLib > FspMeasurementLib > + PcdLib >=20 > [Packages] > MdePkg/MdePkg.dec > @@ -56,14 +57,25 @@ >=20 > [Pcd] > gIntelFsp2WrapperTokenSpaceGuid.PcdFspmBaseAddress ## CONSUMES > - gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress ## > CONSUMES > gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection ## CONSUMES > gIntelFsp2WrapperTokenSpaceGuid.PcdFsptBaseAddress ## CONSUMES > gIntelFsp2WrapperTokenSpaceGuid.PcdFspMeasurementConfig ## > CONSUMES >=20 > +[Pcd.IA32] > + gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress ## > CONSUMES > + > +[Pcd.X64] > + gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress64 ## > CONSUMES > + > [Sources] > FspmWrapperPeim.c >=20 > +[Sources.IA32] > + IA32/FspmHelper.c > + > +[Sources.X64] > + X64/FspmHelper.c > + > [Guids] > gFspHobGuid ## PRODUCES ## HOB > gFspApiPerformanceGuid ## SOMETIMES_CONSUMES ## GUID > diff --git a/IntelFsp2WrapperPkg/FspmWrapperPeim/IA32/FspmHelper.c > b/IntelFsp2WrapperPkg/FspmWrapperPeim/IA32/FspmHelper.c > new file mode 100644 > index 0000000000..cab11173cc > --- /dev/null > +++ b/IntelFsp2WrapperPkg/FspmWrapperPeim/IA32/FspmHelper.c > @@ -0,0 +1,26 @@ > +/** @file > + Sample to provide FSP wrapper related function. > + > + Copyright (c) 2021, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > + > +#include > +#include #include > + > + > +/** > + Get the Fspm Upd Data Address from the PCD > + > + @return FSPM UPD Data Address > +**/ > +UINTN > +EFIAPI > +GetFspmUpdDataAddress ( > + VOID > + ) > +{ > + return PcdGet32 (PcdFspmUpdDataAddress); } > diff --git a/IntelFsp2WrapperPkg/FspmWrapperPeim/X64/FspmHelper.c > b/IntelFsp2WrapperPkg/FspmWrapperPeim/X64/FspmHelper.c > new file mode 100644 > index 0000000000..25b89ff2e1 > --- /dev/null > +++ b/IntelFsp2WrapperPkg/FspmWrapperPeim/X64/FspmHelper.c > @@ -0,0 +1,26 @@ > +/** @file > + Sample to provide FSP wrapper related function. > + > + Copyright (c) 2021, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > + > +#include > +#include #include > + > + > +/** > + Get the Fspm Upd Data Address from the PCD > + > + @return FSPM UPD Data Address > +**/ > +UINTN > +EFIAPI > +GetFspmUpdDataAddress ( > + VOID > + ) > +{ > + return PcdGet64 (PcdFspmUpdDataAddress64); } > diff --git a/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.c > b/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.c > index 9d4f279e81..8bd510502f 100644 > --- a/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.c > +++ b/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.c > @@ -3,7 +3,7 @@ > register TemporaryRamDonePpi to call TempRamExit API, and register > MemoryDiscoveredPpi > notify to call FspSiliconInit API. >=20 > - Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.
> + Copyright (c) 2014 - 2021, Intel Corporation. All rights > + reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > **/ > @@ -58,6 +58,17 @@ S3EndOfPeiNotify( > IN VOID *Ppi > ); >=20 > +/** > + Get the Fsps Upd Data Address from the PCD > + > + @return FSPS UPD Data Address > +**/ > +UINTN > +EFIAPI > +GetFspsUpdDataAddress ( > + VOID > + ); > + > EFI_PEI_NOTIFY_DESCRIPTOR mS3EndOfPeiNotifyDesc =3D { > (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | > EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), > &gEfiEndOfPeiSignalPpiGuid, > @@ -283,7 +294,7 @@ PeiMemoryDiscoveredNotify ( > return EFI_DEVICE_ERROR; > } >=20 > - if (PcdGet32 (PcdFspsUpdDataAddress) =3D=3D 0 && (FspsHeaderPtr- > >CfgRegionSize !=3D 0) && (FspsHeaderPtr->CfgRegionOffset !=3D 0)) { > + if (GetFspsUpdDataAddress () =3D=3D 0 && (FspsHeaderPtr->CfgRegionSize= !=3D > + 0) && (FspsHeaderPtr->CfgRegionOffset !=3D 0)) { > // > // Copy default FSP-S UPD data from Flash > // > @@ -292,7 +303,7 @@ PeiMemoryDiscoveredNotify ( > SourceData =3D (UINTN *)((UINTN)FspsHeaderPtr->ImageBase + > (UINTN)FspsHeaderPtr->CfgRegionOffset); > CopyMem (FspsUpdDataPtr, SourceData, (UINTN)FspsHeaderPtr- > >CfgRegionSize); > } else { > - FspsUpdDataPtr =3D (FSPS_UPD_COMMON *)PcdGet32 > (PcdFspsUpdDataAddress); > + FspsUpdDataPtr =3D (FSPS_UPD_COMMON *) GetFspsUpdDataAddress (); > ASSERT (FspsUpdDataPtr !=3D NULL); > } >=20 > diff --git a/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf > b/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf > index aeeca58d6d..e988ebab21 100644 > --- a/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf > +++ b/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf > @@ -45,6 +45,7 @@ > FspWrapperApiLib > FspWrapperApiTestLib > FspMeasurementLib > + PcdLib >=20 > [Packages] > MdePkg/MdePkg.dec > @@ -65,10 +66,15 @@ >=20 > [Pcd] > gIntelFsp2WrapperTokenSpaceGuid.PcdFspsBaseAddress ## CONSUMES > - gIntelFsp2WrapperTokenSpaceGuid.PcdFspsUpdDataAddress ## CONSUMES > gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection ## CONSUMES > gIntelFsp2WrapperTokenSpaceGuid.PcdFspMeasurementConfig ## > CONSUMES >=20 > +[Pcd.IA32] > + gIntelFsp2WrapperTokenSpaceGuid.PcdFspsUpdDataAddress ## CONSUMES > + > +[Pcd.X64] > + gIntelFsp2WrapperTokenSpaceGuid.PcdFspsUpdDataAddress64 ## > CONSUMES > + > [Guids] > gFspHobGuid ## CONSUMES ## HOB > gFspApiPerformanceGuid ## SOMETIMES_CONSUMES ## GUID > @@ -76,5 +82,11 @@ > [Sources] > FspsWrapperPeim.c >=20 > +[Sources.IA32] > + IA32/FspsHelper.c > + > +[Sources.X64] > + X64/FspsHelper.c > + > [Depex] > gEfiPeiMemoryDiscoveredPpiGuid > diff --git a/IntelFsp2WrapperPkg/FspsWrapperPeim/IA32/FspsHelper.c > b/IntelFsp2WrapperPkg/FspsWrapperPeim/IA32/FspsHelper.c > new file mode 100644 > index 0000000000..c4ae292ffb > --- /dev/null > +++ b/IntelFsp2WrapperPkg/FspsWrapperPeim/IA32/FspsHelper.c > @@ -0,0 +1,26 @@ > +/** @file > + Sample to provide FSP wrapper related function. > + > + Copyright (c) 2021, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > + > +#include > +#include #include > + > + > +/** > + Get the Fsps Upd Data Address from the PCD > + > + @return FSPS UPD Data Address > +**/ > +UINTN > +EFIAPI > +GetFspsUpdDataAddress ( > + VOID > + ) > +{ > + return PcdGet32 (PcdFspsUpdDataAddress); } > diff --git a/IntelFsp2WrapperPkg/FspsWrapperPeim/X64/FspsHelper.c > b/IntelFsp2WrapperPkg/FspsWrapperPeim/X64/FspsHelper.c > new file mode 100644 > index 0000000000..a0d6adb281 > --- /dev/null > +++ b/IntelFsp2WrapperPkg/FspsWrapperPeim/X64/FspsHelper.c > @@ -0,0 +1,26 @@ > +/** @file > + Sample to provide FSP wrapper related function. > + > + Copyright (c) 2021, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > + > +#include > +#include #include > + > + > +/** > + Get the Fsps Upd Data Address from the PCD > + > + @return FSPS UPD Data Address > +**/ > +UINTN > +EFIAPI > +GetFspsUpdDataAddress ( > + VOID > + ) > +{ > + return PcdGet64 (PcdFspsUpdDataAddress64); } > diff --git a/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec > b/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec > index a3b9363779..8c98dbd55d 100644 > --- a/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec > +++ b/IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec > @@ -121,3 +121,5 @@ > # >=20 > gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress|0x00000000|UIN > T32|0x50000000 >=20 > gIntelFsp2WrapperTokenSpaceGuid.PcdFspsUpdDataAddress|0x00000000|UINT > 32|0x50000001 > + > + > gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress64|0x00000000|U > IN > + T64|0x50000002 > + > + > gIntelFsp2WrapperTokenSpaceGuid.PcdFspsUpdDataAddress64|0x00000000|UI > N > + T64|0x50000003 > -- > 2.30.2.windows.1