public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: "Xu, GuoX" <guox.xu@intel.com>,
	gaoliming <gaoliming@byosoft.com.cn>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Pethaiyan, Madhan" <madhan.pethaiyan@intel.com>
Cc: "Liu, Zhiguang" <zhiguang.liu@intel.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of EFI_FIRMWARE_MANAGEMENT_PROTOCOL
Date: Tue, 30 Jan 2024 19:41:36 +0000	[thread overview]
Message-ID: <CO1PR11MB49299A0E4FE69313F292FDAFD27D2@CO1PR11MB4929.namprd11.prod.outlook.com> (raw)
In-Reply-To: <CO1PR11MB4929AB2AAE1C954C1A7BD460D27D2@CO1PR11MB4929.namprd11.prod.outlook.com>

Hi Guo,

I also see Madhan has been working on this same issue.

https://edk2.groups.io/g/devel/topic/103620853#114085

Can you please coordinate your patches with Madhan so it is a single patch series.

Also, my feedback to enter a BZ and update REF: with the link to the BZ has 
not been done yet.  Please do that for the next update.

Thanks,

Mike


> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Tuesday, January 30, 2024 10:18 AM
> To: Xu, GuoX <guox.xu@intel.com>; gaoliming <gaoliming@byosoft.com.cn>;
> devel@edk2.groups.io
> Cc: Liu, Zhiguang <zhiguang.liu@intel.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Subject: RE: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of
> EFI_FIRMWARE_MANAGEMENT_PROTOCOL
> 
> Hi Guo,
> 
> One comment below.
> 
> Mike
> 
> 
> > -----Original Message-----
> > From: Xu, GuoX <guox.xu@intel.com>
> > Sent: Monday, January 29, 2024 11:18 PM
> > To: Kinney, Michael D <michael.d.kinney@intel.com>; gaoliming
> > <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> > Cc: Liu, Zhiguang <zhiguang.liu@intel.com>
> > Subject: RE: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of
> > EFI_FIRMWARE_MANAGEMENT_PROTOCOL
> >
> > Hi Michael,
> >
> > Thanks for your suggestions.
> >
> > 1. In edk2 repo there are two implementations for Firmware Management
> > Protocol.
> >   1.1 In edk2\FmpDevicePkg\FmpDxe\FmpDxe.c, function
> GetTheImageInfo():
> >     //
> >     // Check the buffer size
> >     // NOTE: Check this first so caller can get the necessary memory
> > size it must allocate.
> >     //
> >     if (*ImageInfoSize < (sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR))) {
> >       *ImageInfoSize = sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR);
> >       DEBUG ((DEBUG_VERBOSE, "FmpDxe(%s): GetImageInfo() -
> ImageInfoSize
> > is to small.\n", mImageIdName));
> >       Status = EFI_BUFFER_TOO_SMALL;
> >       goto cleanup;
> >     }
> >
> >     //
> >     // Confirm that buffer isn't null
> >     //
> >     if (  (ImageInfo == NULL) || (DescriptorVersion == NULL) ||
> > (DescriptorCount == NULL) || (DescriptorSize == NULL)
> >        || (PackageVersion == NULL))
> >     {
> >       DEBUG ((DEBUG_ERROR, "FmpDxe(%s): GetImageInfo() - Pointer
> > Parameter is NULL.\n", mImageIdName));
> >       Status = EFI_INVALID_PARAMETER;
> >       goto cleanup;
> >     }
> >     In the line 497 to 498, it is missed the judgment of
> > PackageVersionName but there is a comment in line 529 " // Do not
> update
> > PackageVersionName since it is not supported in this instance."
> >     So, do we need to add the judgment of PackageVersionName in this
> > function?
> 
> Yes.  The check needs to be added for PackageVersionName being NULL for
> this protocol service to be conformant with the UEFI Specification.
> 
> The fact that this specific implementation does not update
> PackageVersionName
> contents does not change what a conformance test that checks the
> behavior
> of a NULL parameter value would conclude that the service does not
> follow
> the spec.
> 
> >
> >   1.2 In
> >
> edk2\SignedCapsulePkg\Universal\SystemFirmwareUpdate\SystemFirmwareCommo
> > nDxe.c, function FmpGetImageInfo():
> >          if (ImageInfoSize == NULL) {
> >            return EFI_INVALID_PARAMETER;
> >          }
> >
> >          if (*ImageInfoSize < sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR) *
> > SystemFmpPrivate->DescriptorCount) {
> >            *ImageInfoSize = sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR) *
> > SystemFmpPrivate->DescriptorCount;
> >            return EFI_BUFFER_TOO_SMALL;
> >         }
> >
> >         if ((ImageInfo == NULL) ||
> >           (DescriptorVersion == NULL) ||
> >           (DescriptorCount == NULL) ||
> >           (DescriptorSize == NULL) ||
> >           (PackageVersion == NULL) ||
> >           (PackageVersionName == NULL))
> >        {
> >          return EFI_INVALID_PARAMETER;
> >        }
> >     The implementation already included the required code changes.
> >
> >  2. In edk2-platforms repo there is only one implementation for
> Firmware
> > Management Protocol.
> >      In the file MicrocodeFmp.c, function FmpGetImageInfo():
> >      If (ImageInfoSize == NULL) {
> >        return EFI_INVALID_PARAMETER;
> >      }
> >      if (*ImageInfoSize < sizeof(EFI_FIRMWARE_IMAGE_DESCRIPTOR) *
> > MicrocodeFmpPrivate->DescriptorCount) {
> >        *ImageInfoSize = sizeof(EFI_FIRMWARE_IMAGE_DESCRIPTOR) *
> > MicrocodeFmpPrivate->DescriptorCount;
> >        return EFI_BUFFER_TOO_SMALL;
> >      }
> >      if (ImageInfo == NULL ||
> >         DescriptorVersion == NULL ||
> >         DescriptorCount == NULL ||
> >         DescriptorSize == NULL ||
> >         PackageVersion == NULL ||
> >         PackageVersionName == NULL) {
> >       return EFI_INVALID_PARAMETER;
> >     }
> >    The implementation already included the required code changes.
> >
> > Thanks
> > Xu Guo
> >
> > -----Original Message-----
> > From: Kinney, Michael D <michael.d.kinney@intel.com>
> > Sent: Tuesday, January 23, 2024 7:08 AM
> > To: Xu, GuoX <guox.xu@intel.com>; gaoliming
> <gaoliming@byosoft.com.cn>;
> > devel@edk2.groups.io
> > Cc: Liu, Zhiguang <zhiguang.liu@intel.com>; Kinney, Michael D
> > <michael.d.kinney@intel.com>
> > Subject: RE: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of
> > EFI_FIRMWARE_MANAGEMENT_PROTOCOL
> >
> > Hi Guo,
> >
> > Thank you for starting this task to update Firmware Management
> Protocol.
> >
> > There are additional tasks to make sure all required code changes are
> > also implemented for a specification update like this.
> >
> > * Create a TianoCore Bugzilla that describes the specification update
> >   needed with links to the public documents with the required
> >   specification update.
> >
> > * Review/update edk2 repo include files.
> >
> > * Review/update function headers of the implementations of the
> >   Firmware Management Protocol in the edk2 repo.
> >
> > * Review/update logic in implementations of the Firmware
> >   Management Protocol in the edk2 repo to make sure all error
> >   return conditions are checked.
> >
> > * Review/update function headers of the implementations of the
> >   Firmware Management Protocol in the edk2-platforms repo.
> >
> > * Review/update logic in implementations of the Firmware
> >   Management Protocol in the edk2-platforms repo to make sure
> >   all error return conditions are checked.
> >
> > * Review/update test cases edk2-test repo for the UEFI SCTs for
> >   these error return conditions.
> >
> >
> > The "REF" in the commit message should be a link to the TianoCore
> > Bugzilla.  The reference to the specification is also required, but
> > should be in the text of the commit message.
> >
> > Thanks,
> >
> > Mike
> >
> >
> > > -----Original Message-----
> > > From: Xu, GuoX <guox.xu@intel.com>
> > > Sent: Sunday, January 21, 2024 9:37 PM
> > > To: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> > > Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Liu, Zhiguang
> > > <zhiguang.liu@intel.com>
> > > Subject: RE: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of
> > > EFI_FIRMWARE_MANAGEMENT_PROTOCOL
> > >
> > > Hi Liming,
> > >   I created a PR: https://github.com/tianocore/edk2/pull/5182, could
> > > you help push it ?
> > >
> > > Thanks
> > > Xu Guo
> > >
> > > -----Original Message-----
> > > From: gaoliming <gaoliming@byosoft.com.cn>
> > > Sent: Tuesday, January 16, 2024 10:20 PM
> > > To: devel@edk2.groups.io; Xu, GuoX <guox.xu@intel.com>
> > > Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Liu, Zhiguang
> > > <zhiguang.liu@intel.com>
> > > Subject: 回复: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments
> of
> > > EFI_FIRMWARE_MANAGEMENT_PROTOCOL
> > >
> > > I am OK for this change. Reviewed-by: Liming Gao
> > > <gaoliming@byosoft.com.cn>
> > >
> > > > -----邮件原件-----
> > > > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Xu, GuoX
> > > > 发送时间: 2024年1月9日 17:24
> > > > 收件人: devel@edk2.groups.io
> > > > 抄送: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming
> > > > <gaoliming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel.com>
> > > > 主题: Re: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of
> > > > EFI_FIRMWARE_MANAGEMENT_PROTOCOL
> > > >
> > > > Hi all, any comments about this patch?
> > > >
> > > > -----Original Message-----
> > > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> GuoX
> > > > Xu
> > > > Sent: Monday, December 25, 2023 9:21 AM
> > > > To: devel@edk2.groups.io
> > > > Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming
> > > > <gaoliming@byosoft.com.cn>; Liu, Zhiguang
> <zhiguang.liu@intel.com>;
> > > > Li, Yi1 <yi1.li@intel.com>
> > > > Subject: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of
> > > > EFI_FIRMWARE_MANAGEMENT_PROTOCOL
> > > >
> > > > 1.For EFI_FIRMWARE_MANAGEMENT_PROTOCOL.GetImage():
> > > > Add the following sentence at the end of the Image parameter
> > > description.
> > > > "May be NULL with a zero ImageSize in order to determine the size
> of
> > > > the buffer needed".
> > > >
> > > > Modify the description of "EFI_INVALID_PARAMETER" return code as
> > > > "The ImageSize is not too small and Image is NULL."
> > > >
> > > > 2.For EFI_FIRMWARE_MANAGEMENT_PROTOCOL.GetImageInfo():
> > > > Add the following sentence at the end of the ImageInfo parameter
> > > > description."May be NULL with a zero ImageInfoSize in order to
> > > > determine the size of the buffer needed".
> > > >
> > > > Modify the description of "EFI_INVALID_PARAMETER" return code as
> > > > "The ImageInfoSize is not too small and Image is NULL." and add
> new
> > > > descriptions for "EFI_INVALID_PARAMETER" return code.
> > > >
> > > > REF: UEFI Spec 2.7B Chapter 23.1.
> > > >
> > > > Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > > > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > > > Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> > > > Cc: Yi Li <yi1.li@intel.com>
> > > > Signed-off-by: GuoX Xu <guox.xu@intel.com>
> > > > ---
> > > >  MdePkg/Include/Protocol/FirmwareManagement.h | 13 +++++++++++--
> > > >  1 file changed, 11 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/MdePkg/Include/Protocol/FirmwareManagement.h
> > > > b/MdePkg/Include/Protocol/FirmwareManagement.h
> > > > index f37067df3455..93c8b7658e1a 100644
> > > > --- a/MdePkg/Include/Protocol/FirmwareManagement.h
> > > > +++ b/MdePkg/Include/Protocol/FirmwareManagement.h
> > > > @@ -293,6 +293,8 @@ EFI_STATUS
> > > >                                       to contain the image(s)
> > > > information if the buffer was too small.
> > > >    @param[in, out] ImageInfo          A pointer to the buffer in
> > which
> > > > firmware places the current image(s)
> > > >                                       information. The information
> > > > is an array of EFI_FIRMWARE_IMAGE_DESCRIPTORs.
> > > > +                                     May be NULL with a zero
> > > > ImageInfoSize in order to determine the size of the
> > > > +                                     buffer needed.
> > > >    @param[out]     DescriptorVersion  A pointer to the location in
> > > which
> > > > firmware returns the version number
> > > >                                       associated with the
> > > > EFI_FIRMWARE_IMAGE_DESCRIPTOR.
> > > >    @param[out]     DescriptorCount    A pointer to the location in
> > > > which firmware returns the number of @@ -313,7 +315,12 @@
> EFI_STATUS
> > > >    @retval EFI_SUCCESS                The device was successfully
> > > > updated with the new image.
> > > >    @retval EFI_BUFFER_TOO_SMALL       The ImageInfo buffer was too
> > > > small. The current buffer size
> > > >                                       needed to hold the image(s)
> > > > information is returned in ImageInfoSize.
> > > > -  @retval EFI_INVALID_PARAMETER      ImageInfoSize is NULL.
> > > > +  @retval EFI_INVALID_PARAMETER      ImageInfoSize is not too
> small
> > > > and ImageInfo is NULL.
> > > > +  @retval EFI_INVALID_PARAMETER      ImageInfoSize is non-zero
> and
> > > > DescriptorVersion is NULL.
> > > > +  @retval EFI_INVALID_PARAMETER      ImageInfoSize is non-zero
> and
> > > > DescriptorCount is NULL.
> > > > +  @retval EFI_INVALID_PARAMETER      ImageInfoSize is non-zero
> and
> > > > DescriptorSize is NULL.
> > > > +  @retval EFI_INVALID_PARAMETER      ImageInfoSize is non-zero
> and
> > > > PackageVersion is NULL.
> > > > +  @retval EFI_INVALID_PARAMETER      ImageInfoSize is non-zero
> and
> > > > PackageVersionName is NULL.
> > > >    @retval EFI_DEVICE_ERROR           Valid information could not
> be
> > > > returned. Possible corrupted image.
> > > >
> > > >  **/
> > > > @@ -340,6 +347,8 @@ EFI_STATUS
> > > >    @param[in]      ImageIndex     A unique number identifying the
> > > > firmware image(s) within the device.
> > > >                                   The number is between 1 and
> > > > DescriptorCount.
> > > >    @param[out]     Image          Points to the buffer where the
> > > > current image is copied to.
> > > > +                                 May be NULL with a zero
> > > > ImageSize in order to determine the size of the
> > > > +                                 buffer needed.
> > > >    @param[in, out] ImageSize      On entry, points to the size of
> > the
> > > > buffer pointed to by Image, in bytes.
> > > >                                   On return, points to the length
> of
> > > > the image, in bytes.
> > > >
> > > > @@ -347,7 +356,7 @@ EFI_STATUS
> > > >    @retval EFI_BUFFER_TOO_SMALL   The buffer specified by
> ImageSize
> > is
> > > > too small to hold the
> > > >                                   image. The current buffer size
> > > > needed to hold the image is returned
> > > >                                   in ImageSize.
> > > > -  @retval EFI_INVALID_PARAMETER  The Image was NULL.
> > > > +  @retval EFI_INVALID_PARAMETER  The ImageSize is not too small
> and
> > > > Image is NULL.
> > > >    @retval EFI_NOT_FOUND          The current image is not copied
> to
> > > > the buffer.
> > > >    @retval EFI_UNSUPPORTED        The operation is not supported.
> > > >    @retval EFI_SECURITY_VIOLATION The operation could not be
> > > > performed due to an authentication failure.
> > > > --
> > > > 2.29.2.windows.3
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > 
> > > >
> > >
> > >



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#114825): https://edk2.groups.io/g/devel/message/114825
Mute This Topic: https://groups.io/mt/103898765/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



      reply	other threads:[~2024-01-30 19:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1703466776.git.guox.xu@intel.com>
2023-12-25  1:21 ` [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of EFI_FIRMWARE_MANAGEMENT_PROTOCOL GuoX Xu
     [not found]   ` <CO1PR11MB49167DF996E427FCE9B823D6966A2@CO1PR11MB4916.namprd11.prod.outlook.com>
2024-01-09  9:24     ` Xu, GuoX
2024-01-16 14:20       ` 回复: " gaoliming via groups.io
2024-01-22  5:37         ` Xu, GuoX
2024-01-22 23:08           ` Michael D Kinney
2024-01-30  7:17             ` Xu, GuoX
2024-01-30 18:18               ` Michael D Kinney
2024-01-30 19:41                 ` Michael D Kinney [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CO1PR11MB49299A0E4FE69313F292FDAFD27D2@CO1PR11MB4929.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox