From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web10.3842.1683582522406157109 for ; Mon, 08 May 2023 14:48:42 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ZJMjhhVn; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683582522; x=1715118522; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=YkrtIA3TDeXMSsu4lGA4L3KdVY+Bs4EijTe+M6QPthA=; b=ZJMjhhVnyNjWyR3GrDwRY4Zx4GG94rjaoEGz/dQ/IJZuTnv7wKNGq/77 njX5zITNan6mgAnrn1m6ZwgwIzcuiXLAm9+VZ8S1Z2BbygFvR9RKZcGc8 g+GoKnfwrAYJYVB+56wu0HGROjTsoBeTJ0d+jNuzjq+lArJfIxxJlT2fa N89trA63T8brk2+GxKgaADeC0LqC2drVRLoFOGAREAkUv9K8RobvFvgeW a9GBTCESef6v8DuHU7W9ABA8OpUCiLGtV/haZjubY3+7resJI9BHy+15R YB45QtDrFYEofPiP/2s6JRrRpkonLgYP17Qdd2D93Y1FcTiziOlUrzEBl w==; X-IronPort-AV: E=McAfee;i="6600,9927,10704"; a="334212622" X-IronPort-AV: E=Sophos;i="5.99,259,1677571200"; d="scan'208";a="334212622" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 May 2023 14:48:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10704"; a="1028566413" X-IronPort-AV: E=Sophos;i="5.99,259,1677571200"; d="scan'208";a="1028566413" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga005.fm.intel.com with ESMTP; 08 May 2023 14:48:40 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 8 May 2023 14:48:39 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2507.23; Mon, 8 May 2023 14:48:39 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) 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.2507.23 via Frontend Transport; Mon, 8 May 2023 14:48:39 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.173) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Mon, 8 May 2023 14:48:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RbuwWCLk7N1N66N+iwr5DSaT9z4Z5ubEC4zL0IfWo9IhZqHUeknI5+gHCADNLC8uMHv2+IGUuc0EXy+bKGVF9lx3M30Fh/ffM6WBM6mqb5kte0Y6TtjMgJAS+b32SiV62YTTsPhO1AP0m2lM8d+ah3/sVJmhV98fwbHLpTDYQRNlRCPo7syH59dk27Qh79O09I3hUXw0NdiIuZ/WW3aE4q7UkQjq3wIf/auavatNh3CpMoC9djuYzBpvvYlj9rckcwi/2wa4vwIEsz//cBILg71gHkAPvn33XXnHWELHbKTGP4qQl5alx1/wDjUGiOgwlIHLOWhj5EGV8SzA3RWFpg== 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=Ed6QVBLREoYz+vc5I5QnLCuN0jYeBw6hNUTBuKoR9u4=; b=a1uX1iCc36/6JNEvJTcn38+ZHJtJupJsBG5rMxcQmFM/J+zIRjhGRr48kZTjFEGENqefuJaASmG8jHG72+M5bF2TvHfiIoVAYTRNl8uklbakRljS0+i/ud9d84iqhS+RIiLsvrQPG0SWhsVcVcU30+7Hqqtr2De6wxNCUFYOoacl6ZLLfxC7KwZiLkgXlvpHs4HOEvbrFO6tFrBQR43PB1CWQo2jJJSW/TNAsSRxyWG25w32BHZY0O4SnJ8l2jaD0tYbEqSdVz4zhUxxnim9Tkupx/CUJadvPTZyfr3ISYobusff2xMXy9YVrlWnflg5Vq0d9ZhzTR+no2dJBGQA/g== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MW3PR11MB4538.namprd11.prod.outlook.com (2603:10b6:303:57::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Mon, 8 May 2023 21:48:36 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::9b1e:23e9:53e:291]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::9b1e:23e9:53e:291%7]) with mapi id 15.20.6363.032; Mon, 8 May 2023 21:48:36 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "Chiu, Chasel" , "Oram, Isaac W" , "Gudla, Raghava" CC: "Desimone, Nathaniel L" , "Kubacki, Michael" , "Chaganty, Rangasai V" , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-platforms:PATCH V1] MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. Thread-Topic: [edk2-devel] [edk2-platforms:PATCH V1] MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. Thread-Index: AQHZf8W34/VyLiUGG06CmasvLZHa1K9Qw1KAgAAGBoCAACO1oA== Date: Mon, 8 May 2023 21:48:35 +0000 Message-ID: References: <20230506000300.389-1-raghava.gudla@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|MW3PR11MB4538:EE_ x-ms-office365-filtering-correlation-id: 699f7ffe-dc9a-4a0e-de98-08db500df9dd x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qihkNEkglRgF2wYNwRs5U64lLrHKfu1IqMPxPi0YKrxP7ATHQtrO3808CZp/r1HtQxg4hbxJ7Cqa54tjK8Cmjc8WV+ixjBf1q6dFn1g1oMxGomTXDW2TwXltCgp1cgMQOSCvi5RCZmk8Eg7UTWmt7ZnrXXf6dHGNx8Z4e6s1wL9ub/BM+R6d5ZW97e0bKM4IoqKeAzXQ4rOQLen5aOzwggmc4I+5BPgSnxdRsGjm1fNbskA4+gHdN4jec+vfBs9ROULOsZWM2jAN23XEByzabj0XKqsIPnG381GIL4294iVE7qFjl02UEA9RrBsFxhH9v3Bv2NOCpNFmMF2cCMNnb9sRXmWgJ0VkKiWuknDcIf67IQIAmJaDoacG/4TWmKKjvWkQYqSyRKYfh9B++Z/+x00Cd15/u7sRPjvo8jXfKydensLX0x5nISiWJFtX8DYz6TVhtORqew4pGSn6d39ssHi+QpTkaxML351KCYsM2Lztk9gKGYc/fsoqRB1ns3nIwT98bmJekpPjAY3DuucdsXowmmhuRdsJPO0hIKi+DIfctZOQi+AgwNS3EdZ23vU+d2RJKx8qxMp21Vde1FQW7jKqZSBXe79VRWveITg2KTZNlpILW/YG4FDMEFVhJ9RcaaLgpq2j94f0TVJYjYS3qg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(136003)(376002)(39860400002)(396003)(346002)(451199021)(66899021)(966005)(66556008)(66446008)(64756008)(6636002)(4326008)(76116006)(66946007)(316002)(478600001)(86362001)(7696005)(19627235002)(110136005)(54906003)(66476007)(53546011)(33656002)(83380400001)(107886003)(9686003)(26005)(6506007)(71200400001)(52536014)(5660300002)(2906002)(41300700001)(8936002)(8676002)(55016003)(82960400001)(38100700002)(122000001)(38070700005)(186003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?PEMQdXJiIQ2ulKGwwLC2DVZBsHkq87+TTWjTpoHC/yy6n1o66fBzU96VjgdV?= =?us-ascii?Q?78XPJvkqxpql0WHgw5xkCLoN7FOX9tDnkuCjdKqlfn2/flc5TIv9tuidaEAz?= =?us-ascii?Q?bSrGrp190Sn+xOJfsdgKogh7eQ4Z9n71vVf1D7CwcGHGuDs4x381BSuW5Jv7?= =?us-ascii?Q?pkejzJSiUfOxU7YD+XvhStl71WRI4kUt6dJd3O2PsDWBQrqXHJJ3rVlwD/O2?= =?us-ascii?Q?Pd2AEiiFnYewNktUpkfA6oUfC3RKaz8tuo/9zqxRiwCsNwNI/l8KaTFTGcFa?= =?us-ascii?Q?sdPKFWXSdtMzDs8u9mAuYBrY4oILxEMehcOfzwploKF5Jz6AkKcw/V/rSuO5?= =?us-ascii?Q?7Wt0n1KhszKA7hV3KgGi8gveoHhoOdoVMsoPUFI05VqFA1SbVaZ2Ugd9nxaw?= =?us-ascii?Q?NgodWD7phjo59R8Oy1mD9D8Bi2oVWIKkyNoY0wr6IIJIWT/DhkJZR6SBnkMW?= =?us-ascii?Q?Yplt56zVOfDswwdMokDT1otOQ5YeowsPfmCQsQadMPM9NUBZ4akk2iJaYJ51?= =?us-ascii?Q?RDU0ix4arJGiF7S8KGGfqNbEfeRHwUv9sZdSIXFAmTQ4LkvPKDaW1mByknd3?= =?us-ascii?Q?o2EkG3yjNIRD/YSAB73VVD5OF9bn3j2/bvVi4RCmwiVIQHUZ9wjbGasvMWiN?= =?us-ascii?Q?QEocxmjDkGa2QCMkS8opjcDhnxvuPlaROO60w850szJyWY44fwpsWkD0yI9o?= =?us-ascii?Q?etHdc2xcs8os4yoQFNvVh0Ldngv9seagDurACYr7/xLqH/4WgnziBuzzoOqe?= =?us-ascii?Q?n2sVMRNAFLFeQov4X6pc/a6AAFOS2QMTlKQzEp6EBMI1aB/+Ge58Pvb4/4I3?= =?us-ascii?Q?PI26q2hHYiTUNRUE0VDyfgPY1J/Gv7cN7JrGa6lFBysHNPDBvjZIOE+Ljr28?= =?us-ascii?Q?YaZIULDAf0oUA84E1blE7z8lNk59WLMj/AtZn1D0iXLVLzXwPxZevWOHCJ9W?= =?us-ascii?Q?Fx44Rtq1hmaZ84NbL8zwfobL8m1NQYVEDzR2PZvYyLTBeKLGl1tIYUnzge8i?= =?us-ascii?Q?bPKfDvdzvtbrayfQnLgV0SrFib/GBabkOKushpjgitVJ9ACWpyX2ivXoWn7m?= =?us-ascii?Q?M5G26+ZXNVOi7Qvr//I/vbfZSI9uMFGkQmr0C/Yt7JtXAuOsgRPpYhQqHsZO?= =?us-ascii?Q?k+WjOw0nybk6SC1JB4SgcEQEnmPgnNqC2zFLqFHdvbBF5QtFID228qtNJMgS?= =?us-ascii?Q?B7Cyh+ugGrcyFcC5xRAvKSO07bP0Rn7UvHCEzUkCNzcQP964ub05WrnmX1Th?= =?us-ascii?Q?UVzj4IgR9BJiw1pJ6P0MAWqyXY12CpgpBCdOEi1roQWWhk/Mv/1vJG9fFcmK?= =?us-ascii?Q?A/TTwfibU0O4xbHudXnV+NEs75q74EL7tmN9pMCqoEI7cOL3qQdkmBqtxVPw?= =?us-ascii?Q?Znk55DLrn/b+M+U2QKi7JWf5fv3n/z2mGBRjeHXziXGDPcIH55NIMBdCfV01?= =?us-ascii?Q?kLf19FEVrj/xY9uS72cEA5Jc3IVHs0rlGqCpJ2KArxFLNsXGKZcmwd/kA19L?= =?us-ascii?Q?s01IYM+Gmt+Jn7p0l8NnXzrw6bVL/gDIhLhrwsQnWaDCkcaoujkFgvB+IXnm?= =?us-ascii?Q?P6BP4sTzpxmpQhNA84PJSdpRkvxwxTU9JLYrB1aHfcEpiVsa9b5j7sSOMkqx?= =?us-ascii?Q?DQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 699f7ffe-dc9a-4a0e-de98-08db500df9dd X-MS-Exchange-CrossTenant-originalarrivaltime: 08 May 2023 21:48:35.9338 (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: bifw1/t8/JW9XtX8EK/aNZQUCkgEN/nrEzNG5Ev4a3GPyK/KjXIq4e7oHkkDlzwqI5GxCq0xlxIjvP7vr3zJwpjQBP8n21LP0Kagn/+HOMw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4538 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable When reviewing the Variable feature that adds integrity and confidentiality= , I suggested that the interface between the Variable services and the NVStor= age could provide an abstraction to encode/decode the stored data that would support encryption, compression, or both. Could also support a platform=20 policy for which variables the encode/decode operation is applied. Wouldn't that be a better abstraction than piecemeal adding these features? Doesn't mean that this can't go in as-is. But would be an opportunity to consolidate in the future. Mike > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Chiu, > Chasel > Sent: Monday, May 8, 2023 12:37 PM > To: Oram, Isaac W ; Gudla, Raghava > ; devel@edk2.groups.io > Cc: Desimone, Nathaniel L ; Kubacki, > Michael ; Chaganty, Rangasai V > ; Chiu, Chasel > Subject: Re: [edk2-devel] [edk2-platforms:PATCH V1] > MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. >=20 >=20 > Hi Isaac, >=20 > Just my thoughts, I would vote for platform/bootloader to decide > compressing the variable data before saving to NVRAM or not. > It should be optional and when platform having big SPI flash they might n= ot > want to do this. >=20 > Thanks, > Chasel >=20 >=20 > > -----Original Message----- > > From: Oram, Isaac W > > Sent: Monday, May 8, 2023 12:15 PM > > To: Gudla, Raghava ; devel@edk2.groups.io > > Cc: Chiu, Chasel ; Desimone, Nathaniel L > > ; Kubacki, Michael > > ; Chaganty, Rangasai V > > > > Subject: RE: [edk2-platforms:PATCH V1] MinPlatformPkg/SaveMemoryConfig: > > Support NVS Data compression. > > > > The proposed implementation is fine and I will reviewed-by and push if = that > is > > the desired direction. > > > > My question is if we generally like the design of doing compression in > common > > MinPlatform code, decompression in board specific FSP wrapper code. Th= e > > alternative design is to do compression and decompression inside the FS= P. > This > > seems like a slightly simpler separation of responsibilities. > > The board code is responsible for save/restore, the FSP code is respons= ible > for > > data blob creation and use. Data integrity, authentication, compressio= n, etc > all > > can be done based on more detailed knowledge of the silicon > implementation > > requirements. > > > > I can see another argument though that doing it inside FSP effectively = forces > > both bootloader and FSP to carry compression/decompression. The > > compression/decompression aren't likely to need to be silicon specific.= And > > bootloader may have more requirements to balance than just the silicon > > requirements. > > > > Can I get some votes on preferred answer for compressing/decompressing > FSP > > non-volatile data in bootloader or FSP? > > > > Thanks, > > Isaac > > > > -----Original Message----- > > From: Gudla, Raghava > > Sent: Friday, May 5, 2023 5:03 PM > > To: devel@edk2.groups.io > > Cc: Gudla, Raghava ; Chiu, Chasel > > ; Desimone, Nathaniel L > > ; Oram, Isaac W > > > Subject: [edk2-platforms:PATCH V1] MinPlatformPkg/SaveMemoryConfig: > > Support NVS Data compression. > > > > Around 50KB "FspNonVolatileStorageHob" data can be compressed to > > approximately 3 KB which can save NVRAM space and enhance life of the S= PI > > part by decreasing the number of reclaim cycles needed. > > > > This patch added support to compress "FspNonVolatileStorageHob" data > before > > saving to NVRAM. > > > > A PcdEnableCompressFspNvsHob is introduced to enable/disable this > feature per > > platform usage. > > > > Cc: Chasel Chiu > > Cc: Nate DeSimone > > Cc: Isaac Oram > > > > Signed-off-by: Raghava Gudla > > --- > > .../SaveMemoryConfig/SaveMemoryConfig.c | 34 +++++++++++++++++++ > > .../SaveMemoryConfig/SaveMemoryConfig.inf | 6 +++- > > .../Include/Dsc/CoreCommonLib.dsc | 1 + > > .../Intel/MinPlatformPkg/MinPlatformPkg.dec | 5 +++ > > 4 files changed, 45 insertions(+), 1 deletion(-) > > > > diff --git > > > a/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemo > r > > yConfig.c > > > b/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMem > or > > yConfig.c > > index 0215e8eed..8aa935b54 100644 > > --- > > > a/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemo > r > > yConfig.c > > +++ > > > b/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMem > o > > +++ ryConfig.c > > @@ -21,6 +21,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > #include #include > > #include > > +#include +#include > > /** This is the standard EFI driver point th= at > detects > > whether there is a@@ -45,6 +47,9 @@ SaveMemoryConfigEntryPoint ( > > UINTN DataSize; UINTN BufferSize; BOOLEA= N > > DataIsIdentical;+ VOID *CompressedData;+ UINT64 > > CompressedSize;+ UINTN CompressedAllocationPages; DataS= ize > =3D 0; > > BufferSize =3D 0;@@ -73,6 +78,35 @@ SaveMemoryConfigEntryPoint ( > > } } + if (PcdGetBool (PcdEnableCompressFspNvsHob) =3D=3D 1) {+ > > CompressedData =3D NULL;+ CompressedSize =3D 0= ;+ > > CompressedAllocationPages =3D 0;++ DEBUG ((DEBUG_INFO, "compressing > mem > > config nvs variable\n"));+ if (DataSize > 0) {+ > CompressedAllocationPages =3D > > EFI_SIZE_TO_PAGES (DataSize);+ CompressedData =3D AllocatePages > > (CompressedAllocationPages);+ if (CompressedData =3D=3D NULL) {+ > DEBUG > > ((DEBUG_ERROR, "[%a] - Failed to allocate compressed data buffer.\n", > > __func__));+ ASSERT_EFI_ERROR (EFI_OUT_OF_RESOURCES);+ re= turn > > EFI_OUT_OF_RESOURCES;+ }++ CompressedSize =3D EFI_PAGES_TO_SI= ZE > > (CompressedAllocationPages);+ Status =3D Compress (HobData, DataSi= ze, > > CompressedData, &CompressedSize);+ if (EFI_ERROR (Status)) {+ > DEBUG > > ((DEBUG_ERROR, "[%a] - failed to compress data. Status =3D %r\n", __fun= c__, > > Status));+ ASSERT_EFI_ERROR (Status);+ > FreePool(CompressedData);+ > > return Status;+ } else {+ HobData =3D CompressedData;+ = DataSize > =3D > > (UINTN) CompressedSize;+ }+ }+ }+ if (HobData !=3D NULL) { = DEBUG > > ((DEBUG_INFO, "FspNvsHob.NvsDataLength:%d\n", DataSize)); DEBUG > > ((DEBUG_INFO, "FspNvsHob.NvsDataPtr : 0x%x\n", HobData));diff --git > > > a/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemo > r > > yConfig.inf > > > b/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMem > or > > yConfig.inf > > index 61e85a658..77920d031 100644 > > --- > > > a/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemo > r > > yConfig.inf > > +++ > > > b/Platform/Intel/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMem > o > > +++ ryConfig.inf > > @@ -26,6 +26,7 @@ > > LargeVariableReadLib LargeVariableWriteLib BaseLib+ CompressLib > > [Packages] MdePkg/MdePkg.dec@@ -45,6 +46,9 @@ > > gFspNonVolatileStorageHob2Guid ## CONSUMES > > gFspNvsBufferVariableGuid ## PRODUCES +[Pcd]+ > > gMinPlatformPkgTokenSpaceGuid.PcdEnableCompressFspNvsHob+ [Depex] > > gEfiVariableArchProtocolGuid AND- gEfiVariableWriteArchProtocol= Guid > > \ No newline at end of file > > + gEfiVariableWriteArchProtocolGuiddiff --git > > + a/Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc > > + b/Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc > > index 5ce21cf31..dfe7d836d 100644 > > --- a/Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc > > +++ b/Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc > > @@ -147,6 +147,7 @@ > > > > > BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSuppor > tLi > > b.inf > > > LargeVariableReadLib|MinPlatformPkg/Library/BaseLargeVariableLib/BaseLarg > > eVariableReadLib.inf > > > LargeVariableWriteLib|MinPlatformPkg/Library/BaseLargeVariableLib/BaseLar= g > > eVariableWriteLib.inf+ > > CompressLib|MinPlatformPkg/Library/CompressLib/CompressLib.inf # # > > CryptLibdiff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec > > b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec > > index 784abb828..e21d55fb3 100644 > > --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec > > +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec > > @@ -348,6 +348,11 @@ > > > > > gMinPlatformPkgTokenSpaceGuid.PcdFadtFlags|0x000086A5|UINT32|0x90000 > > 027 > > > gMinPlatformPkgTokenSpaceGuid.PcdFadtMajorVersion|0x06|UINT8|0x90000 > 0 > > 30 > > > gMinPlatformPkgTokenSpaceGuid.PcdFadtMinorVersion|0x03|UINT8|0x90000 > 0 > > 31+## Controls whether the Memory Config UEFI Variable is saved as > > compressed data.+# Data compression can significantly reduce variable > storage > > usage for FSP NVS buffer data.+# Platforms that choose to compress the > data > > will need to decompress the variable data upon+# extraction.+ > > > gMinPlatformPkgTokenSpaceGuid.PcdEnableCompressFspNvsHob|FALSE|BOO > L > > EAN|0x90000032 [PcdsFixedAtBuild] -- > > 2.19.1.windows.1 >=20 >=20 >=20 >=20 >=20