[edk2-devel] [PATCH 1/4] MdeModulePkg: Add reset data difinition and guid
Laszlo Ersek
lersek at redhat.com
Tue May 7 10:14:33 UTC 2019
On 05/06/19 23:02, Kinney, Michael D wrote:
> 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.
The lib class header "MdeModulePkg/Include/Library/ResetUtilityLib.h"
definitely crossed my mind, but I didn't dare suggest it. :)
Thanks
Laszlo
> 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 (#40103): https://edk2.groups.io/g/devel/message/40103
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