From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 66474226847AD for ; Thu, 19 Apr 2018 21:18:28 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Apr 2018 21:18:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,299,1520924400"; d="scan'208";a="35661196" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga006.jf.intel.com with ESMTP; 19 Apr 2018 21:18:28 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 19 Apr 2018 21:18:28 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 19 Apr 2018 21:18:27 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.79]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.210]) with mapi id 14.03.0319.002; Fri, 20 Apr 2018 12:18:23 +0800 From: "Yao, Jiewen" To: "Kinney, Michael D" , "edk2-devel@lists.01.org" Thread-Topic: [RFC v2 0/4] Add FmpDevicePkg Thread-Index: AQHT1o/PeO+zhLL/wkGocXsyLk8ovaQJDqjQ Date: Fri, 20 Apr 2018 04:18:22 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AB75A50@shsmsx102.ccr.corp.intel.com> References: <20180417210522.29644-1-michael.d.kinney@intel.com> In-Reply-To: <20180417210522.29644-1-michael.d.kinney@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNmE0YzFjOWMtYzUxNC00MmUwLThmNTYtZmEwOTg2Nzk3ZmEzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJCM09qNDJJeklQXC9WMlRvckJyM20wOWxGVkJwYVdQZkduXC9RZXhDRXVcL041cXUzK2R0YTNXOUVMSFNJekNHSEdiIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [RFC v2 0/4] Add FmpDevicePkg X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Apr 2018 04:18:29 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks Mike. I am a little confused about naming: CheckLowestSupportedVersion() and Lock= FmpDeviceAtLockEventGuid(). At the first glace, I think those 2 API will *do the check* for LSV, or *do= the lock* FMP. But actually, it returns a state to indicate *if* the caller need check LSV= and *if* the caller need lock FMP. Can we rename them to be NeedCheckLowestSupportedVersion() and NeedLockFmpD= eviceAtLockEventGuid() ? Other update seems good. Reviewed-by: Jiewen.yao@intel.com Thank you Yao Jiewen > -----Original Message----- > From: Kinney, Michael D > Sent: Wednesday, April 18, 2018 5:05 AM > To: edk2-devel@lists.01.org > Cc: Sean Brogan ; Yao, Jiewen > ; Kinney, Michael D > Subject: [RFC v2 0/4] Add FmpDevicePkg >=20 > https://bugzilla.tianocore.org/show_bug.cgi?id=3D922 >=20 > Changes in V2 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > * FmpDevicePkg DEC file > + Change PcdFmpDeviceSystemResetRequired from FeatureFlag > to FixedAtBuild > + Add PcdFmpDeviceTestKeySha256Digest for test key detection. > Set to {0} to disable test key detection. > * FmpDevicePkg DSC file > + Fix ARM and AARCH64 build issues > + Update DisplayUpdateProgressLib mappings to match patches in > Bug_801_DisplayUpdateProgressLib_V2 > * FmpDeviceLib Class and Instance > + Update FmpDeviceGetSize() to return EFI_STATUS > + Update FmpDeviceGetAttributes() to return EFI_STATUS > + Update FmpDeviceGetVersionString() to return EFI_STATUS > * FmpDxe > + Set depex to Variable Arch Write Protocol and Variable Lock Protocol > + Break out test key detection in FmpDxe into DetectTestKey.c > + Change LockAllVars() to LockAllFmpVariables() > + Update LockAllFmpVariables() to lock each of the UEFI variables used. > + Always lock UEFI variables when PcdFmpDeviceLockEventGuid is signaled > + Remove ComputeVersionName(). FmpDeviceLib must provide version > string >=20 > Based on content from the following branch: >=20 > https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsuleSupport/MsCapsu > leUpdatePkg >=20 > Branch for review: >=20 > https://github.com/mdkinney/edk2/tree/Bug_922_FmpDevicePkg_V2 >=20 > This package provides an implementation of a Firmware Management Protocol > instance that supports the update of firmware storage devices using UEFI > Capsules. The behavior of the Firmware Management Protocol instance is > customized using libraries and PCDs. >=20 > Cc: Sean Brogan > Cc: Jiewen Yao > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Michael D Kinney >=20 > Kinney, Michael D (4): > FmpDevicePkg: Add package, library classes, and PCDs > FmpDevicePkg: Add library instances > FmpDevicePkg: Add FmpDxe module > FmpDevicePkg: Add DSC file to build all package components >=20 > FmpDevicePkg/FmpDevicePkg.dec | 132 ++ > FmpDevicePkg/FmpDevicePkg.dsc | 134 ++ > FmpDevicePkg/FmpDevicePkg.uni | 80 ++ > FmpDevicePkg/FmpDevicePkgExtra.uni | 18 + > FmpDevicePkg/FmpDxe/DetectTestKey.c | 166 +++ > FmpDevicePkg/FmpDxe/FmpDxe.c | 1451 > ++++++++++++++++++++ > FmpDevicePkg/FmpDxe/FmpDxe.inf | 93 ++ > FmpDevicePkg/FmpDxe/FmpDxe.uni | 20 + > FmpDevicePkg/FmpDxe/FmpDxeExtra.uni | 18 + > FmpDevicePkg/FmpDxe/FmpDxeLib.inf | 90 ++ > FmpDevicePkg/FmpDxe/VariableSupport.c | 461 +++++++ > FmpDevicePkg/FmpDxe/VariableSupport.h | 180 +++ > .../Include/Library/CapsuleUpdatePolicyLib.h | 120 ++ > FmpDevicePkg/Include/Library/FmpDeviceLib.h | 405 ++++++ > FmpDevicePkg/Include/Library/FmpPayloadHeaderLib.h | 100 ++ > .../CapsuleUpdatePolicyLibNull.c | 136 ++ > .../CapsuleUpdatePolicyLibNull.inf | 45 + > .../CapsuleUpdatePolicyLibNull.uni | 17 + > .../Library/FmpDeviceLibNull/FmpDeviceLib.c | 427 ++++++ > .../Library/FmpDeviceLibNull/FmpDeviceLibNull.inf | 48 + > .../Library/FmpDeviceLibNull/FmpDeviceLibNull.uni | 18 + > .../FmpPayloadHeaderLibV1/FmpPayloadHeaderLib.c | 188 +++ > .../FmpPayloadHeaderLibV1.inf | 48 + > .../FmpPayloadHeaderLibV1.uni | 21 + > 24 files changed, 4416 insertions(+) > create mode 100644 FmpDevicePkg/FmpDevicePkg.dec > create mode 100644 FmpDevicePkg/FmpDevicePkg.dsc > create mode 100644 FmpDevicePkg/FmpDevicePkg.uni > create mode 100644 FmpDevicePkg/FmpDevicePkgExtra.uni > create mode 100644 FmpDevicePkg/FmpDxe/DetectTestKey.c > create mode 100644 FmpDevicePkg/FmpDxe/FmpDxe.c > create mode 100644 FmpDevicePkg/FmpDxe/FmpDxe.inf > create mode 100644 FmpDevicePkg/FmpDxe/FmpDxe.uni > create mode 100644 FmpDevicePkg/FmpDxe/FmpDxeExtra.uni > create mode 100644 FmpDevicePkg/FmpDxe/FmpDxeLib.inf > create mode 100644 FmpDevicePkg/FmpDxe/VariableSupport.c > create mode 100644 FmpDevicePkg/FmpDxe/VariableSupport.h > create mode 100644 FmpDevicePkg/Include/Library/CapsuleUpdatePolicyLib.h > create mode 100644 FmpDevicePkg/Include/Library/FmpDeviceLib.h > create mode 100644 FmpDevicePkg/Include/Library/FmpPayloadHeaderLib.h > create mode 100644 > FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNul= l > .c > create mode 100644 > FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNul= l > .inf > create mode 100644 > FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNul= l > .uni > create mode 100644 > FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLib.c > create mode 100644 > FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLibNull.inf > create mode 100644 > FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLibNull.uni > create mode 100644 > FmpDevicePkg/Library/FmpPayloadHeaderLibV1/FmpPayloadHeaderLib.c > create mode 100644 > FmpDevicePkg/Library/FmpPayloadHeaderLibV1/FmpPayloadHeaderLibV1.inf > create mode 100644 > FmpDevicePkg/Library/FmpPayloadHeaderLibV1/FmpPayloadHeaderLibV1.uni >=20 > -- > 2.14.2.windows.3