From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: eric.jin@intel.com) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by groups.io with SMTP; Thu, 01 Aug 2019 01:38:56 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Aug 2019 01:38:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,333,1559545200"; d="scan'208";a="372533437" Received: from jjin9-mobl.ccr.corp.intel.com ([10.239.192.65]) by fmsmga006.fm.intel.com with ESMTP; 01 Aug 2019 01:38:54 -0700 From: "Eric Jin" To: devel@edk2.groups.io Subject: [PATCH 00/14] Multiple Controllers Support solution Date: Thu, 1 Aug 2019 16:38:47 +0800 Message-Id: <20190801083847.14524-1-eric.jin@intel.com> X-Mailer: git-send-email 2.20.1.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1525 The patch set is to support drivers that manage multiple controllers and also provide a firmware update capability to each managed controller. The following modules are related to Multiple Controllers Support solution FmpDevicePkg\FmpDxe\FmpDxe.inf - Driver to manage multiple controllers and provide the firmware update capability to each managed controller. FmpDevicePkg\CapsuleUpdatePolicyDxe\CapsuleUpdatePolicyDxe.inf - Driver to produce the Capsule Update Policy Protocol using the services of the CapsuleUpdatePolicyLib class. The protocol is a private interface to the FmpDevicePkg FmpDevicePkg\Library\CapsuleUpdatePolicyLibOnProtocol\CapsuleUpdatePolicyLibOnProtocol.inf - CapsuleUpdatePolicyLib instance that uses the services of the Capsule Update Policy Protocol produced by CapsuleUpdatePolicyDxe FmpDevicePkg\Library\CapsuleUpdatePolicyLibNull\CapsuleUpdatePolicyLibNull.inf - Null CapsuleUpdatePolicyLib instance and the template for platform specific implementation FmpDevicePkg\Library\FmpDeviceLibNull\FmpDeviceLibNull.inf - Null FmpDeviceLib instance and the template for platform specific implementation Eric Jin (14): FmpDevicePkg: Add UEFI_DRIVER support FmpDevicePkg: Add APIs to FmpDeviceLib FmpDEvicePkg/FmpDeviceLibNull: Implement new APIs FmpDevicePkg/FmpDxe: Use new FmpDeviceLib APIs FmpDevicePkg/FmpDxe: Different variable for each FMP Descriptor FmpDevicePkg: Add Capsule Update Policy Protocol FmpDevicePkg/FmpDxe: Improve all DEBUG() messages FmpDevicePkg/FmpDxe: Add PcdFmpDeviceImageTypeIdGuid FmpDevicePkg/FmpDxe: Add PcdFmpDeviceStorageAccessEnable FmpDevicePkg/FmpDxe: Remove use of CatSprint() FmpDevicePkg/FmpDxe: Fix SetLowestSupportedVersionInVariable() FmpDevicePkg/FmpDxe: Change where FmpControllerState is updated FmpDevicePkg/FmpDxe: Fix code indent FmpDevicePkg/FmpDxe: Add FmpDxe.h to [Sources] .../CapsuleUpdatePolicyDxe.c | 173 ++++ .../CapsuleUpdatePolicyDxe.h | 135 +++ .../CapsuleUpdatePolicyDxe.inf | 48 + .../CapsuleUpdatePolicyDxe.uni | 14 + .../CapsuleUpdatePolicyDxeExtra.uni | 14 + FmpDevicePkg/FmpDevicePkg.dec | 43 +- FmpDevicePkg/FmpDevicePkg.dsc | 64 +- FmpDevicePkg/FmpDevicePkg.uni | 16 +- FmpDevicePkg/FmpDxe/DetectTestKey.c | 16 +- FmpDevicePkg/FmpDxe/FmpDxe.c | 787 ++++++++++------ FmpDevicePkg/FmpDxe/FmpDxe.h | 355 ++++++++ FmpDevicePkg/FmpDxe/FmpDxe.inf | 7 +- FmpDevicePkg/FmpDxe/FmpDxeLib.inf | 7 +- FmpDevicePkg/FmpDxe/VariableSupport.c | 844 +++++++++++++----- FmpDevicePkg/FmpDxe/VariableSupport.h | 135 ++- FmpDevicePkg/Include/Library/FmpDeviceLib.h | 104 ++- .../CapsuleUpdatePolicyLibOnProtocol.c | 171 ++++ .../CapsuleUpdatePolicyLibOnProtocol.inf | 40 + .../CapsuleUpdatePolicyLibOnProtocol.uni | 15 + .../Library/FmpDeviceLibNull/FmpDeviceLib.c | 93 +- .../FmpDeviceLibNull/FmpDeviceLibNull.inf | 4 +- .../FmpPayloadHeaderLibV1.inf | 4 +- .../Library/FmpPayloadHeaderLib.h | 0 .../Protocol/CapsuleUpdatePolicy.h | 132 +++ 24 files changed, 2635 insertions(+), 586 deletions(-) create mode 100644 FmpDevicePkg/CapsuleUpdatePolicyDxe/CapsuleUpdatePolicyDxe.c create mode 100644 FmpDevicePkg/CapsuleUpdatePolicyDxe/CapsuleUpdatePolicyDxe.h create mode 100644 FmpDevicePkg/CapsuleUpdatePolicyDxe/CapsuleUpdatePolicyDxe.inf create mode 100644 FmpDevicePkg/CapsuleUpdatePolicyDxe/CapsuleUpdatePolicyDxe.uni create mode 100644 FmpDevicePkg/CapsuleUpdatePolicyDxe/CapsuleUpdatePolicyDxeExtra.uni create mode 100644 FmpDevicePkg/FmpDxe/FmpDxe.h create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibOnProtocol/CapsuleUpdatePolicyLibOnProtocol.c create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibOnProtocol/CapsuleUpdatePolicyLibOnProtocol.inf create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibOnProtocol/CapsuleUpdatePolicyLibOnProtocol.uni rename FmpDevicePkg/{Include => PrivateInclude}/Library/FmpPayloadHeaderLib.h (100%) create mode 100644 FmpDevicePkg/PrivateInclude/Protocol/CapsuleUpdatePolicy.h -- 2.20.1.windows.1