[edk2-devel] [PATCH 1/4] MdeModulePkg: Add reset data difinition and guid

Michael D Kinney michael.d.kinney at intel.com
Mon May 6 21:02:45 UTC 2019


Laszlo,

I agree with both your points.  The file name should not imply
that it can only be used for capsule resets.

I also agree that the structure name and GUIDs should use 
EDKII_ and gEdkii prefixes.

I also suggest, since the 2 new GUIDs are not associated with 
a structure (they are used to fill in a GUID value field in a
structure), that they can be declared in the DEC file alone and
do not require the MACRO name or extern declaration in a new .h
file.  The .h file should only contain the new data structure
EDKII_RESET_DATA_WITH_NULL_STRING.

Depending on what modules/libs use EDKII_RESET_DATA_WITH_NULL_STRING,
it may make more sense to add this structure to an existing 
library class .h file.

Best regards,

Mike

> -----Original Message-----
> From: devel at edk2.groups.io [mailto:devel at edk2.groups.io]
> On Behalf Of Laszlo Ersek
> Sent: Monday, May 6, 2019 8:44 AM
> To: devel at edk2.groups.io; Gao, Zhichao
> <zhichao.gao at intel.com>
> Cc: Bret Barkelew <Bret.Barkelew at microsoft.com>; Wang,
> Jian J <jian.j.wang at intel.com>; Wu, Hao A
> <hao.a.wu at intel.com>; Ni, Ray <ray.ni at intel.com>; Zeng,
> Star <star.zeng at intel.com>; Gao, Liming
> <liming.gao at intel.com>; Sean Brogan
> <sean.brogan at microsoft.com>; Michael Turner
> <Michael.Turner at microsoft.com>
> Subject: Re: [edk2-devel] [PATCH 1/4] MdeModulePkg: Add
> reset data difinition and guid
> 
> On 05/05/19 09:50, Gao, Zhichao wrote:
> > From: Bret Barkelew <Bret.Barkelew at microsoft.com>
> >
> > REF:
> https://bugzilla.tianocore.org/show_bug.cgi?id=1772
> >
> > Add a useful definition of reset data for capsule
> function. And add
> > two guids gCapsuleArmedResetGuid and
> gCapsuleUpdateCompleteResetGuid.
> >
> > Cc: Jian J Wang <jian.j.wang at intel.com>
> > Cc: Hao Wu <hao.a.wu at intel.com>
> > Cc: Ray Ni <ray.ni at intel.com>
> > Cc: Star Zeng <star.zeng at intel.com>
> > Cc: Liming Gao <liming.gao at intel.com>
> > Cc: Sean Brogan <sean.brogan at microsoft.com>
> > Cc: Michael Turner <Michael.Turner at microsoft.com>
> > Cc: Bret Barkelew <Bret.Barkelew at microsoft.com>
> > Signed-off-by: Zhichao Gao <zhichao.gao at intel.com>
> > ---
> >  MdeModulePkg/Include/Guid/CapsuleResetData.h | 40
> ++++++++++++++++++++
> >  MdeModulePkg/MdeModulePkg.dec                |  5 +++
> >  2 files changed, 45 insertions(+)
> >  create mode 100644
> MdeModulePkg/Include/Guid/CapsuleResetData.h
> >
> > diff --git
> a/MdeModulePkg/Include/Guid/CapsuleResetData.h
> b/MdeModulePkg/Include/Guid/CapsuleResetData.h
> > new file mode 100644
> > index 0000000000..b0666a0da2
> > --- /dev/null
> > +++ b/MdeModulePkg/Include/Guid/CapsuleResetData.h
> > @@ -0,0 +1,40 @@
> > +/** @file
> > +  The capsule reset data difinition and guids.
> > +
> > +  Copyright (c) 2019, Intel Corporation. All rights
> reserved.<BR>
> > +  SPDX-License-Identifier: BSD-2-Clause-Patent
> > +
> > +**/
> > +#ifndef __CAPSULE_RESET_DATA_H__
> > +#define __CAPSULE_RESET_DATA_H__
> > +
> > +#include <Uefi/UefiBaseType.h>
> > +
> > +//
> > +// reset data started with a null string and followed
> by a guid data
> > +//
> > +#pragma pack(1)
> > +typedef struct {
> > +  CHAR16      NullString;
> > +  EFI_GUID    ResetGuid;
> > +} RESET_DATA_WITH_NULL_STRING;
> > +#pragma pack()
> > +
> > +VERIFY_SIZE_OF (RESET_DATA_WITH_NULL_STRING, 18);
> 
> I think that exposing RESET_DATA_WITH_NULL_STRING as a
> public structure
> is a good idea -- it indeed looks like something useful
> for many
> platforms and for different purposes.
> 
> - However, I'd argue that it should not go into an
> include file called
> "CapsuleResetData.h". The type looks generic and not
> tied to capsules.
> 
> - Additionally, I believe (but I'm not fully sure!) that
> new structures
> under MdeModulePkg/Include/Guid should be named EDKII_*.
> 
> If the MdeModulePkg maintainers are OK with these
> patches in the current
> form, I'm fine too; I just thought we might want to
> consider the above
> points. (I certainly suggest waiting for their feedback
> before starting
> work on v2, just to address the above.)
> 
> Thanks!
> Laszlo
> 
> > +
> > +#define CAPSULE_ARMED_RESET_GUID \
> > +  { \
> > +    0xc6b4eea7, 0xfce2, 0x4625, { 0x9c, 0x4f, 0xc4,
> 0xb0, 0x82, 0x37, 0xae, 0x23 }  \
> > +  }
> > +
> > +#define CAPSULE_UPDATE_COMPLETE_RESET_GUID \
> > +  { \
> > +    0x5d512714, 0xa4df, 0x4e46, { 0xb6, 0xc7, 0xbc,
> 0x9f, 0x97, 0x9d, 0x59, 0xa0 }  \
> > +  }
> > +
> > +extern EFI_GUID gCapsuleArmedResetGuid;
> > +
> > +extern EFI_GUID gCapsuleUpdateCompleteResetGuid;
> > +
> > +#endif
> > +
> > diff --git a/MdeModulePkg/MdeModulePkg.dec
> b/MdeModulePkg/MdeModulePkg.dec
> > index 2ef48f2c37..c12b836c24 100644
> > --- a/MdeModulePkg/MdeModulePkg.dec
> > +++ b/MdeModulePkg/MdeModulePkg.dec
> > @@ -423,6 +423,11 @@
> >    ## Include/Guid/S3StorageDeviceInitList.h
> >    gS3StorageDeviceInitListGuid = { 0x310e9b8c,
> 0xcf90, 0x421e, { 0x8e, 0x9b, 0x9e, 0xef, 0xb6, 0x17,
> 0xc8, 0xef } }
> >
> > +  ## Guid to use for gRT->ResetSystem() to indicate
> the type of reset that is being performed.
> > +  #  Include/Guid/CapsuleResetData.h
> > +  gCapsuleArmedResetGuid            = {0xc6b4eea7,
> 0xfce2, 0x4625, {0x9c, 0x4f, 0xc4, 0xb0, 0x82, 0x37,
> 0xae, 0x23}}
> > +  gCapsuleUpdateCompleteResetGuid   = {0x5d512714,
> 0xa4df, 0x4e46, {0xb6, 0xc7, 0xbc, 0x9f, 0x97, 0x9d,
> 0x59, 0xa0}}
> > +
> >  [Ppis]
> >    ## Include/Ppi/AtaController.h
> >    gPeiAtaControllerPpiGuid       = { 0xa45e60d1,
> 0xc719, 0x44aa, { 0xb0, 0x7a, 0xaa, 0x77, 0x7f, 0x85,
> 0x90, 0x6d }}
> >
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#40054): https://edk2.groups.io/g/devel/message/40054
Mute This Topic: https://groups.io/mt/31507358/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list