From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D29CB81CE7 for ; Tue, 1 Nov 2016 11:43:02 -0700 (PDT) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP; 01 Nov 2016 11:43:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,580,1473145200"; d="scan'208";a="1062469560" Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by fmsmga001.fm.intel.com with ESMTP; 01 Nov 2016 11:43:04 -0700 Received: from orsmsx115.amr.corp.intel.com (10.22.240.11) by ORSMSX110.amr.corp.intel.com (10.22.240.8) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 1 Nov 2016 11:43:03 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.50]) by ORSMSX115.amr.corp.intel.com ([10.22.240.11]) with mapi id 14.03.0248.002; Tue, 1 Nov 2016 11:43:03 -0700 From: "Kinney, Michael D" To: "Yao, Jiewen" , "edk2-devel@lists.01.org" , "Kinney, Michael D" CC: "Steele, Kelly" , "Tian, Feng" , "Zeng, Star" , "Gao, Liming" , "Zhang, Chao B" Thread-Topic: [PATCH V5 6/7] QuarkPlatformPkg/dsc/fdf: Add capsule/recovery support. Thread-Index: AQHSMFkfLLV809VpNUiyCtmoCCgng6DEfoDA Date: Tue, 1 Nov 2016 18:43:01 +0000 Message-ID: References: <1477576218-2396-1-git-send-email-jiewen.yao@intel.com> <1477576218-2396-7-git-send-email-jiewen.yao@intel.com> In-Reply-To: <1477576218-2396-7-git-send-email-jiewen.yao@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTc0NmM5M2MtODk3YS00ZjJiLWI5ZGEtYTkwNGEzOGQxODU0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImxRRVE5VWE4dEoyd28wSXZQM1A3OU1GamN4Mkl5eVREZnlISDlFajdSdTg9In0= x-originating-ip: [10.22.254.139] MIME-Version: 1.0 Subject: Re: [PATCH V5 6/7] QuarkPlatformPkg/dsc/fdf: Add capsule/recovery support. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Nov 2016 18:43:02 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Jiewen, The default values for CAPSULE_ENABLE and RECOVERY_ENABLE in the [Defines]= =20 section should be FALSE to match Readme.MD documentation. Mike > -----Original Message----- > From: Yao, Jiewen > Sent: Thursday, October 27, 2016 6:50 AM > To: edk2-devel@lists.01.org > Cc: Kinney, Michael D ; Steele, Kelly > ; Tian, Feng ; Zeng, Star > ; Gao, Liming ; Zhang, Chao B > > Subject: [PATCH V5 6/7] QuarkPlatformPkg/dsc/fdf: Add capsule/recovery su= pport. >=20 > Add capsule and recovery support module in platform dsc and fdf. >=20 > Cc: Michael D Kinney > Cc: Kelly Steele > Cc: Feng Tian > Cc: Star Zeng > Cc: Liming Gao > Cc: Chao Zhang > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jiewen Yao > --- > QuarkPlatformPkg/Quark.dsc | 72 ++++++++-- > QuarkPlatformPkg/Quark.fdf | 137 ++++++++++++++++++++ > QuarkPlatformPkg/QuarkMin.dsc | 7 +- > 3 files changed, 201 insertions(+), 15 deletions(-) >=20 > diff --git a/QuarkPlatformPkg/Quark.dsc b/QuarkPlatformPkg/Quark.dsc > index d5988da..153f6e7 100644 > --- a/QuarkPlatformPkg/Quark.dsc > +++ b/QuarkPlatformPkg/Quark.dsc > @@ -39,6 +39,8 @@ > DEFINE SOURCE_DEBUG_ENABLE =3D FALSE > DEFINE PERFORMANCE_ENABLE =3D FALSE > DEFINE LOGGING =3D FALSE > + DEFINE CAPSULE_ENABLE =3D TRUE > + DEFINE RECOVERY_ENABLE =3D TRUE>=20 > # > # Galileo board. Options are [GEN1, GEN2] > @@ -160,11 +162,9 @@ > PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLi= bNull.inf > !endif >=20 > -!if $(SECURE_BOOT_ENABLE) || $(MEASURED_BOOT_ENABLE) > OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf > IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf > BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > -!endif >=20 > !if $(SECURE_BOOT_ENABLE) > PlatformSecureLib|QuarkPlatformPkg/Library/PlatformSecureLib/PlatformS= ecureLib.inf > @@ -225,6 +225,17 @@ >=20 > PlatformPcieHelperLib|QuarkPlatformPkg/Library/PlatformPcieHelperLib/Plat= formPcieHelper > Lib.inf >=20 > PlatformHelperLib|QuarkPlatformPkg/Library/PlatformHelperLib/DxePlatformH= elperLib.inf >=20 > +!if $(CAPSULE_ENABLE) > + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf > +!else > + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.in= f > +!endif > + > + > EdkiiSystemCapsuleLib|SignedCapsulePkg/Library/EdkiiSystemCapsuleLib/Edki= iSystemCapsule > Lib.inf > + > FmpAuthenticationLib|MdeModulePkg/Library/FmpAuthenticationLibNull/FmpAut= henticationLib > Null.inf > + IniParsingLib|SignedCapsulePkg/Library/IniParsingLib/IniParsingLib.inf > + > PlatformFlashAccessLib|QuarkPlatformPkg/Feature/Capsule/Library/PlatformF= lashAccessLib/ > PlatformFlashAccessLibDxe.inf > + > [LibraryClasses.common.SEC] > # > # SEC specific phase > @@ -250,9 +261,7 @@ >=20 > PlatformHelperLib|QuarkPlatformPkg/Library/PlatformHelperLib/PeiPlatformH= elperLib.inf >=20 > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCp= uExceptionHand > lerLib.inf > MpInitLib|UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf > -!if $(SECURE_BOOT_ENABLE) || $(MEASURED_BOOT_ENABLE) > BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf > -!endif > !if $(PERFORMANCE_ENABLE) > PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLi= b.inf > !endif > @@ -273,9 +282,7 @@ > PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf >=20 > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuEx= ceptionHandler > Lib.inf > SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf > -!if $(SECURE_BOOT_ENABLE) || $(MEASURED_BOOT_ENABLE) > BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf > -!endif > !if $(PERFORMANCE_ENABLE) > PerformanceLib|MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLi= b.inf > !endif > @@ -301,6 +308,10 @@ > BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf > !endif >=20 > +!if $(CAPSULE_ENABLE) > + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.= inf > +!endif > + > [LibraryClasses.IA32.UEFI_DRIVER,LibraryClasses.IA32.UEFI_APPLICATION] > PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf >=20 > @@ -431,6 +442,10 @@ >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand|FALSE >=20 > +!if $(RECOVERY_ENABLE) > + gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName|L"QUARKREC.Cap" > +!endif > + > [PcdsPatchableInModule] > gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x803000C7 > gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 > @@ -449,6 +464,11 @@ > gQuarkPlatformTokenSpaceGuid.PcdUserIsPhysicallyPresent|FALSE > gQuarkPlatformTokenSpaceGuid.PcdSpiFlashDeviceSize|0 >=20 > +!if $(CAPSULE_ENABLE) || $(RECOVERY_ENABLE) > + > gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareImageDescriptor|= {0x0}|VOID*|0x > 100 > + gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid|{0xc= 0, 0x20, 0xaf, > 0x62, 0x16, 0x70, 0x4a, 0x42, 0x9b, 0xf8, 0x9c, 0xcc, 0x86, 0x58, 0x40, 0= x90} > +!endif > + > !if $(MEASURED_BOOT_ENABLE) > # > # TPM1.2 { 0x8b01e5b6, 0x4f19, 0x46e8, { 0xab, 0x93, 0x1c, 0x53, = 0x67, 0x1b, > 0x90, 0xcc } } > @@ -540,6 +560,11 @@ > !endif > } >=20 > +!if $(CAPSULE_ENABLE) || $(RECOVERY_ENABLE) > + # FMP image decriptor > + > QuarkPlatformPkg/Feature/Capsule/SystemFirmwareDescriptor/SystemFirmwareD= escriptor.inf > +!endif > + > # > # PEI Core > # > @@ -594,6 +619,7 @@ > # > # Recovery > # > +!if $(RECOVERY_ENABLE) > QuarkSocPkg/QuarkSouthCluster/Usb/Common/Pei/UsbPei.inf > MdeModulePkg/Bus/Pci/EhciPei/EhciPei.inf > QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Pei/OhciPei.inf > @@ -601,6 +627,11 @@ > MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf > FatPkg/FatPei/FatPei.inf > MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf > + SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei= .inf { > + > + > FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibRsa2048Sha25= 6/FmpAuthentic > ationLibRsa2048Sha256.inf > + } > +!endif >=20 > [Components.IA32] > # > @@ -645,11 +676,7 @@ > NULL|MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLib.inf > } >=20 > - MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf { > - > - GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/Generi= cBdsLib.inf > - CapsuleLib|IntelFrameworkModulePkg/Library/DxeCapsuleLib/DxeCapsul= eLib.inf > - } > + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRunt= imeDxe.inf > MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf > PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe= .inf > @@ -675,6 +702,11 @@ > >=20 > UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManage= rLib.inf >=20 > PlatformBootManagerLib|QuarkPlatformPkg/Library/PlatformBootManagerLib/Pl= atformBootMana > gerLib.inf > +!if $(CAPSULE_ENABLE) > + > FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibPkcs7/FmpAut= henticationLib > Pkcs7.inf > +!else > + > FmpAuthenticationLib|MdeModulePkg/Library/FmpAuthenticationLibNull/FmpAut= henticationLib > Null.inf > +!endif > } > MdeModulePkg/Application/UiApp/UiApp.inf { > > @@ -889,5 +921,23 @@ > gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > } >=20 > +!if $(CAPSULE_ENABLE) > + MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf > + > + SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDx= e.inf { > + > + > FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibPkcs7/FmpAut= henticationLib > Pkcs7.inf > + } > + SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareUpdateDx= e.inf { > + > + > FmpAuthenticationLib|SecurityPkg/Library/FmpAuthenticationLibPkcs7/FmpAut= henticationLib > Pkcs7.inf > + } > + > + MdeModulePkg/Application/CapsuleApp/CapsuleApp.inf { > + > + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > + } > +!endif > + > [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] > MSFT:*_*_*_DLINK_FLAGS =3D /ALIGN:4096 > diff --git a/QuarkPlatformPkg/Quark.fdf b/QuarkPlatformPkg/Quark.fdf > index 9f51eb3..07a2734 100644 > --- a/QuarkPlatformPkg/Quark.fdf > +++ b/QuarkPlatformPkg/Quark.fdf > @@ -317,6 +317,11 @@ APRIORI PEI { > ## > INF UefiCpuPkg/SecCore/SecCore.inf >=20 > +!if $(CAPSULE_ENABLE) || $(RECOVERY_ENABLE) > + # FMP image decriptor > +INF RuleOverride =3D FMP_IMAGE_DESC > QuarkPlatformPkg/Feature/Capsule/SystemFirmwareDescriptor/SystemFirmwareD= escriptor.inf > +!endif > + > INF MdeModulePkg/Core/Pei/PeiMain.inf >=20 > ## > @@ -347,12 +352,16 @@ INF SecurityPkg/Tcg/TrEEConfig/TrEEConfigPei.inf > INF SecurityPkg/Tcg/TcgPei/TcgPei.inf > !endif >=20 > +!if $(RECOVERY_ENABLE) > FILE FV_IMAGE =3D 1E9D7604-EF45-46a0-BD8A-71AC78C17AC1 { > SECTION PEI_DEPEX_EXP =3D {gEfiPeiMemoryDiscoveredPpiGuid AND > gEfiPeiBootInRecoveryModePpiGuid} > SECTION GUIDED A31280AD-481E-41B6-95E8-127F4C984779 { # TIANO COMPR= ESS GUID > SECTION FV_IMAGE =3D FVRECOVERY_COMPONENTS > } > } > +!endif > + > +!if $(RECOVERY_ENABLE) >=20 > ########################################################################= ######## > # > @@ -390,6 +399,9 @@ INF MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf > INF MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPei.inf > INF FatPkg/FatPei/FatPei.inf > INF MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf > +INF SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoad= Pei.inf > + > +!endif >=20 > ########################################################################= ######## > # > @@ -579,6 +591,25 @@ INF SecurityPkg/Tcg/TcgDxe/TcgDxe.inf > INF RuleOverride =3D DRIVER_ACPITABLE SecurityPkg/Tcg/TcgSmm/TcgSmm.inf > !endif >=20 > +!if $(CAPSULE_ENABLE) > +INF MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf > +INF SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareRepor= tDxe.inf > +!endif > + > +!if $(RECOVERY_ENABLE) > +FILE FREEFORM =3D > PCD(gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiRsa2048Sha256TestPublicKey= FileGuid) { > + SECTION RAW =3D BaseTools/Source/Python/Rsa2048Sha256Sign/TestSigni= ngPublicKey.bin > + SECTION UI =3D "Rsa2048Sha256TestSigningPublicKey" > + } > +!endif > + > +!if $(CAPSULE_ENABLE) > +FILE FREEFORM =3D > PCD(gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiPkcs7TestPublicKeyFileGuid= ) { > + SECTION RAW =3D BaseTools/Source/Python/Pkcs7Sign/TestRoot.cer > + SECTION UI =3D "Pkcs7TestRoot" > + } > +!endif > + > ########################################################################= ######## > # > # FV Section > @@ -650,6 +681,102 @@ INF RuleOverride =3D TIANOCOMPRESSED > ShellPkg/Application/Shell/Shell.inf > INF RuleOverride =3D TIANOCOMPRESSED PerformancePkg/Dp_App/Dp.inf > !endif >=20 > +!if $(CAPSULE_ENABLE) || $(RECOVERY_ENABLE) > + > +[FV.CapsuleDispatchFv] > +FvAlignment =3D 16 > +ERASE_POLARITY =3D 1 > +MEMORY_MAPPED =3D TRUE > +STICKY_WRITE =3D TRUE > +LOCK_CAP =3D TRUE > +LOCK_STATUS =3D TRUE > +WRITE_DISABLED_CAP =3D TRUE > +WRITE_ENABLED_CAP =3D TRUE > +WRITE_STATUS =3D TRUE > +WRITE_LOCK_CAP =3D TRUE > +WRITE_LOCK_STATUS =3D TRUE > +READ_DISABLED_CAP =3D TRUE > +READ_ENABLED_CAP =3D TRUE > +READ_STATUS =3D TRUE > +READ_LOCK_CAP =3D TRUE > +READ_LOCK_STATUS =3D TRUE > + > +!if $(CAPSULE_ENABLE) > +INF SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareUpdat= eDxe.inf > +!endif > + > +[FV.SystemFirmwareUpdateCargo] > +FvAlignment =3D 16 > +ERASE_POLARITY =3D 1 > +MEMORY_MAPPED =3D TRUE > +STICKY_WRITE =3D TRUE > +LOCK_CAP =3D TRUE > +LOCK_STATUS =3D TRUE > +WRITE_DISABLED_CAP =3D TRUE > +WRITE_ENABLED_CAP =3D TRUE > +WRITE_STATUS =3D TRUE > +WRITE_LOCK_CAP =3D TRUE > +WRITE_LOCK_STATUS =3D TRUE > +READ_DISABLED_CAP =3D TRUE > +READ_ENABLED_CAP =3D TRUE > +READ_STATUS =3D TRUE > +READ_LOCK_CAP =3D TRUE > +READ_LOCK_STATUS =3D TRUE > + > +FILE RAW =3D AF9C9EB2-12AD-4D3E-A4D4-96F6C9966215 { # PcdEdkiiSystemFirm= wareFileGuid > + FD =3D Quark > + } > + > +FILE RAW =3D ce57b167-b0e4-41e8-a897-5f4feb781d40 { # > gEdkiiSystemFmpCapsuleDriverFvFileGuid > + FV =3D CapsuleDispatchFv > + } > + > +FILE RAW =3D 812136D3-4D3A-433A-9418-29BB9BF78F6E { # > gEdkiiSystemFmpCapsuleConfigFileGuid > + > QuarkPlatformPkg/Feature/Capsule/SystemFirmwareUpdateConfig/SystemFirmwar= eUpdateConfig. > ini > + } > + > +!endif > + > +!if $(CAPSULE_ENABLE) > +[FmpPayload.FmpPayloadSystemFirmwarePkcs7] > +IMAGE_HEADER_INIT_VERSION =3D 0x02 > +IMAGE_TYPE_ID =3D 62af20c0-7016-424a-9bf8-9ccc86584090 # > PcdSystemFmpCapsuleImageTypeIdGuid > +IMAGE_INDEX =3D 0x1 > +HARDWARE_INSTANCE =3D 0x0 > +MONOTONIC_COUNT =3D 0x2 > +CERTIFICATE_GUID =3D 4AAFD29D-68DF-49EE-8AA9-347D375665A7 # PKC= S7 > + > +FV =3D SystemFirmwareUpdateCargo > + > +[Capsule.QuarkFirmwareUpdateCapsuleFmpPkcs7] > +CAPSULE_GUID =3D 6dcbd5ed-e82d-4c44-bda1-7194199ad92a # > gEfiFmpCapsuleGuid > +CAPSULE_FLAGS =3D PersistAcrossReset,InitiateReset > +CAPSULE_HEADER_SIZE =3D 0x20 > +CAPSULE_HEADER_INIT_VERSION =3D 0x1 > + > +FMP_PAYLOAD =3D FmpPayloadSystemFirmwarePkcs7 > +!endif > + > +!if $(RECOVERY_ENABLE) > +[FmpPayload.FmpPayloadSystemFirmwareRsa2048] > +IMAGE_HEADER_INIT_VERSION =3D 0x02 > +IMAGE_TYPE_ID =3D 62af20c0-7016-424a-9bf8-9ccc86584090 # > PcdSystemFmpCapsuleImageTypeIdGuid > +IMAGE_INDEX =3D 0x1 > +HARDWARE_INSTANCE =3D 0x0 > +MONOTONIC_COUNT =3D 0x2 > +CERTIFICATE_GUID =3D A7717414-C616-4977-9420-844712A735BF # RSA= 2048SHA256 > + > +FV =3D SystemFirmwareUpdateCargo > + > +[Capsule.QuarkRec] > +CAPSULE_GUID =3D 6dcbd5ed-e82d-4c44-bda1-7194199ad92a # > gEfiFmpCapsuleGuid > +CAPSULE_FLAGS =3D PersistAcrossReset,InitiateReset > +CAPSULE_HEADER_SIZE =3D 0x20 > +CAPSULE_HEADER_INIT_VERSION =3D 0x1 > + > +FMP_PAYLOAD =3D FmpPayloadSystemFirmwareRsa2048 > +!endif > + > ########################################################################= ######## > # > # Rules are use with the [FV] section's module INF type to define > @@ -771,3 +898,13 @@ INF RuleOverride =3D TIANOCOMPRESSED PerformancePkg= /Dp_App/Dp.inf > RAW ACPI |.acpi > RAW ASL |.aml > } > + > +[Rule.Common.PEIM.FMP_IMAGE_DESC] > + FILE PEIM =3D $(NAMED_GUID) { > + RAW BIN |.acpi > + PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).de= pex > + PE32 PE32 Align=3D4K $(INF_OUTPUT)/$(MODULE_NAME).= efi > + UI STRING=3D"$(MODULE_NAME)" Optional > + VERSION STRING=3D"$(INF_VERSION)" Optional BUILD_NUM=3D$(BUILD_NUM= BER) > + } > + > diff --git a/QuarkPlatformPkg/QuarkMin.dsc b/QuarkPlatformPkg/QuarkMin.ds= c > index 1a4bd30..be85e3f 100644 > --- a/QuarkPlatformPkg/QuarkMin.dsc > +++ b/QuarkPlatformPkg/QuarkMin.dsc > @@ -161,6 +161,8 @@ > AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableL= ibNull.inf > !endif >=20 > + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.in= f > + > # > # CPU > # > @@ -547,10 +549,7 @@ > MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf > MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf > MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.in= f > - MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf { > - > - CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNul= l.inf > - } > + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf > MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRunt= imeDxe.inf > MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf > PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe= .inf > -- > 2.7.4.windows.1