From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (NAM02-SN1-obe.outbound.protection.outlook.com [40.107.96.61]) by mx.groups.io with SMTP id smtpd.web10.50927.1685371243969407074 for ; Mon, 29 May 2023 07:40:44 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=NprcsieF; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.96.61, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cxj6I7xloSr516n6oqHbP1WfkJnbH/i1SONCSy1rzZH1reVM8uNOLy5t0njNdfj62gQw1I4gfXGz6EksOJFN/BFGaWAMhePTunJqswgZ1ritrAPTdBMssGvR/T3u0raqAlUp4fUiQ8xoX9CT0Gan2oBEKkbArA7+qHWPcH8GdXyrgzbuXgZj82AxX6pnunUmjdHHvLaGDEcdFbt59DpeKiwKNs8G3phSJ8BBszFkasroEEHBfWHWSMSgvjyV/19A5bIyBqHKhVTh7ZLNcGBCNs+rdul8njVnhuoWoRJmcLKdNrXRQFHTMm8e+X501hOxl+4IiITIdMvkKBI08WHlbg== 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=M0zVXQ83U7uGbzBIWl2qlxe4FwzWuPkLWCgeV5MPheU=; b=AhsfCBxXLat8+jcDDwPkJZbm8ReFemmRfoVCzDsb7jJJXgodHhr15uaFFRR2Hq6DTR8lS5EKliEBxIwcS9N8p4+g6A1YNyLpPxuIdNK1T2Yau8CR1KLHkwd+kY1slE0P7MVCpuaaqXM6DxQgY9mItc35XGv2A1D6pNKCNjdhYnSoSKqdAw9NHksVojCLzgHsR4AyhdtQez3QEo5z8ECuTfCzw/CA20OSlIIWVtP67i62IqLYHvUWvPNNhs/irPqv7Ez3y6omZHNJl5f7TGzyXOBaURr+ZgA2iLk1Eus/fRZn83BMdpZUd3no9lxFwkU3Jp67vEsblR2c/PGM77Z80g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=M0zVXQ83U7uGbzBIWl2qlxe4FwzWuPkLWCgeV5MPheU=; b=NprcsieFt4AEJFXXEc7QQsaMeQ533Dc1fg7ADwzRLVUnlhYXNSlGQyf7XtDWezZXNmLclGiTrhLSe75Y5NqDhsutvfRrBR3rPO/3NY+ppDoRWE+S5W/cGk9LaaTOIhtX2TgRSM5gAH7tjzajWsD9BmLNN5mLNfZGXBEHhVz30p8= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by CY8PR12MB8215.namprd12.prod.outlook.com (2603:10b6:930:77::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.22; Mon, 29 May 2023 14:40:41 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::edb0:bed8:c650:5040]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::edb0:bed8:c650:5040%6]) with mapi id 15.20.6433.022; Mon, 29 May 2023 14:40:41 +0000 From: "Chang, Abner" To: "Attar, AbdulLateef (Abdul Lateef)" , "devel@edk2.groups.io" CC: "Attar, AbdulLateef (Abdul Lateef)" Subject: Re: [PATCH v2 2/2] AMD/AmdMinBoardkPkg: Implements PeiReportFvLib Library Thread-Topic: [PATCH v2 2/2] AMD/AmdMinBoardkPkg: Implements PeiReportFvLib Library Thread-Index: AQHZjI/gv+IfGkKJvk+3bJ5QcM9m0q9xXemQ Date: Mon, 29 May 2023 14:40:41 +0000 Message-ID: References: <19efba7e1a2883cbc9607c81d018d08c2ea734a8.1684747555.git.abdattar@amd.com> In-Reply-To: <19efba7e1a2883cbc9607c81d018d08c2ea734a8.1684747555.git.abdattar@amd.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=698ba2ca-b679-4aac-8050-868d215e63aa;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-05-29T14:40:31Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|CY8PR12MB8215:EE_ x-ms-office365-filtering-correlation-id: 449ea78b-b3fa-46cd-1419-08db6052ad1c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cekmHquBRK2/K3Kb19JNl4TPanUCX7J+VqZ7y2thMnZo3edGqqHyq6vY4++7NAnHJ7jZNrM28FFnw3jPlPZGtL2UZ6m7XV20LadV4W8+RCg4Z0fIdMU0k3aqZlJ7M1r1p9d3wGaFaWJkr6NrFtMoiG5V2+2BI84nmr7E24IgDc84sZhmsp+thadD2bJCDb/H/fnvmr1O81J/vHu5BMKkfFUVf0BBYMIOwdY2xkrIuCV8HH0rK0zhRBj8GDtStXFL/P54GzwDgJRPc2OzxK0jLtbXPO/zbLHjeEL37w/Du2t4tm0PjekfV+ZGW/mPxu7Lg+S6a8BsrzBsrwEs0C40bEwPYmoq/sUviIPgIYA/Y/Ok5sbvlHRPjRbQ6G5jrRz7AZTzhqaHGghtI3SmPAUkILEg1Gh2lqg2fC7m77+qZZwtuVBCNL3wf8RuK4FH0LHyrEcteDcTIAOGX1Vj6e0O5/DoiJtOgAtA3Lu0JBQ5zMmo0lHNYVJlRplil1XtC7BGfS2wqVGhKksctODvmtaOJ8RizY9wqkr9Ti45JKPDmQm2J0oam0gzs9deh5qWDA48aaKEpFXxsR49u2mCnHTYnjcNulKmPEpjS3taBY2sA4NrRt/eOqYui5WG2DOQc6yu x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(6029001)(4636009)(136003)(376002)(39860400002)(396003)(366004)(346002)(451199021)(83380400001)(33656002)(71200400001)(5660300002)(316002)(66946007)(76116006)(64756008)(66446008)(66476007)(66556008)(52536014)(4326008)(122000001)(8676002)(8936002)(41300700001)(38100700002)(7696005)(86362001)(55016003)(110136005)(53546011)(30864003)(2906002)(6506007)(38070700005)(9686003)(186003)(478600001)(19627235002)(26005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?rzbpxx3WOmbUKNWKWlBr231hjOAGNmqg8W83nam33Hzaq6DOWPUzyU9cwujv?= =?us-ascii?Q?TKV3OzQJEnjyUVdFjWWoyYfv3ude06aI9FkibjbkVEZJ2Wz/ava0wRyc77+O?= =?us-ascii?Q?dGusIGjj3TuNo/vyJR/0X/8+vrS6xPXqiA1JaEz58F/+zkk6zppy4ghlXgMB?= =?us-ascii?Q?6T0JvhWqtkCoXXYEj/Rd48PQOo/nW05S+oOouoe5jh5Wi1sC5R8yUyFLmNjG?= =?us-ascii?Q?V/CfsAg9pQ94FmZ9mxHXqXSyjNvNlQoeBb+qcnHozuUIGPlcfouH40HhDufM?= =?us-ascii?Q?Vgy5dHRCxnJwrL6/p4odPydfSHwGTJ86V6vf2fS9+k9iiga2jt2EDLv/ytAY?= =?us-ascii?Q?KccYXIXgUaW7beZUjiryar+qjKAFg9uG4h8+SVjt2gf8hiVAumi4e/3O4RkV?= =?us-ascii?Q?BHKEEZHMiL3NqnJLQ9jO5h8nxH+L1GiOedYc5EXFYJ440w7TSiNS7uB0gOzI?= =?us-ascii?Q?Ni1RgIhY9D95rT7NNFTJ1F0u6+U1ZBFyLxkNjGcJXS/EORlKVxx8dFA4Swur?= =?us-ascii?Q?L7+kcU5pU6Ucj3eOL0TQp98OX2dBsti8KaYFsMTltig2JQDlUiwU8ENm5eXz?= =?us-ascii?Q?VO/s/KV+pBqMkkB9MWFZpHZT3r/sScXqpAyZNH5oPr+yt3vnRXJ4vvpBZ7gI?= =?us-ascii?Q?El1vnOP1Rs4SYTzT2+M4zD9jk7k7038lD68+NA4pukOiPJSwvw4ydY6lLoZ8?= =?us-ascii?Q?oYVIFzfLbbr8IEfR2LXOUsVphNfWaV7HbtBPuHFA5eriGKsfCy+JGqykpNIa?= =?us-ascii?Q?oCwvHfbtUliJkJFLoVBVhxB1F3u2nIr1GZOmuPhFNglC5MiR2ugpkTZodaor?= =?us-ascii?Q?S4npmxZEvwMbVii3PaPi3HeT99OED1F46UIQNCgtzLFJiM1flFCp43VXGlaK?= =?us-ascii?Q?sdy3z1bCp05dFanBE0pnVkdyDbMes0hQ9qKF+W09SyHr7ZcEW5EjaY1LBk9h?= =?us-ascii?Q?kirXGfHl16sedBNvCsYTGyQbf2N/+mk1W0L6zky97oBd5OXVc2kTt5FCuGfl?= =?us-ascii?Q?/taVf8gkyZjM1pQQB2dGJaRHL42BLgFUQb0uBoP8sWiYMFAoiWez0BdCfGd/?= =?us-ascii?Q?+xVVzT5mOEKM7ILxtoiDeL9OhpMQaQeUbm5XhUOEDJx+K3KdY8mQpgWy4szX?= =?us-ascii?Q?YmDu6eek93YAfHdK73blKUkwAwO22LoKuaSYrCiUfYZRFRv/InPbVQF88K/7?= =?us-ascii?Q?ag0KeE2Y9L808q7yPFS6WapoUrDzhQnw1F1Fol2QWsksq75LzF5UtSmSmeqb?= =?us-ascii?Q?ErIZaffdNKnnn+MMxOlwU2+uwEqjoQBfoZpY7WSdqzu54HljGgNTlh2ieQvl?= =?us-ascii?Q?avs675in4U5YMmXEp/OT1QonjJ5y2ImilKQE/QeUD4cEtU94ghJXevJnK2F3?= =?us-ascii?Q?6w97Otp6iS2Z1h+TLYWysWSe4jAsXRyeO/w/RLU8HobiZEWu1PDGSv8Ww9ux?= =?us-ascii?Q?sIWSfJARA5I6d5W3njXB7D0LLkuxCyFHwZ68x0SDu0BFsaDbbKEs1Up3L/Vt?= =?us-ascii?Q?7gS06FqDlpPmomn6KP6CQwcvmhUm+mippD7a+n9OmNFi46/LhbxO75E14X8H?= =?us-ascii?Q?1GEP5cKUkcS9gBYn1vY=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 449ea78b-b3fa-46cd-1419-08db6052ad1c X-MS-Exchange-CrossTenant-originalarrivaltime: 29 May 2023 14:40:41.0582 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zBkXwjAxX8JudkjMvpAYvvY533lzfTwQz+Zhp+uRj1TB99a7XpjMIXVVc6P6rmjkWVDuDgqtrA8xLcaBbxlQ0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8215 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Reviewed-by: Abner Chang > -----Original Message----- > From: Abdul Lateef Attar > Sent: Monday, May 22, 2023 5:29 PM > To: devel@edk2.groups.io > Cc: Attar, AbdulLateef (Abdul Lateef) ; Chang, > Abner > Subject: [PATCH v2 2/2] AMD/AmdMinBoardkPkg: Implements > PeiReportFvLib Library > > Customize PeiReportFvLib library for AMD platforms by > adding below changes. > Installs Advanced Security FV. > Adds facility to install FV above 4GB address space. > > Cc: Abner Chang > > Signed-off-by: Abdul Lateef Attar > --- > .../AMD/AmdMinBoardPkg/AmdMinBoardPkg.dec | 8 + > .../AMD/AmdMinBoardPkg/AmdMinBoardPkg.dsc | 2 + > .../Library/PeiReportFvLib/PeiReportFvLib.inf | 57 +++++ > .../Library/PeiReportFvLib/PeiReportFvLib.c | 239 ++++++++++++++++++ > 4 files changed, 306 insertions(+) > create mode 100644 > Platform/AMD/AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.inf > create mode 100644 > Platform/AMD/AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.c > > diff --git a/Platform/AMD/AmdMinBoardPkg/AmdMinBoardPkg.dec > b/Platform/AMD/AmdMinBoardPkg/AmdMinBoardPkg.dec > index 65ba08545021..03d1d77c34eb 100644 > --- a/Platform/AMD/AmdMinBoardPkg/AmdMinBoardPkg.dec > +++ b/Platform/AMD/AmdMinBoardPkg/AmdMinBoardPkg.dec > @@ -33,3 +33,11 @@ [PcdsFixedAtBuild, PcdsPatchableInModule, > PcdsDynamic, PcdsDynamicEx] > # PreFetch Memory padding in bytes, default 2MB > > gAmdMinBoardPkgTokenSpaceGuid.PcdPciHotPlugResourcePadPMem|0x002 > 00000|UINT32|0x10000001 > > + # PCDs to support loading of FV above 4GB address space > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedBase > |0x0000000000000000|UINT64|0x10000004 > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvOsBootBase > |0x0000000000000000|UINT64|0x10000005 > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvUefiBootBase > |0x0000000000000000|UINT64|0x10000006 > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityBase > |0x0000000000000000|UINT64|0x10000007 > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecuritySize > |0x00000000|UINT32|0x10000008 > + > gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityOffset > |0x00000000|UINT32|0x10000009 > + > diff --git a/Platform/AMD/AmdMinBoardPkg/AmdMinBoardPkg.dsc > b/Platform/AMD/AmdMinBoardPkg/AmdMinBoardPkg.dsc > index 1a8407250c56..be33089a45ef 100644 > --- a/Platform/AMD/AmdMinBoardPkg/AmdMinBoardPkg.dsc > +++ b/Platform/AMD/AmdMinBoardPkg/AmdMinBoardPkg.dsc > @@ -24,6 +24,7 @@ [Packages] > > [LibraryClasses] > SpcrDeviceLib|AmdMinBoardPkg/Library/SpcrDeviceLib/SpcrDeviceLib.inf > + ReportFvLib|AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.inf > > [LibraryClasses.common] > BaseLib|MdePkg/Library/BaseLib/BaseLib.inf > @@ -43,6 +44,7 @@ [Components] > > [Components.IA32] > AmdMinBoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.inf > + AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.inf > > [Components.X64] > AmdMinBoardPkg/PciHotPlug/PciHotPlugInit.inf > diff --git > a/Platform/AMD/AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.in > f > b/Platform/AMD/AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.i > nf > new file mode 100644 > index 000000000000..23ee503c42be > --- /dev/null > +++ > b/Platform/AMD/AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.i > nf > @@ -0,0 +1,57 @@ > +### @file > +# Component information file for the Report Firmware Volume (FV) library= . > +# > +# Copyright (c) 2018 - 2020, Intel Corporation. All rights reserved.
> +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +### > + > +[Defines] > + INF_VERSION =3D 1.29 > + BASE_NAME =3D PeiReportFvLib > + FILE_GUID =3D 3C207C28-DC43-4A3A-B572-6794C77AB51= 9 > + VERSION_STRING =3D 1.0 > + MODULE_TYPE =3D PEIM > + LIBRARY_CLASS =3D ReportFvLib > + > +[LibraryClasses] > + BaseMemoryLib > + DebugLib > + HobLib > + PeiServicesLib > + > +[Packages] > + AmdMinBoardPkg/AmdMinBoardPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MdePkg/MdePkg.dec > + MinPlatformPkg/MinPlatformPkg.dec > + > +[Sources] > + PeiReportFvLib.c > + > +[Pcd] > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedBase ## > CONSUMES > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityBase > ## CONSUMES > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecuritySize > ## CONSUMES > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvOsBootBase ## > CONSUMES > + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvUefiBootBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdBootStage ## CON= SUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaBaseAddress ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize ## CON= SUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedPreMemoryBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedPreMemorySize ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedSize ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspTBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvFspTSize ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootSize ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemoryBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemorySize ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvSecurityBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvSecuritySize ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootSize ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFspWrapperBootMode ## > CONSUMES > diff --git > a/Platform/AMD/AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.c > b/Platform/AMD/AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.c > new file mode 100644 > index 000000000000..f0b2abef611b > --- /dev/null > +++ > b/Platform/AMD/AmdMinBoardPkg/Library/PeiReportFvLib/PeiReportFvLib.c > @@ -0,0 +1,239 @@ > +/** @file > + Source code file for Report Firmware Volume (FV) library for AMD platf= orms. > + > + @par Note: > + This source has the reference of MinPlatformPkgs's PeriReportFvLib.c > module. > + > + Copyright (c) 2018 - 2020, Intel Corporation. All rights reserved.
> + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +VOID > +ReportPreMemFv ( > + VOID > + ) > +{ > + /// > + /// Note : FSP FVs except FSP-T FV are installed in IntelFsp2WrapperPk= g in > Dispatch mode. > + /// > + if (PcdGetBool (PcdFspWrapperBootMode)) { > + DEBUG ((DEBUG_INFO, "Install FlashFvFspT - 0x%x, 0x%x\n", PcdGet32 > (PcdFlashFvFspTBase), PcdGet32 (PcdFlashFvFspTSize))); > + PeiServicesInstallFvInfo2Ppi ( > + &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet32 > (PcdFlashFvFspTBase))->FileSystemGuid), > + (VOID *)(UINTN)PcdGet32 (PcdFlashFvFspTBase), > + PcdGet32 (PcdFlashFvFspTSize), > + NULL, > + NULL, > + 0 > + ); > + } > + > + DEBUG ((DEBUG_INFO, "Install FlashFvSecurity - 0x%x, 0x%x\n", PcdGet32 > (PcdFlashFvSecurityBase), PcdGet32 (PcdFlashFvSecuritySize))); > + PeiServicesInstallFvInfo2Ppi ( > + &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet32 > (PcdFlashFvSecurityBase))->FileSystemGuid), > + (VOID *)(UINTN)PcdGet32 (PcdFlashFvSecurityBase), > + PcdGet32 (PcdFlashFvSecuritySize), > + NULL, > + NULL, > + 0 > + ); > + if (PcdGet8 (PcdBootStage) >=3D 6) { > + DEBUG (( > + DEBUG_INFO, > + "Install FlashFvAdvancedPreMemory - 0x%x, 0x%x\n", > + PcdGet32 (PcdFlashFvAdvancedPreMemoryBase), > + PcdGet32 (PcdFlashFvAdvancedPreMemorySize) > + )); > + PeiServicesInstallFvInfo2Ppi ( > + &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet32 > (PcdFlashFvAdvancedPreMemoryBase))->FileSystemGuid), > + (VOID *)(UINTN)PcdGet32 (PcdFlashFvAdvancedPreMemoryBase), > + PcdGet32 (PcdFlashFvAdvancedPreMemorySize), > + NULL, > + NULL, > + 0 > + ); > + } > +} > + > +VOID > +ReportPostMemFv ( > + VOID > + ) > +{ > + EFI_STATUS Status; > + EFI_BOOT_MODE BootMode; > + EFI_HOB_FIRMWARE_VOLUME3 *Hob3; > + EFI_HOB_FIRMWARE_VOLUME *Hob; > + > + Status =3D PeiServicesGetBootMode (&BootMode); > + ASSERT_EFI_ERROR (Status); > + > + /// > + /// Note : FSP FVs except FSP-T FV are installed in IntelFsp2WrapperPk= g in > Dispatch mode. > + /// > + > + /// > + /// Build HOB for DXE > + /// > + if (BootMode =3D=3D BOOT_IN_RECOVERY_MODE) { > + /// > + /// Prepare the recovery service > + /// > + } else { > + DEBUG ((DEBUG_INFO, "Install FlashFvPostMemory - 0x%x, 0x%x\n", > PcdGet32 (PcdFlashFvPostMemoryBase), PcdGet32 > (PcdFlashFvPostMemorySize))); > + PeiServicesInstallFvInfo2Ppi ( > + &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet32 > (PcdFlashFvPostMemoryBase))->FileSystemGuid), > + (VOID *)(UINTN)PcdGet32 (PcdFlashFvPostMemoryBase), > + PcdGet32 (PcdFlashFvPostMemorySize), > + NULL, > + NULL, > + 0 > + ); > + > + if (PcdGet64 (PcdAmdFlashFvUefiBootBase) >=3D BASE_4GB) { > + Hob =3D NULL; > + Hob3 =3D NULL; > + DEBUG ((DEBUG_INFO, "Found FvUefiBoot FV above 4GB, creating FV > HOBs.\n")); > + Status =3D PeiServicesCreateHob (EFI_HOB_TYPE_FV, sizeof > (EFI_HOB_FIRMWARE_VOLUME), (VOID **)&Hob); > + if (!EFI_ERROR (Status)) { > + Hob->BaseAddress =3D PcdGet64 (PcdAmdFlashFvUefiBootBase); > + Hob->Length =3D PcdGet32 (PcdFlashFvUefiBootSize); > + } > + > + Status =3D PeiServicesCreateHob (EFI_HOB_TYPE_FV3, sizeof > (EFI_HOB_FIRMWARE_VOLUME3), (VOID **)&Hob3); > + if (!EFI_ERROR (Status)) { > + Hob3->BaseAddress =3D PcdGet64 (PcdAmdFlashFvUefiBootBa= se); > + Hob3->Length =3D PcdGet32 (PcdFlashFvUefiBootSize)= ; > + Hob3->AuthenticationStatus =3D 0; > + Hob3->ExtractedFv =3D FALSE; > + } > + } else { > + DEBUG ((DEBUG_INFO, "Install FlashFvUefiBoot - 0x%lx, 0x%x\n", > PcdGet64 (PcdAmdFlashFvUefiBootBase), PcdGet32 > (PcdFlashFvUefiBootSize))); > + PeiServicesInstallFvInfo2Ppi ( > + &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet64 > (PcdAmdFlashFvUefiBootBase))->FileSystemGuid), > + (VOID *)(UINTN)PcdGet64 (PcdAmdFlashFvUefiBootBase), > + PcdGet32 (PcdFlashFvUefiBootSize), > + NULL, > + NULL, > + 0 > + ); > + } > + > + if (PcdGet64 (PcdAmdFlashFvOsBootBase) >=3D BASE_4GB) { > + Hob =3D NULL; > + Hob3 =3D NULL; > + DEBUG ((DEBUG_INFO, "Found FvOsBoot FV above 4GB, creating FV > HOBs.\n")); > + Status =3D PeiServicesCreateHob (EFI_HOB_TYPE_FV, sizeof > (EFI_HOB_FIRMWARE_VOLUME), (VOID **)&Hob); > + if (!EFI_ERROR (Status)) { > + Hob->BaseAddress =3D PcdGet64 (PcdAmdFlashFvOsBootBase); > + Hob->Length =3D PcdGet32 (PcdFlashFvOsBootSize); > + } > + > + Status =3D PeiServicesCreateHob (EFI_HOB_TYPE_FV3, sizeof > (EFI_HOB_FIRMWARE_VOLUME3), (VOID **)&Hob3); > + if (!EFI_ERROR (Status)) { > + Hob3->BaseAddress =3D PcdGet64 (PcdAmdFlashFvOsBootBase= ); > + Hob3->Length =3D PcdGet32 (PcdFlashFvOsBootSize); > + Hob3->AuthenticationStatus =3D 0; > + Hob3->ExtractedFv =3D FALSE; > + } > + } else { > + DEBUG ((DEBUG_INFO, "Install FlashFvOsBoot - 0x%lx, 0x%x\n", > PcdGet64 (PcdAmdFlashFvOsBootBase), PcdGet32 (PcdFlashFvOsBootSize))); > + PeiServicesInstallFvInfo2Ppi ( > + &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet64 > (PcdAmdFlashFvOsBootBase))->FileSystemGuid), > + (VOID *)(UINTN)PcdGet64 (PcdAmdFlashFvOsBootBase), > + PcdGet32 (PcdFlashFvOsBootSize), > + NULL, > + NULL, > + 0 > + ); > + } > + > + if (PcdGet8 (PcdBootStage) >=3D 6) { > + if (PcdGet64 (PcdAmdFlashFvAdvancedBase) >=3D BASE_4GB) { > + Hob =3D NULL; > + Hob3 =3D NULL; > + DEBUG ((DEBUG_INFO, "Found FvAdvanced FV above 4GB, creating FV > HOBs.\n")); > + Status =3D PeiServicesCreateHob (EFI_HOB_TYPE_FV, sizeof > (EFI_HOB_FIRMWARE_VOLUME), (VOID **)&Hob); > + if (!EFI_ERROR (Status)) { > + Hob->BaseAddress =3D PcdGet64 (PcdAmdFlashFvAdvancedBase); > + Hob->Length =3D PcdGet32 (PcdFlashFvAdvancedSize); > + } > + > + Status =3D PeiServicesCreateHob (EFI_HOB_TYPE_FV3, sizeof > (EFI_HOB_FIRMWARE_VOLUME3), (VOID **)&Hob3); > + if (!EFI_ERROR (Status)) { > + Hob3->BaseAddress =3D PcdGet64 (PcdAmdFlashFvAdvanced= Base); > + Hob3->Length =3D PcdGet32 (PcdFlashFvAdvancedSiz= e); > + Hob3->AuthenticationStatus =3D 0; > + Hob3->ExtractedFv =3D FALSE; > + } > + } else { > + DEBUG ((DEBUG_INFO, "Install FlashFvAdvanced - 0x%lx, 0x%x\n", > PcdGet64 (PcdAmdFlashFvAdvancedBase), PcdGet32 > (PcdFlashFvAdvancedSize))); > + PeiServicesInstallFvInfo2Ppi ( > + &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet64 > (PcdAmdFlashFvAdvancedBase))->FileSystemGuid), > + (VOID *)(UINTN)PcdGet64 (PcdAmdFlashFvAdvancedBase), > + PcdGet32 (PcdFlashFvAdvancedSize), > + NULL, > + NULL, > + 0 > + ); > + } > + } > + } > + > + if (PcdGet64 (PcdAmdFlashFvAdvancedSecurityBase) >=3D BASE_4GB) { > + Hob =3D NULL; > + Hob3 =3D NULL; > + DEBUG ((DEBUG_INFO, "Found FvAdvancedSecurity FV above 4GB, > creating FV HOBs.\n")); > + Status =3D PeiServicesCreateHob (EFI_HOB_TYPE_FV, sizeof > (EFI_HOB_FIRMWARE_VOLUME), (VOID **)&Hob); > + if (!EFI_ERROR (Status)) { > + Hob->BaseAddress =3D PcdGet64 (PcdAmdFlashFvAdvancedSecurityBase); > + Hob->Length =3D PcdGet32 (PcdAmdFlashFvAdvancedSecuritySize); > + } > + > + Status =3D PeiServicesCreateHob (EFI_HOB_TYPE_FV3, sizeof > (EFI_HOB_FIRMWARE_VOLUME3), (VOID **)&Hob3); > + if (!EFI_ERROR (Status)) { > + Hob3->BaseAddress =3D PcdGet64 > (PcdAmdFlashFvAdvancedSecurityBase); > + Hob3->Length =3D PcdGet32 (PcdAmdFlashFvAdvancedSecu= ritySize); > + Hob3->AuthenticationStatus =3D 0; > + Hob3->ExtractedFv =3D FALSE; > + } > + } else { > + DEBUG ((DEBUG_INFO, "Install FvAdvancedSecurity - 0x%lx, 0x%x\n", > PcdGet64 (PcdAmdFlashFvAdvancedSecurityBase), PcdGet32 > (PcdAmdFlashFvAdvancedSecuritySize))); > + PeiServicesInstallFvInfo2Ppi ( > + &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet64 > (PcdAmdFlashFvAdvancedSecurityBase))->FileSystemGuid), > + (VOID *)(UINTN)PcdGet64 (PcdAmdFlashFvAdvancedSecurityBase), > + PcdGet32 (PcdAmdFlashFvAdvancedSecuritySize), > + NULL, > + NULL, > + 0 > + ); > + } > + > + // > + // Report resource HOB for flash FV > + // > + BuildResourceDescriptorHob ( > + EFI_RESOURCE_MEMORY_MAPPED_IO, > + (EFI_RESOURCE_ATTRIBUTE_PRESENT | > + EFI_RESOURCE_ATTRIBUTE_INITIALIZED | > + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE), > + (UINTN)PcdGet32 (PcdFlashAreaBaseAddress), > + (UINTN)PcdGet32 (PcdFlashAreaSize) > + ); > + BuildMemoryAllocationHob ( > + (UINTN)PcdGet32 (PcdFlashAreaBaseAddress), > + (UINTN)PcdGet32 (PcdFlashAreaSize), > + EfiMemoryMappedIO > + ); > +} > -- > 2.25.1