From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 5A775AC0BFE for ; Thu, 14 Sep 2023 06:57:43 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=yFw9HwP7I22ZDWvbakLanb/04ng1ncWP+bzsTjl8zoA=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1694674662; v=1; b=a3lsgDMhNlqkd6aGenoCaIa4aNOvPiNUtUHmFkXytvELZZeKIqSi9T2oujctiuK4gfwkv6S1 XmghRRM7prlTTnXElSCEZHTYCua+3XIePfu7Q48bK/65v+kC7IXlb5ck91gUuJp+S9hgS4Nxqs7 FrsT1SAZvD55vKP4mIpRLY0Q= X-Received: by 127.0.0.2 with SMTP id 1rGfYY7687511xGCjT7yQIvz; Wed, 13 Sep 2023 23:57:42 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.6242.1694674661434811437 for ; Wed, 13 Sep 2023 23:57:41 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10832"; a="377780930" X-IronPort-AV: E=Sophos;i="6.02,145,1688454000"; d="scan'208";a="377780930" X-Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2023 23:57:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10832"; a="1075250353" X-IronPort-AV: E=Sophos;i="6.02,145,1688454000"; d="scan'208";a="1075250353" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Sep 2023 23:57:40 -0700 X-Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 13 Sep 2023 23:57:40 -0700 X-Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 13 Sep 2023 23:57:39 -0700 X-Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Wed, 13 Sep 2023 23:57:39 -0700 X-Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Wed, 13 Sep 2023 23:57:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j4PBdRLB94vD4Ci3kfI1+eE0vXld6GKbzDkCepx+VFGNQjh54eFyMlPRaR4ybV9zONu7G01ICVSq7prO6bI3YD8sPl/HfOorc/sX7y1Je3tPiaRdJjBrGU3JxfitZpp2Oc5JlGJsyOoHVTQH5fwDJUVvPK1nw2X1DjG3GJwcpm1TdOXIzRNEvMVKlNagMH3bBVXtFHd9ndQiSJy5hgwc9vSc0PasfHCuHZBgLywBRfxdNa5EDh+U5vsEWAnyF8v3c7ch4Xw5HuJIqFD4oG+UZYlDbvBf+282pyMGunh5AFMaVvnGztXbEK9YQYgFunvIGwIUHN7w8UyGIYfwCOplpA== 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=lJ+x8zRGeY7PrNDbP3/jG/w00rwj6e/4bSZRbQBsP5w=; b=hXD8kf6cZHWiv6/urJkNfkhfSIpnmWlooCNnoExant5NHKhdmFcwMVrziKN2OlGff46UQjwepBvUQKYaq1QzmJll1m8V5HVmmDM025yUocp2wnYLlGzxK5sxEAAjDJX5NgO4ZPCdka5eF3+0yELU/z5qusvc/3lhouE8PAjdnVeFCvv/oBwq04fVPqnKRAQaScBYLBNtgef4pwCLwS3SzUs5j55Abaj+iDqVtYX4arU59GrIxoQD7kn2i360UDU/3BAM7HO7U7PVZm4Tcaa7xC5VXuFXd6Q3jbOkzRYvNbAziMP8ZbPz8ZM5PXVvf+YNhO1uCqnGmt4CRpg7GLQpZA== 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 X-Received: from DM8PR11MB5752.namprd11.prod.outlook.com (2603:10b6:8:13::15) by DM4PR11MB6359.namprd11.prod.outlook.com (2603:10b6:8:b9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.31; Thu, 14 Sep 2023 06:57:35 +0000 X-Received: from DM8PR11MB5752.namprd11.prod.outlook.com ([fe80::93de:c6c0:4381:202b]) by DM8PR11MB5752.namprd11.prod.outlook.com ([fe80::93de:c6c0:4381:202b%6]) with mapi id 15.20.6792.020; Thu, 14 Sep 2023 06:57:35 +0000 From: "Wang Fan" To: "Kinney, Michael D" , "Gao, Liming" , "Jiang, Guomin" CC: "Bi, Dandan" , "devel@edk2.groups.io" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg: Support customized FV Migration Information Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg: Support customized FV Migration Information Thread-Index: AQHZ4VizFpT+tQTNIkCO9a2KsKsD97AZ7mtw Date: Thu, 14 Sep 2023 06:57:35 +0000 Message-ID: References: <17828B6EB2EFAEF3.9600@groups.io> In-Reply-To: <17828B6EB2EFAEF3.9600@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8PR11MB5752:EE_|DM4PR11MB6359:EE_ x-ms-office365-filtering-correlation-id: 63c82bb4-8dff-4447-3d13-08dbb4efe040 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: yk+PIz30CqRQwWeCv6DYVBzbBmn5l9RvoWpPxu2dNs1JJPF50ihxM59lsvkquHIeYWXK2/gJdifj4I7hTq8Z5+xKlKblJAJIdE8v3afftEIK0K5aTLCOOtkl7GvTMrEkh9ETat1tOEBt+pfp4+P9E1dqIE1+U7Zu/SM5ay85TcDmUPiF7m+HwFUz+rFB9GCj1YdCa/TNIbqGWF9i+ZGwU1KaI2PFo25jMMJpLK7vIffI4FBFtQway98e108fR+J/q7upQoxJLNPvsYw8gVp7gmj0+kvqMGp12iMAmh31suhp+hiKbrIhMgY//h42cxV4GDuusozmXAeEok34qXvVE433aTsQpE3nzweEk08FAFyO8bzgczy1s9euIhwbTemLP+bYu9WqnGyQaFY1etk0NoZQRPWDAvcynV6Z75/hODIiNsGbkmNT8S1931vrYtQ7rFEIsvDokYYEPI9xzHtSJay3RxameT5n/K16IFo8n041rtMinBDCE9HAG6vDtw87N2PM31BzOlL6ZMI4aFthbYytZns09VHXSl/vnVjKq1pOt9XfsYju8jZGc16iN0bvLwkDLPjGAADhCSMHaEcTT0WzcyRyYZdtRXOYBW9p6Bg9meYzSYDy/roOL4+xagm+ov1srbw2sF4AKVj/gyQXWw== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?s3XLd/E7Vj/TfRVaEphbj+Suoq/B9Q3oRIjF9tRJpcviqHTgGZJu3QSsA+hf?= =?us-ascii?Q?g3nt/cU1EXubd4HRUmKPOks5y0JMhmm1yEaOBG+fTcykxH0W6QuBcotq4ubF?= =?us-ascii?Q?nNOzfMd1w75qGI5R1mpOqxG+LorYWA+2MONNoNWyHf8SoMK+kwyWxKNL6eQk?= =?us-ascii?Q?RTJ4WAeiOvMVUX8qmDxIRcrTMXpzVbaQ2TUO0MTBLQAZw5LvOlLK+ZYPobMQ?= =?us-ascii?Q?hmNkszW5HQyyerVp8AQR8eMnkgbwV6TEmZxz/OLnpDJMxeHB1iXdM1f/rzWP?= =?us-ascii?Q?tRrdNCBUcMERTfokvOVrP/mEaZFIKcHRfH1g+3rHAJoLKge0AzuTriVFnv/Q?= =?us-ascii?Q?jwu5V45fgLbewKlRvLVBT7Y0+/oB68dRW37vXG/mnXqCxKYEBRlMfRsbOpXn?= =?us-ascii?Q?aFxKwoDNt7OVNUTeGf/FqTPGbp+2gymLrz/x7Nl5c0bu4UQDzza6ivUbNP0z?= =?us-ascii?Q?cJdNqIyxl04oToYX6E7CDiJVv1QlZfeTACukjiXxXZMA4k9aPDc8/YG7tCBr?= =?us-ascii?Q?9sEj77jglmOfxoAiSf27zOqJaQdW3a0qi2ImL8uACCo+r1uXMmMHu6fxUXRw?= =?us-ascii?Q?sQVvWxmFL3z4WdKtHCTMDWoXcb9CytgebwAvewS7x1ReI78exz9LA8nBGMd2?= =?us-ascii?Q?5wEFFJdDKkf8dA73dvopfTzXiXs8LB4Ljb0JwHzxgLdaA5mJWm0SB1VJPr3Y?= =?us-ascii?Q?/+hj1QRn/3DJ3sGh9+5z4z+p8Mu6cj51jqBSitS+JllMtXjdDhrprlMSqdoo?= =?us-ascii?Q?zWqS8l16phpUiZneKoz15NG9rcxHT2ERn9CzM3YluLclSDhMC5z14u/+ZOah?= =?us-ascii?Q?LtYxxOl49fv0xg1JLi2Jx+BRyoqs1fNyd+qoZ/T4pbhDx9tiM9Smym319PBf?= =?us-ascii?Q?Ql8nLqkSDhVhvUFfRkZhd5GTAJE+TBBRvll7MRGzQUAxyZ6ZmLCjBhUuh/ol?= =?us-ascii?Q?I39PWJ06q7G+kgalWRLWgyPd2/tWecrGEoiRBk3OXhXBqfavEqG+Jd9b0DQd?= =?us-ascii?Q?K/tch4w/Nw+tBsS08XQFfJ4m2NQ7PwxWYYp0XQeZyXNn5TS1mILu4CS18uLA?= =?us-ascii?Q?IxG9T1emEeLE7h/3UU6kaRDM/aKEVyn+6gS/66PO01X8Q+0r7D1lI04P0kvm?= =?us-ascii?Q?BV5bpfEjsStz7p9UU8ZNucUpe3s3UEu/oR8MNd6Ldbf3xv+fnbrc0f9mTxYr?= =?us-ascii?Q?nqU0fGBfvENvMyE0k0VZmOclWyU/12t/EfsBJsQsCaA6ilKjXk9P7O8sky4F?= =?us-ascii?Q?tVTf6iAh3vRofzpaAfOgOXlgF925Vqiv+y6Wk8z73jYHYR89bSneTrOBbftf?= =?us-ascii?Q?anX6f7ipFkpCiD3dxpE3rOiVBXyh+IBSo4UN5u4Jm4V3BzoQDycVEtk5R+jl?= =?us-ascii?Q?Nae/mULtrhj7c263F1eLn/ClxAbooDLt56cPPPenMC821SvHIivoG7gjDRty?= =?us-ascii?Q?IhW3l/TRVf88WPa45FfZCnfUfj0YDsierYDOKpwRpUUbFA3MGtcpXis8PM91?= =?us-ascii?Q?0muNv1YGE51ydgOOiysUJVhATcYcGFDHfXuX07lR6igmkWf0LUhX1vQSTqoF?= =?us-ascii?Q?fowNvNqf2/qI5bo7S5VOtX9ObUR207G2RWGblAt2?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5752.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63c82bb4-8dff-4447-3d13-08dbb4efe040 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Sep 2023 06:57:35.5072 (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: 6Q9rLtLYoWUYAtNW+3w3WJCCz3EPi9es3x684iC1YQQDfBz5Amyl2f7FI2CO5PsDyU+ZoR5Eqo0blpsbldjgiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6359 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,fan.wang@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: m4ADBhZiveqKFYIEeQY1VC9vx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=a3lsgDMh; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Hi Mike, Liming and Guomin Could you help review this change? Best Regards Fan -----Original Message----- From: devel@edk2.groups.io On Behalf Of Wang Fan Sent: Thursday, September 7, 2023 2:55 PM To: devel@edk2.groups.io Cc: Wang, Fan ; Kinney, Michael D ; Gao, Liming ; Jiang, Guomin ; Bi, Dandan Subject: [edk2-devel] [PATCH] MdeModulePkg: Support customized FV Migration= Information From: Wang Fan REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4533 There are use cases which not all FVs need be migrated from TempRam to perm= anent memory before TempRam tears down. This new guid is introduced to avoi= d unnecessary FV migration to improve boot performance. Platform can publis= h hob with this guid to customize FV migration info, and PEI Core will only= migrate FVs indicated by this Hob info. Cc: Michael D Kinney Cc: Liming Gao Cc: Guomin Jiang Cc: Dandan Bi Signed-off-by: Wang Fan --- MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 82 +++++++++++++------ MdeModulePkg/Core/Pei/PeiMain.inf | 1 + MdeModulePkg/Include/Guid/MigratedFvInfo.h | 19 +++++ MdeModulePkg/MdeModulePkg.dec | 3 +- 4 files changed, 79 insertions(+), 26 deletions(-) diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c b/MdeModulePkg/C= ore/Pei/Dispatcher/Dispatcher.c index 5f32ebb560..a9e4f8fcca 100644 --- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c +++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c @@ -1184,7 +1184,11 @@ EvacuateTempRam ( =20 PEI_CORE_FV_HANDLE PeiCoreFvHandle; EFI_PEI_CORE_FV_LOCATION_PPI *PeiCoreFvLocationPpi; + EDKII_TO_MIGRATE_FV_INFO *ToMigrateFvInfo; EDKII_MIGRATED_FV_INFO MigratedFvInfo; + EFI_PEI_HOB_POINTERS Hob; + BOOLEAN MigrateAllFvs; + UINT32 MigrationFlags; =20 ASSERT (Private->PeiMemoryInstalled); =20 @@ -1211,6 +1215,17 @@ EvacuateTempRam ( =20 ConvertPeiCorePpiPointers (Private, &PeiCoreFvHandle); =20 + // + // Check if platform defined hobs to indicate which FVs are expected to = migrate or keep raw data. + // If ToMigrateFvInfo hobs exists, only migrate FVs recorded by hobs. + // If ToMigrateFvInfo hobs not exists, migrate all FVs to permanant memo= ry. + // + MigrateAllFvs =3D TRUE; + Hob.Raw =3D GetFirstGuidHob (&gEdkiiToMigrateFvInfoGuid); + if (Hob.Raw !=3D NULL) { + MigrateAllFvs =3D FALSE; + } + for (FvIndex =3D 0; FvIndex < Private->FvCount; FvIndex++) { FvHeader =3D Private->Fv[FvIndex].FvHeader; ASSERT (FvHeader !=3D NULL); @@ -1224,6 +1239,25 @@ EvacuateTempRam ( ) ) { + if (MigrateAllFvs) { + MigrationFlags =3D 0; + } else { + MigrationFlags =3D FLAGS_SKIP_FV_MIGRATION | FLAGS_SKIP_FV_RAW_DAT= A_COPY; + Hob.Raw =3D GetFirstGuidHob (&gEdkiiToMigrateFvInfoGuid); + while (Hob.Raw !=3D NULL) { + ToMigrateFvInfo =3D GET_GUID_HOB_DATA (Hob); + if (ToMigrateFvInfo->FvOrgBase =3D=3D (UINT32)(UINTN)FvHeader) { + MigrationFlags =3D ToMigrateFvInfo->MigrationFlags; + break; + } + Hob.Raw =3D GET_NEXT_HOB (Hob); + Hob.Raw =3D GetNextGuidHob (&gEdkiiToMigrateFvInfoGuid, Hob.Raw)= ; + } + } + if (MigrationFlags & FLAGS_SKIP_FV_MIGRATION) { + continue; + } + // // Allocate page to save the rebased PEIMs, the PEIMs will get dispa= tched later. // @@ -1234,18 +1268,7 @@ EvacuateTempRam ( ); ASSERT_EFI_ERROR (Status); MigratedFvHeader =3D (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHeaderAd= dress; - - // - // Allocate pool to save the raw PEIMs, which is used to keep consis= tent context across - // multiple boot and PCR0 will keep the same no matter if the addres= s of allocated page is changed. - // - Status =3D PeiServicesAllocatePages ( - EfiBootServicesCode, - EFI_SIZE_TO_PAGES ((UINTN)FvHeader->FvLength), - &FvHeaderAddress - ); - ASSERT_EFI_ERROR (Status); - RawDataFvHeader =3D (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHeaderAdd= ress; + CopyMem (MigratedFvHeader, FvHeader, (UINTN)FvHeader->FvLength); =20 DEBUG (( DEBUG_VERBOSE, @@ -1256,18 +1279,29 @@ EvacuateTempRam ( )); =20 // - // Copy the context to the rebased pages and raw pages, and create h= ob to save the - // information. The MigratedFvInfo HOB will never be produced when - // PcdMigrateTemporaryRamFirmwareVolumes is FALSE, because the PCD c= ontrol the - // feature. + // Copy the context to the raw pages, and create hob to save the inf= ormation. The MigratedFvInfo + // HOB will never be produced when PcdMigrateTemporaryRamFirmwareVol= umes is FALSE, because the PCD + // controls the feature. // - CopyMem (MigratedFvHeader, FvHeader, (UINTN)FvHeader->FvLength); - CopyMem (RawDataFvHeader, MigratedFvHeader, (UINTN)FvHeader->FvLengt= h); - MigratedFvInfo.FvOrgBase =3D (UINT32)(UINTN)FvHeader; - MigratedFvInfo.FvNewBase =3D (UINT32)(UINTN)MigratedFvHeader; - MigratedFvInfo.FvDataBase =3D (UINT32)(UINTN)RawDataFvHeader; - MigratedFvInfo.FvLength =3D (UINT32)(UINTN)FvHeader->FvLength; - BuildGuidDataHob (&gEdkiiMigratedFvInfoGuid, &MigratedFvInfo, sizeof= (MigratedFvInfo)); + if ((MigrationFlags & FLAGS_SKIP_FV_RAW_DATA_COPY) !=3D FLAGS_SKIP_F= V_RAW_DATA_COPY) { + // + // Allocate pool to save the raw PEIMs, which is used to keep cons= istent context across + // multiple boot and PCR0 will keep the same no matter if the addr= ess of allocated page is changed. + // + Status =3D PeiServicesAllocatePages ( + EfiBootServicesCode, + EFI_SIZE_TO_PAGES ((UINTN)FvHeader->FvLength), + &FvHeaderAddress + ); + ASSERT_EFI_ERROR (Status); + RawDataFvHeader =3D (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHeaderA= ddress; + CopyMem (RawDataFvHeader, MigratedFvHeader, (UINTN)FvHeader->FvLen= gth); + MigratedFvInfo.FvOrgBase =3D (UINT32)(UINTN)FvHeader; + MigratedFvInfo.FvNewBase =3D (UINT32)(UINTN)MigratedFvHeader; + MigratedFvInfo.FvDataBase =3D (UINT32)(UINTN)RawDataFvHeader; + MigratedFvInfo.FvLength =3D (UINT32)(UINTN)FvHeader->FvLength; + BuildGuidDataHob (&gEdkiiMigratedFvInfoGuid, &MigratedFvInfo, size= of (MigratedFvInfo)); + } =20 // // Migrate any children for this FV now @@ -1330,8 +1364,6 @@ Evacua= teTempRam ( } } =20 - RemoveFvHobsInTemporaryMemory (Private); - return Status; } =20 diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf b/MdeModulePkg/Core/Pei/PeiM= ain.inf index 0cf357371a..944b230b0e 100644 --- a/MdeModulePkg/Core/Pei/PeiMain.inf +++ b/MdeModulePkg/Core/Pei/PeiMain.inf @@ -78,6 +78,7 @@ gEfiFirmwareFileSystem3Guid gStatusCodeCallbackGuid gEdkiiMigratedFvInfoGuid ## SOMETIMES_PRODUCES = ## HOB + gEdkiiToMigrateFvInfoGuid ## SOMETIMES_CONSUMES = ## HOB =20 [Ppis] gEfiPeiStatusCodePpiGuid ## SOMETIMES_CONSUMES # Pe= iReportStatusService is not ready if this PPI doesn't exist diff --git a/MdeModulePkg/Include/Guid/MigratedFvInfo.h b/MdeModulePkg/Incl= ude/Guid/MigratedFvInfo.h index aca2332a0e..543cd9ba7d 100644 --- a/MdeModulePkg/Include/Guid/MigratedFvInfo.h +++ b/MdeModulePkg/Include/Guid/MigratedFvInfo.h @@ -9,6 +9,24 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #ifndef __ED= KII_MIGRATED_FV_INFO_GUID_H__ #define __EDKII_MIGRATED_FV_INFO_GUID_H__ =20 +#define FLAGS_SKIP_FV_MIGRATION BIT0 +#define FLAGS_SKIP_FV_RAW_DATA_COPY BIT1 + +/// +/// EDKII_TO_MIGRATE_FV_INFO Hob information should be published by=20 +platform to indicate /// one FV is expected to migrate to permarnant memor= y or not before TempRam tears down. +/// +typedef struct { + UINT32 FvOrgBase; // original FV address + // + // Migration Flags: + // Bit0: Indicate to skip FV migration or not + // Bit1: Indicate to skip FV raw data copy or not + // Others: Reserved bits + // + UINT32 MigrationFlags; +} EDKII_TO_MIGRATE_FV_INFO; + typedef struct { UINT32 FvOrgBase; // original FV address UINT32 FvNewBase; // new FV address @@ -16,6 +34,7 @@ typedef struct { UINT32 FvLength; // Fv Length } EDKII_MIGRATED_FV_INFO; =20 +extern EFI_GUID gEdkiiToMigrateFvInfoGuid; extern EFI_GUID gEdkiiMigratedFvInfoGuid; =20 #endif // #ifndef __EDKII_MIGRATED_FV_INFO_GUID_H__ diff --git a/MdeModule= Pkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 0ff058b0a9..02b4= a3ba3c 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -416,7 +416,8 @@ gEdkiiCapsuleOnDiskNameGuid =3D { 0x98c80a4f, 0xe16b, 0x4d11, { 0x93, 0x= 9a, 0xab, 0xe5, 0x61, 0x26, 0x3, 0x30 } } =20 ## Include/Guid/MigratedFvInfo.h - gEdkiiMigratedFvInfoGuid =3D { 0xc1ab12f7, 0x74aa, 0x408d, { 0xa2, 0xf4,= 0xc6, 0xce, 0xfd, 0x17, 0x98, 0x71 } } + gEdkiiToMigrateFvInfoGuid =3D { 0xb4b140a5, 0x72f6, 0x4c21, { 0x93,=20 + 0xe4, 0xac, 0xc4, 0xec, 0xcb, 0x23, 0x23 } } gEdkiiMigratedFvInfoGuid = =20 + =3D { 0xc1ab12f7, 0x74aa, 0x408d, { 0xa2, 0xf4, 0xc6, 0xce, 0xfd, 0x17,= =20 + 0x98, 0x71 } } =20 # # GUID defined in UniversalPayload -- 2.29.2.windows.2 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108635): https://edk2.groups.io/g/devel/message/108635 Mute This Topic: https://groups.io/mt/101210068/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-