[edk2] [RFC v3 0/4] Add FmpDevicePkg

Michael D Kinney posted 4 patches 5 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/edk2 tags/patchew/20180529223715.23896-1-michael.d.kinney@intel.com
There is a newer version of this series
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                       | 1452 ++++++++++++++++++++
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, 4417 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/CapsuleUpdatePolicyLibNull.c
create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.inf
create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.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
[edk2] [RFC v3 0/4] Add FmpDevicePkg
Posted by Michael D Kinney 5 years, 10 months ago
https://bugzilla.tianocore.org/show_bug.cgi?id=922

Changes in V3
=============
* Change CheckLowestSupportedVersion() to LowestSupportedVersionCheckRequired()
* Change LockFmpDeviceAtLockEventGuid() to LockFmpDeviceAtLockEventGuidRequired()
* Set EDKII_FIRMWARE_MANAGEMENT_PROGRESS_PROTOCOL Version field to 1
* Fix description of return values in LowestSupportedVersionCheckRequired()
* Fix description of return values in LockFmpDeviceAtLockEventGuidRequired()

Changes in V2
=============
* 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

Based on content from the following branch:

https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsuleSupport/MsCapsuleUpdatePkg

Branch for review:

https://github.com/mdkinney/edk2/tree/Bug_922_FmpDevicePkg_V2

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.

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>

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

 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                       | 1452 ++++++++++++++++++++
 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, 4417 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/CapsuleUpdatePolicyLibNull.c
 create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.inf
 create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.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

-- 
2.14.2.windows.3

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [RFC v3 0/4] Add FmpDevicePkg
Posted by Ard Biesheuvel 5 years, 10 months ago
On 30 May 2018 at 00:37, Michael D Kinney <michael.d.kinney@intel.com> wrote:
> https://bugzilla.tianocore.org/show_bug.cgi?id=922
>
> Changes in V3
> =============
> * Change CheckLowestSupportedVersion() to LowestSupportedVersionCheckRequired()
> * Change LockFmpDeviceAtLockEventGuid() to LockFmpDeviceAtLockEventGuidRequired()
> * Set EDKII_FIRMWARE_MANAGEMENT_PROGRESS_PROTOCOL Version field to 1
> * Fix description of return values in LowestSupportedVersionCheckRequired()
> * Fix description of return values in LockFmpDeviceAtLockEventGuidRequired()
>
> Changes in V2
> =============
> * 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
>
> Based on content from the following branch:
>
> https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsuleSupport/MsCapsuleUpdatePkg
>
> Branch for review:
>
> https://github.com/mdkinney/edk2/tree/Bug_922_FmpDevicePkg_V2
>
> 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.
>

Let me ask again: how does this code relate to the already existing
FMP implementation we have in the edk2 tree?


> Cc: Sean Brogan <sean.brogan@microsoft.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
>
> 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
>
>  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                       | 1452 ++++++++++++++++++++
>  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, 4417 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/CapsuleUpdatePolicyLibNull.c
>  create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.inf
>  create mode 100644 FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleUpdatePolicyLibNull.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
>
> --
> 2.14.2.windows.3
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [RFC v3 0/4] Add FmpDevicePkg
Posted by Kinney, Michael D 5 years, 10 months ago
Hi Add,

The FmpDevicePkg is a different way to produce
FMP and the recommendation will be to use this
one instead of the existing one.  The concept
is to provide a simpler way to produce an FMP
with a library instance and a few PCD settings.
It has greater flexibility in managing public
keys, supports multiple public keys per FMP,
and it also enables a platform to produce
multiple FMP instances to support the update
of different regions of a FW storage device
or update different devices that have support
FW updates.

I have put FmpDevicePkg and the new tools 
to support building capsules as RFCs to get
some initial feedback.

My next step is to add an edk2-staging branch
with this content along with a set of complete
examples around the MinnowMax platform that
demonstrate the capabilities and usage.

I will also create a set of Wiki pages on how
to integrate this feature into a platform.

Thanks,

Mike

> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-
> bounces@lists.01.org] On Behalf Of Ard Biesheuvel
> Sent: Wednesday, May 30, 2018 12:08 AM
> To: Kinney, Michael D <michael.d.kinney@intel.com>
> Cc: edk2-devel@lists.01.org; Yao, Jiewen
> <jiewen.yao@intel.com>
> Subject: Re: [edk2] [RFC v3 0/4] Add FmpDevicePkg
> 
> On 30 May 2018 at 00:37, Michael D Kinney
> <michael.d.kinney@intel.com> wrote:
> > https://bugzilla.tianocore.org/show_bug.cgi?id=922
> >
> > Changes in V3
> > =============
> > * Change CheckLowestSupportedVersion() to
> LowestSupportedVersionCheckRequired()
> > * Change LockFmpDeviceAtLockEventGuid() to
> LockFmpDeviceAtLockEventGuidRequired()
> > * Set EDKII_FIRMWARE_MANAGEMENT_PROGRESS_PROTOCOL
> Version field to 1
> > * Fix description of return values in
> LowestSupportedVersionCheckRequired()
> > * Fix description of return values in
> LockFmpDeviceAtLockEventGuidRequired()
> >
> > Changes in V2
> > =============
> > * 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
> >
> > Based on content from the following branch:
> >
> >
> https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsul
> eSupport/MsCapsuleUpdatePkg
> >
> > Branch for review:
> >
> >
> https://github.com/mdkinney/edk2/tree/Bug_922_FmpDeviceP
> kg_V2
> >
> > 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.
> >
> 
> Let me ask again: how does this code relate to the
> already existing
> FMP implementation we have in the edk2 tree?
> 
> 
> > Cc: Sean Brogan <sean.brogan@microsoft.com>
> > Cc: Jiewen Yao <jiewen.yao@intel.com>
> > Contributed-under: TianoCore Contribution Agreement
> 1.1
> > Signed-off-by: Michael D Kinney
> <michael.d.kinney@intel.com>
> >
> > 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
> >
> >  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                       |
> 1452 ++++++++++++++++++++
> >  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, 4417 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/CapsuleU
> pdatePolicyLibNull.c
> >  create mode 100644
> FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleU
> pdatePolicyLibNull.inf
> >  create mode 100644
> FmpDevicePkg/Library/CapsuleUpdatePolicyLibNull/CapsuleU
> pdatePolicyLibNull.uni
> >  create mode 100644
> FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLib.c
> >  create mode 100644
> FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLibNull.i
> nf
> >  create mode 100644
> FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLibNull.u
> ni
> >  create mode 100644
> FmpDevicePkg/Library/FmpPayloadHeaderLibV1/FmpPayloadHea
> derLib.c
> >  create mode 100644
> FmpDevicePkg/Library/FmpPayloadHeaderLibV1/FmpPayloadHea
> derLibV1.inf
> >  create mode 100644
> FmpDevicePkg/Library/FmpPayloadHeaderLibV1/FmpPayloadHea
> derLibV1.uni
> >
> > --
> > 2.14.2.windows.3
> >
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [RFC v3 0/4] Add FmpDevicePkg
Posted by Ard Biesheuvel 5 years, 10 months ago
On 30 May 2018 at 17:15, Kinney, Michael D <michael.d.kinney@intel.com> wrote:
> Hi Add,
>
> The FmpDevicePkg is a different way to produce
> FMP and the recommendation will be to use this
> one instead of the existing one.  The concept
> is to provide a simpler way to produce an FMP
> with a library instance and a few PCD settings.
> It has greater flexibility in managing public
> keys, supports multiple public keys per FMP,
> and it also enables a platform to produce
> multiple FMP instances to support the update
> of different regions of a FW storage device
> or update different devices that have support
> FW updates.
>
> I have put FmpDevicePkg and the new tools
> to support building capsules as RFCs to get
> some initial feedback.
>
> My next step is to add an edk2-staging branch
> with this content along with a set of complete
> examples around the MinnowMax platform that
> demonstrate the capabilities and usage.
>
> I will also create a set of Wiki pages on how
> to integrate this feature into a platform.
>

OK, that does sound rather useful.

Happy to test/prototype things as well, if that helps.
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel