From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web10.1635.1683668517083216250 for ; Tue, 09 May 2023 14:41:57 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=Iyi8JDP3; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from [192.168.4.22] (unknown [47.201.8.94]) by linux.microsoft.com (Postfix) with ESMTPSA id 9273D20AECB3; Tue, 9 May 2023 14:41:55 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9273D20AECB3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1683668516; bh=6et6n7o2g+5ehYOJfnvC/P9RoWhmuWckkhuYBiA2RmE=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=Iyi8JDP3sgIWRbegXIvdRibcz90fcz9NBHOoUyj4JuLA7iXr7xiEMPsaLfES4yUkO FXKooHquEZSq9PzmQVW3st+wd2eChhwMiTlskeoTIE9f6dnt/JWNHcw4a8CF4KiZUN DnzJc+2HzQq+ecynlZTkbvZi766ZxYpGzrke8cMk= Message-ID: Date: Tue, 9 May 2023 17:41:54 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: Re: [edk2-devel] [edk2-platforms:PATCH V1] MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. To: devel@edk2.groups.io, chasel.chiu@intel.com, "Kubacki, Michael" Cc: "Desimone, Nathaniel L" , "Chaganty, Rangasai V" , "Gudla, Raghava" , "Oram, Isaac W" , "Kinney, Michael D" References: <20230506000300.389-1-raghava.gudla@intel.com> <51099a60-02d6-5bb0-6e9a-e3fbcf6a643c@linux.microsoft.com> From: "Michael Kubacki" In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Will do. I'll send the patch series soon. Thanks, Michael On 5/9/2023 5:06 PM, Chiu, Chasel wrote: > > Hi Michael, > > Please also add CompressLib to CoreCommonLib.dsc to prevent build failure from open source platforms. > > Thanks, > Chasel > > >> -----Original Message----- >> From: Chiu, Chasel >> Sent: Tuesday, May 9, 2023 12:30 PM >> To: devel@edk2.groups.io; Kubacki, Michael ; >> Michael Kubacki ; Gudla, Raghava >> ; Oram, Isaac W ; Kinney, >> Michael D >> Cc: Desimone, Nathaniel L ; Chaganty, >> Rangasai V >> Subject: RE: [edk2-devel] [edk2-platforms:PATCH V1] >> MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. >> >> >> Just reviewed the branch code and it is functionality the same so agree we can >> switch to Mike's implementation. >> Would you help to rebase and send updated patch for reviewing? >> >> Thanks, >> Chasel >> >> >> >>> -----Original Message----- >>> From: devel@edk2.groups.io On Behalf Of Michael >>> Kubacki via groups.io >>> Sent: Tuesday, May 9, 2023 12:18 PM >>> To: Chiu, Chasel ; Michael Kubacki >>> ; Gudla, Raghava >>> ; Oram, Isaac W ; >>> devel@edk2.groups.io; Kinney, Michael D >>> Cc: Desimone, Nathaniel L ; Chaganty, >>> Rangasai V >>> Subject: Re: [edk2-devel] [edk2-platforms:PATCH V1] >>> MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. >>> >>> I haven't done a deep comparison of the changes, but I'd lean toward >>> using what is in the branch that I referenced earlier since it has >>> been used for a while now. >>> >>> Is there anything of value in the new set of changes? >>> >>> Thanks, >>> Michael >>> >>> -----Original Message----- >>> From: Chiu, Chasel >>> Sent: Tuesday, May 9, 2023 2:56 PM >>> To: Michael Kubacki ; Gudla, Raghava >>> ; Oram, Isaac W ; >>> devel@edk2.groups.io; Kinney, Michael D >>> Cc: Desimone, Nathaniel L ; Michael >>> Kubacki ; Chaganty, Rangasai V >>> >>> Subject: [EXTERNAL] RE: [edk2-devel] [edk2-platforms:PATCH V1] >>> MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. >>> >>> >>> Hi Michael Kubacki, >>> >>> Since Rahava has rebased the patch it might be easier to add " Signed-off-by: >>> Michael Kubacki " to Rahave's patch >>> commit message so both of you are authors. >>> What do you think? >>> >>> By the way, I found a bug in SaveMemoryConfig.c: FreePool() should be >>> FreePages (CompressedData, CompressedAllocationPages); Raghava, please >>> help to fix it by sending V2 patch (adding -v2 to git format-patch >>> command) >>> >>> Thanks, >>> Chasel >>> >>> >>> >>>> -----Original Message----- >>>> From: Michael Kubacki >>>> Sent: Tuesday, May 9, 2023 11:06 AM >>>> To: Gudla, Raghava ; Oram, Isaac W >>>> ; devel@edk2.groups.io; Kinney, Michael D >>>> ; Chiu, Chasel >>>> Cc: Desimone, Nathaniel L ; Kubacki, >>>> Michael ; Chaganty, Rangasai V >>>> >>>> Subject: Re: [edk2-devel] [edk2-platforms:PATCH V1] >>>> MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. >>>> >>>> Thanks for reraising this. If you need me to rebase or help in >>>> anyway let me know. >>>> >>>> On 5/9/2023 1:41 PM, Gudla, Raghava wrote: >>>>> My patch is based on Michael's fix. I took his change to do a PoC >>>>> a while back >>>> and totally forgot that his patch is still available. We can proceed >>>> to merge Michael's patch. >>>>> >>>>> Thanks, >>>>> Raghava >>>>> >>>>> -----Original Message----- >>>>> From: Oram, Isaac W >>>>> Sent: Tuesday, May 9, 2023 10:35 AM >>>>> To: devel@edk2.groups.io; mikuback@linux.microsoft.com; Kinney, >>>>> Michael D ; Chiu, Chasel >>>>> ; Gudla, Raghava >>>>> Cc: Desimone, Nathaniel L ; >>>>> Kubacki, Michael ; Chaganty, >>>>> Rangasai V >>>>> Subject: RE: [edk2-devel] [edk2-platforms:PATCH V1] >>>> MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. >>>>> >>>>> Rereading that thread and this request, other opinions, etc, I am >>>>> convinced >>>> that the simpler interface and board responsibility is the correct >>>> short/medium term answer. I don't have an opinion on Mike Kinney's >>>> question on encapsulated services. I generally like that design, >>>> though I am sensitive to Michael Kubacki's feedback that variable >>>> services are too complex as it is. I guess it probably depends a >>>> lot on the specifics of the proposal. That said, it is pretty easy >>>> to migrate from a board specific solution to a more base layer >>>> solution in the >>> future, so adopting this now doesn't seem harmful to me. >>>>> >>>>> Raghava, can you look at Michael's fix? It looks nearly identical >>>>> to yours and >>>> general convention is to accept the earlier one in case of collision >>>> I believe. I like his PCD naming a little better, but both are fine to me. >>>>> >>>>> Regards, >>>>> Isaac >>>>> >>>>> -----Original Message----- >>>>> From: devel@edk2.groups.io On Behalf Of >>>>> Michael Kubacki >>>>> Sent: Tuesday, May 9, 2023 8:26 AM >>>>> To: devel@edk2.groups.io; Kinney, Michael D >>>>> ; Chiu, Chasel >>>>> ; Oram, Isaac W ; >>>>> Gudla, Raghava >>>>> Cc: Desimone, Nathaniel L ; >>>>> Kubacki, Michael ; Chaganty, >>>>> Rangasai V >>>>> Subject: Re: [edk2-devel] [edk2-platforms:PATCH V1] >>>> MinPlatformPkg/SaveMemoryConfig: Support NVS Data compression. >>>>> >>>>> At the surface, this looks similar to the following patch I sent a >>>>> while >>>>> back: >>>>> >>>>> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2F >>>>> ed >>>>> >>> >> k2.groups.io%2Fg%2Fdevel%2Fmessage%2F92644&data=05%7C01%7Cmichael. >>> ku >>>>> >>> >> backi%40microsoft.com%7C05c93413c875400acef708db50bf197d%7C72f988bf >>> 8 >>>>> >>> >> 6f141af91ab2d7cd011db47%7C1%7C0%7C638192553936149621%7CUnknown >>> %7CTWF >>>>> >>> >> pbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI >>>>> >>> >> 6Mn0%3D%7C3000%7C%7C%7C&sdata=E4hpQLMgLy0BKHngjpec88AI0v3TZ8xg >>> xebjU0 >>>>> SS0FM%3D&reserved=0 >>>>> >>>>> That triggered a thread where we had a similar discussion about >>>> LargeVariableLib responsibilities, etc. >>>>> >>>>> We still have a fork of SaveMemoryConfig that uses the PCD I sent >>>>> in the >>>>> patch: >>>>> >>>>> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2F >>>>> gi >>>>> >>> >> thub.com%2Fmicrosoft%2Fmu_common_intel_min_platform%2Fblob%2Freleas >>> e >>>>> >>> >> &data=05%7C01%7Cmichael.kubacki%40microsoft.com%7C05c93413c875400a >>> ce >>>>> >>> >> f708db50bf197d%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63819 >>> 255 >>>>> >>> >> 3936305834%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoi >>> V2luM >>>>> >>> >> zIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=lXFLZV78C >>> Pev >>>>> UL7De1%2B6RtHaKWQcjnXx6IFABcmWJ54%3D&reserved=0 >>>>> >>>> >>> >> /202208/MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig. >>>> in >>>>> f >>>>> >>>>> I believe a challenge that led to adding compression (in our fork >>>>> code) to >>>> SaveMemoryConfig was the fact that the data was produced in pre-mem >>>> PEI and compression is expensive in CAR. >>>>> >>>>> In general though, I still believe that it is simpler to separate >>>>> data mutation >>>> from service APIs. Platforms can manipulate data to achieve their >>>> goals whether size, security, and so on and the service APIs provide >>>> a simple interface to store and retrieve that data blob. >>>>> >>>>> I'd also like to see FSP reduce in size and eliminate operations >>>>> that are not >>>> essential to its role and can be consolidated/reused in the wrapper. >>>>> >>>>> Thanks, >>>>> Michael >>>>> >>>>> On 5/8/2023 5:48 PM, Michael D Kinney wrote: >>>>>> When reviewing the Variable feature that adds integrity and >>>>>> confidentiality, I suggested that the interface between the >>>>>> Variable services and the NVStorage could provide an abstraction >>>>>> to encode/decode the stored data that would support encryption, >>>>>> compression, or both. Could also support a platform 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. >>>>>>> >>>>>>> >>>>>>> Hi Isaac, >>>>>>> >>>>>>> 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 not want to do this. >>>>>>> >>>>>>> Thanks, >>>>>>> Chasel >>>>>>> >>>>>>> >>>>>>>> -----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. >>>>>>>> The alternative design is to do compression and decompression >>>>>>>> inside the >>>> FSP. >>>>>>> This >>>>>>>> seems like a slightly simpler separation of responsibilities. >>>>>>>> The board code is responsible for save/restore, the FSP code is >>>>>>>> responsible >>>>>>> for >>>>>>>> data blob creation and use. Data integrity, authentication, >>>>>>>> compression, 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 SPI 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 that >>>>>>> detects >>>>>>>> whether there is a@@ -45,6 +47,9 @@ SaveMemoryConfigEntryPoint ( >>>>>>>> UINTN DataSize; UINTN BufferSize; BOOLEAN >>>>>>>> DataIsIdentical;+ VOID *CompressedData;+ UINT64 >>>>>>>> CompressedSize;+ UINTN CompressedAllocationPages; >> DataSize >>>>>>> = 0; >>>>>>>> BufferSize = 0;@@ -73,6 +78,35 @@ SaveMemoryConfigEntryPoint ( >>>>>>>> } } + if (PcdGetBool (PcdEnableCompressFspNvsHob) == 1) {+ >>>>>>>> CompressedData = NULL;+ CompressedSize = 0;+ >>>>>>>> CompressedAllocationPages = 0;++ DEBUG ((DEBUG_INFO, >>> "compressing >>>>>>> mem >>>>>>>> config nvs variable\n"));+ if (DataSize > 0) {+ >>>>>>> CompressedAllocationPages = >>>>>>>> EFI_SIZE_TO_PAGES (DataSize);+ CompressedData = AllocatePages >>>>>>>> (CompressedAllocationPages);+ if (CompressedData == NULL) {+ >>>>>>> DEBUG >>>>>>>> ((DEBUG_ERROR, "[%a] - Failed to allocate compressed data buffer.\n", >>>>>>>> __func__));+ ASSERT_EFI_ERROR (EFI_OUT_OF_RESOURCES);+ >>>> return >>>>>>>> EFI_OUT_OF_RESOURCES;+ }++ CompressedSize = >>>> EFI_PAGES_TO_SIZE >>>>>>>> (CompressedAllocationPages);+ Status = Compress (HobData, >> DataSize, >>>>>>>> CompressedData, &CompressedSize);+ if (EFI_ERROR (Status)) {+ >>>>>>> DEBUG >>>>>>>> ((DEBUG_ERROR, "[%a] - failed to compress data. Status = %r\n", >>>> __func__, >>>>>>>> Status));+ ASSERT_EFI_ERROR (Status);+ >>>>>>> FreePool(CompressedData);+ >>> >>> >>> >>> Bug: it should be FreePages (CompressedData, >>> CompressedAllocationPages); >>> >>> >>> >>>>>>>> return Status;+ } else {+ HobData = CompressedData;+ >>> DataSize >>>>>>> = >>>>>>>> (UINTN) CompressedSize;+ }+ }+ }+ if (HobData != 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- >>>> gEfiVariableWriteArchProtocolGuid >>>>>>>> \ 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.d >>>>>>>> +++ sc >>>>>>>> @@ -147,6 +147,7 @@ >>>>>>>> >>>>>>>> >>>>>>> >>>> >> BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSuppor >>>>>>> tLi >>>>>>>> b.inf >>>>>>>> >>>>>>> LargeVariableReadLib|MinPlatformPkg/Library/BaseLargeVariableLib >>>>>>> LargeVariableReadLib|/B >>>>>>> LargeVariableReadLib|as >>>>>>> LargeVariableReadLib|e >>>>>>> LargeVariableReadLib|Larg >>>>>>>> eVariableReadLib.inf >>>>>>>> >>>>>>> LargeVariableWriteLib|MinPlatformPkg/Library/BaseLargeVariableLi >>>>>>> LargeVariableWriteLib|b/ >>>>>>> LargeVariableWriteLib|Ba >>>>>>> LargeVariableWriteLib|s >>>>>>> LargeVariableWriteLib|eLarg >>>>>>>> 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 >>>>>>>> 31+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 >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>> >>> >>> >>> > > > > >