mirror of https://github.com/acidanthera/audk.git
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 <oleksiyy@ami.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Zhiguang Liu <zhiguang.liu@intel.com>
This commit is contained in:
parent
2552fd58f5
commit
154e243a99
|
@ -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 - 0xEFFFFFFF - Implementation Reserved
|
||||
/// 0xF0000000 - 0xFFFFFFFF - 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;
|
||||
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
/** @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[];
|
||||
} 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
|
|
@ -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
|
||||
|
|
|
@ -647,6 +647,12 @@
|
|||
|
||||
# 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 }}
|
||||
|
||||
|
|
Loading…
Reference in New Issue