From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web12.5790.1589507494847076587 for ; Thu, 14 May 2020 18:51:35 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: wei6.xu@intel.com) IronPort-SDR: YnL9vXklzfq8ltA6DrW2AazFVHuwLxVc8jEWQwtGm/jKk1AdeJKXmHUiNw7ZCeQ+Ob6NQEFL/F emTgU3qrf25w== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2020 18:51:34 -0700 IronPort-SDR: s0vlPCPYnUcuEkT/e1iAw9D1wbHj4TBjQvZN1E5MMDUAYz4qIw9ShuDTnNgTWQ7zf14ryqyeLQ btT7Lp1b2J0g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,393,1583222400"; d="scan'208";a="263038422" Received: from shwdeopenpsi174.ccr.corp.intel.com ([10.239.157.39]) by orsmga003.jf.intel.com with ESMTP; 14 May 2020 18:51:32 -0700 From: "Xu, Wei6" To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao , Sean Brogan Subject: [edk2-devel] [PATCH V4 0/5] FmpDevicePkg: Move capsule dependency implement to library Date: Fri, 15 May 2020 09:51:18 +0800 Message-Id: <20200515015123.11484-1-wei6.xu@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 v4: - Remove the CONST in ValidateDependency API to keep APIs common. v3: - Refine description and comments of API: EvaluateDependency(), GetFmpDependency(), CheckFmpDependency(). - Remove the check on the dependencies coming from other FMP instances. v2: - Remove API GetDependencySize in FmpDependencyLib. - Correct comments in FmpDependencyLib unit test; Correct the error status when CreateUnitTestSuite fails. - Update comments for null instance of FmpDependencyCheckLib; Remove SaveFmpDependency and GetFmpDependency from FmpDependencyCheckLib - Add new FmpDependencyDevice library class to provide firmware device specific SaveFmpDependency and GetFmpDependency services. - Update FmpDxe to use new FmpDependencyDeviceLib v1: REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2696 This patch series move the implementation of Fmp Capsule Dependency from FmpDxe driver into two library classes. FmpDependencyLib is a base lib to provide generic dependency evaluation services. FmpDependencyCheckLib is a platform lib to provide dependency check services during firmware update. Platform can perform the dependency check in platform specific manner by implementing its own FmpDependencyCheckLib. This patch series also add unit test for EvaluateDependency API in FmpDependencyLib. Cc: Michael D Kinney Cc: Liming Gao Cc: Sean Brogan Signed-off-by: Wei6 Xu Wei6 Xu (5): FmpDevicePkg: Add FmpDependency library class and BASE instance FmpDevicePkg/Test: Add FmpDependencyLib unit test FmpDevicePkg: Add FmpDependencyCheck library class and instances FmpDevicePkg: Add FmpDependencyDevice library class and NULL instance FmpDevicePkg/FmpDxe: Use new Fmp dependency libraries FmpDevicePkg/FmpDevicePkg.ci.yaml | 10 + FmpDevicePkg/FmpDevicePkg.dec | 15 +- FmpDevicePkg/FmpDevicePkg.dsc | 16 +- FmpDevicePkg/FmpDxe/Dependency.h | 63 ---- FmpDevicePkg/FmpDxe/FmpDxe.c | 256 ++++------------ FmpDevicePkg/FmpDxe/FmpDxe.h | 4 + FmpDevicePkg/FmpDxe/FmpDxe.inf | 5 +- FmpDevicePkg/FmpDxe/FmpDxeLib.inf | 5 +- .../Include/Library/FmpDependencyCheckLib.h | 38 +++ .../Include/Library/FmpDependencyDeviceLib.h | 51 ++++ FmpDevicePkg/Include/Library/FmpDependencyLib.h | 89 ++++++ .../FmpDependencyCheckLib/FmpDependencyCheckLib.c | 196 ++++++++++++ .../FmpDependencyCheckLib.inf | 43 +++ .../FmpDependencyCheckLib.uni | 13 + .../FmpDependencyCheckLibNull.c | 34 +++ .../FmpDependencyCheckLibNull.inf | 30 ++ .../FmpDependencyCheckLibNull.uni | 13 + .../FmpDependencyDeviceLib.c | 50 +++ .../FmpDependencyDeviceLibNull.inf | 29 ++ .../FmpDependencyDeviceLibNull.uni | 12 + .../FmpDependencyLib/FmpDependencyLib.c} | 337 +++++++-------------- .../Library/FmpDependencyLib/FmpDependencyLib.inf | 34 +++ .../Library/FmpDependencyLib/FmpDependencyLib.uni | 12 + FmpDevicePkg/Test/FmpDeviceHostPkgTest.dsc | 28 ++ .../FmpDependencyLib/EvaluateDependencyUnitTest.c | 270 +++++++++++++++++ .../FmpDependencyLibUnitTestsHost.inf | 34 +++ .../FmpDependencyLibUnitTestsUefi.inf | 35 +++ 27 files changed, 1216 insertions(+), 506 deletions(-) delete mode 100644 FmpDevicePkg/FmpDxe/Dependency.h create mode 100644 FmpDevicePkg/Include/Library/FmpDependencyCheckLib.h create mode 100644 FmpDevicePkg/Include/Library/FmpDependencyDeviceLib.h create mode 100644 FmpDevicePkg/Include/Library/FmpDependencyLib.h create mode 100644 FmpDevicePkg/Library/FmpDependencyCheckLib/FmpDependencyCheckLib.c create mode 100644 FmpDevicePkg/Library/FmpDependencyCheckLib/FmpDependencyCheckLib.inf create mode 100644 FmpDevicePkg/Library/FmpDependencyCheckLib/FmpDependencyCheckLib.uni create mode 100644 FmpDevicePkg/Library/FmpDependencyCheckLibNull/FmpDependencyCheckLibNull.c create mode 100644 FmpDevicePkg/Library/FmpDependencyCheckLibNull/FmpDependencyCheckLibNull.inf create mode 100644 FmpDevicePkg/Library/FmpDependencyCheckLibNull/FmpDependencyCheckLibNull.uni create mode 100644 FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLib.c create mode 100644 FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf create mode 100644 FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.uni rename FmpDevicePkg/{FmpDxe/Dependency.c => Library/FmpDependencyLib/FmpDependencyLib.c} (53%) create mode 100644 FmpDevicePkg/Library/FmpDependencyLib/FmpDependencyLib.inf create mode 100644 FmpDevicePkg/Library/FmpDependencyLib/FmpDependencyLib.uni create mode 100644 FmpDevicePkg/Test/FmpDeviceHostPkgTest.dsc create mode 100644 FmpDevicePkg/Test/UnitTest/Library/FmpDependencyLib/EvaluateDependencyUnitTest.c create mode 100644 FmpDevicePkg/Test/UnitTest/Library/FmpDependencyLib/FmpDependencyLibUnitTestsHost.inf create mode 100644 FmpDevicePkg/Test/UnitTest/Library/FmpDependencyLib/FmpDependencyLibUnitTestsUefi.inf -- 2.16.2.windows.1