Hi Oleksiy. I think we all agree to remove the comment marker before the final parameter in struct. Please see this mail https://edk2.groups.io/g/devel/message/57895 Let me know if you have any concern.
And one little suggestion. If you send a newer version but don't change anything, you can take the Reviewed-by in your commit message if you get one. So, the reviewer doesn't have to review the same patch again 😊 Thanks Zhiguang > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Oleksiy > Yakovlev > Sent: Saturday, May 9, 2020 5:46 AM > To: devel@edk2.groups.io > Cc: Feng, Bob C <bob.c.f...@intel.com>; Gao, Liming > <liming....@intel.com>; Kinney, Michael D <michael.d.kin...@intel.com>; > fel...@ami.com; oleks...@ami.com > Subject: [edk2-devel] [PATCH v4 7/7] MdePkg: UEFI JSON Capsule Support > > Added Guids and structures, that defines the work flow to perform capsule > update using JSON objects. > (UEFI 2.8 mantis 1935) > > Signed-off-by: Oleksiy Yakovlev <oleks...@ami.com> > --- > MdePkg/Include/Guid/CapsuleReport.h | 29 +++++++++++ > MdePkg/Include/Guid/JsonCapsule.h | 97 > +++++++++++++++++++++++++++++++++++++ > MdePkg/Include/Uefi/UefiSpec.h | 1 + > MdePkg/MdePkg.dec | 11 +++++ > 4 files changed, 138 insertions(+) > create mode 100644 MdePkg/Include/Guid/JsonCapsule.h > > diff --git a/MdePkg/Include/Guid/CapsuleReport.h > b/MdePkg/Include/Guid/CapsuleReport.h > index 93d2bb7..ab0f552 100644 > --- a/MdePkg/Include/Guid/CapsuleReport.h > +++ b/MdePkg/Include/Guid/CapsuleReport.h > @@ -93,6 +93,35 @@ typedef struct { > /// > } EFI_CAPSULE_RESULT_VARIABLE_FMP; > > +typedef struct { > + > + /// > + /// Version of this structure, currently 0x00000001 /// > + UINT32 Version; > + > + /// > + /// The unique identifier of the capsule whose processing result is > recorded in this variable. > + /// 0x00000000 b 0xEFFFFFFF b Implementation Reserved /// > + 0xF0000000 b 0xFFFFFFFF b Specification Reserved /// #define > + REDFISH_DEFINED_JSON_SCHEMA 0xF000000 /// The JSON payload shall > + conform to a Redfish-defined JSON schema, see DMTF-Redfish /// > + Specification. > + /// > + UINT32 CapsuleId; > + > + /// > + /// The length of Resp in bytes. > + /// > + UINT32 RespLength; > + > + /// > + /// Variable length buffer containing the replied JSON payload to the > + caller who delivered JSON /// capsule to system. The definition of > + the JSON schema used in the replied payload is beyond /// the scope of > this specification. > + /// > + /// UINT8 Resp[]; > + } EFI_CAPSULE_RESULT_VARIABLE_JSON; > > extern EFI_GUID gEfiCapsuleReportGuid; > > diff --git a/MdePkg/Include/Guid/JsonCapsule.h > b/MdePkg/Include/Guid/JsonCapsule.h > new file mode 100644 > index 0000000..721636f > --- /dev/null > +++ b/MdePkg/Include/Guid/JsonCapsule.h > @@ -0,0 +1,97 @@ > +/** @file > +Guid & data structure for tables defined for reporting firmware > +configuration data to EFI Configuration Tables and also for processing JSON > payload capsule. > + > + > +Copyright (c) 2020, American Megatrends International LLC. All rights > +reserved.<BR> > +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef _JSON_CAPSULE_GUID_H__ > +#define _JSON_CAPSULE_GUID_H__ > + > +// > +// The address reported in the table entry identified by > +EFI_JSON_CAPSULE_DATA_TABLE_GUID will be // referenced as physical > and > +will not be fixed up when transition from preboot to runtime phase. The > +// addresses reported in these table entries identified by > +EFI_JSON_CONFIG_DATA_TABLE_GUID and // > EFI_JSON_CAPSULE_RESULT_TABLE_GUID will be referenced as virtual and > will be fixed up when // transition from preboot to runtime phase. > +// > +#define EFI_JSON_CONFIG_DATA_TABLE_GUID \ > + {0x87367f87, 0x1119, 0x41ce, \ > + {0xaa, 0xec, 0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a }} #define > +EFI_JSON_CAPSULE_DATA_TABLE_GUID \ > + {0x35e7a725, 0x8dd2, 0x4cac, \ > + {0x80, 0x11, 0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56 }} #define > +EFI_JSON_CAPSULE_RESULT_TABLE_GUID \ > + {0xdbc461c3, 0xb3de, 0x422a,\ > + {0xb9, 0xb4, 0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5 }} #define > +EFI_JSON_CAPSULE_ID_GUID \ > + {0x67d6f4cd, 0xd6b8, 0x4573, \ > + {0xbf, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }} > + > + > +#pragma pack(1) > + > +typedef struct { > + /// > + /// Version of the structure, initially 0x00000001. > + /// > + UINT32 Version; > + > + /// > + /// The unique identifier of this capsule. > + /// > + UINT32 CapsuleId; > + > + /// > + /// The length of the JSON payload immediately following this header, in > bytes. > + /// > + UINT32 PayloadLength; > + > + /// > + /// Variable length buffer containing the JSON payload that should be > +parsed and applied to the system. The > + /// definition of the JSON schema used in the payload is beyond the scope > of this specification. > + /// UINT8 Payload[]; > +} EFI_JSON_CAPSULE_HEADER; > + > +typedef struct { > + /// > + /// The length of the following ConfigData, in bytes. > + /// > + UINT32 ConfigDataLength; > + > + /// > + /// Variable length buffer containing the JSON payload that describes > +one group of configuration data within > + /// current system. The definition of the JSON schema used in this payload > is beyond the scope of this specification. > + /// > + ///UINT8 ConfigData[ConfigDataLength]; } EFI_JSON_CONFIG_DATA_ITEM; > + > +typedef struct { > + /// > + /// Version of the structure, initially 0x00000001. > + /// > + UINT32 Version; > + > + /// > + ////The total length of EFI_JSON_CAPSULE_CONFIG_DATA, in bytes. > + /// > + UINT32 TotalLength; > + > + /// > + /// Array of configuration data groups. > + /// > + /// EFI_JSON_CONFIG_DATA_ITEM ConfigDataList[]; } > +EFI_JSON_CAPSULE_CONFIG_DATA; > + > +#pragma pack() > + > +extern EFI_GUID gEfiJsonConfigDataTableGuid; extern EFI_GUID > +gEfiJsonCapsuleDataTableGuid; extern EFI_GUID > +gEfiJsonCapsuleResultTableGuid; extern EFI_GUID gEfiJsonCapsuleIdGuid; > + > + > +#endif > diff --git a/MdePkg/Include/Uefi/UefiSpec.h > b/MdePkg/Include/Uefi/UefiSpec.h index b9282cc..3547345 100644 > --- a/MdePkg/Include/Uefi/UefiSpec.h > +++ b/MdePkg/Include/Uefi/UefiSpec.h > @@ -1783,6 +1783,7 @@ EFI_STATUS > #define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED > 0x0000000000000008 > #define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED > 0x0000000000000010 > #define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY > 0x0000000000000040 > +#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH > 0x0000000000000080 > > // > // EFI Runtime Services Table > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index > 0b9c4bc..5dc02f2 100644 > --- a/MdePkg/MdePkg.dec > +++ b/MdePkg/MdePkg.dec > @@ -645,6 +645,17 @@ > ## Include/Guid/Btt.h > gEfiBttAbstractionGuid = { 0x18633bfc, 0x1735, 0x4217, { 0x8a, > 0xc9, > 0x17, 0x23, 0x92, 0x82, 0xd3, 0xf8 }} > > + # GUIDs defined in UEFI2.8 > + # > + ## Include/Guid/JsonCapsule.h > + gEfiJsonConfigDataTableGuid = { 0x87367f87, 0x1119, 0x41ce, { 0xaa, > 0xec, 0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a }} > + gEfiJsonCapsuleDataTableGuid = { 0x35e7a725, 0x8dd2, 0x4cac, { 0x80, > 0x11, 0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56 }} > + gEfiJsonCapsuleResultTableGuid = { 0xdbc461c3, 0xb3de, 0x422a, { 0xb9, > 0xb4, 0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5 }} > + gEfiJsonCapsuleIdGuid = { 0x67d6f4cd, 0xd6b8, 0x4573, { 0xbf, > 0x4a, > 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }} > + > + ## Include\Guid\HiiPlatformSetupFormset.h > + gEfiHiiResetStyleFormsetGuid = { 0x790217bd, 0xbecf, 0x485b, { 0x91, > 0x70, 0x5f, 0xf7, 0x11, 0x31, 0x8b, 0x27 }} > + > # > # GUID defined in PI1.0 > # > -- > 2.9.0.windows.1 > > > Please consider the environment before printing this email. > > The information contained in this message may be confidential and > proprietary to American Megatrends (AMI). This communication is intended > to be read only by the individual or entity to whom it is addressed or by > their > designee. If the reader of this message is not the intended recipient, you are > on notice that any distribution of this message, in any form, is strictly > prohibited. Please promptly notify the sender by reply e-mail or by > telephone at 770-246-8600, and then delete or destroy all copies of the > transmission. > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58932): https://edk2.groups.io/g/devel/message/58932 Mute This Topic: https://groups.io/mt/74083839/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-