From nobody Mon Feb 9 16:35:26 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+59371+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+59371+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1589316527; cv=none; d=zohomail.com; s=zohoarc; b=IqCsrE7lapRTq2dQvX3+g06m8ItlKJMqrgavH14P+OzWbK/Y5VPPeg461Vx25Lv4+0jpwNtfTucFv15TqLZD7VlKxy5/sRIaE7NGtgFpLhcPxFKtK+I0VCesOWQBnQHEwOBKa9/yFhLd9u3WanyjuqNdX4vhmM1sLJDlAn+1rBM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1589316527; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=SeC6ZT7NHmw598ItI5xAf4hHGoC5Au3lrtX/4Tjiw7o=; b=csto2AAcMeVinpzGTwtbmqHqfb8eHty4mF7YXIof7Vl8ksBnkTavu/9AXwR+pX04o0ai4dJfb+Q15O89AKDVD9flzzuueCYvCeXGeZLgG1QduBeyNU9weXXXOidqY6fwRbSXfEl+mDlQ+4JGV0Hx34RUYwMogg05m3/Up66aLWc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+59371+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1589316527568677.5976159612959; Tue, 12 May 2020 13:48:47 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id d7O8YY1788612xdufmqUUXUU; Tue, 12 May 2020 13:48:47 -0700 X-Received: from atlmailgw2.ami.com (atlmailgw2.ami.com []) by mx.groups.io with SMTP id smtpd.web10.940.1589316520183778511 for ; Tue, 12 May 2020 13:48:46 -0700 X-AuditID: ac10606f-049ff70000001b62-51-5ebb0badd139 X-Received: from atlms1.us.megatrends.com (atlms1.us.megatrends.com [172.16.96.144]) (using TLS with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client did not present a certificate) by atlmailgw2.ami.com (Symantec Messaging Gateway) with SMTP id E6.62.07010.DAB0BBE5; Tue, 12 May 2020 16:48:45 -0400 (EDT) X-Received: from Oleksiy77.us.megatrends.com (172.16.97.158) by atlms1.us.megatrends.com (172.16.96.144) with Microsoft SMTP Server id 14.3.468.0; Tue, 12 May 2020 16:48:06 -0400 From: "Oleksiy Yakovlev" To: CC: , , , , Subject: [edk2-devel] [PATCH v6 7/7] MdePkg: UEFI JSON Capsule Support Date: Tue, 12 May 2020 16:47:56 -0400 Message-ID: <20200512204756.25980-8-oleksiyy@ami.com> In-Reply-To: <20200512204756.25980-1-oleksiyy@ami.com> References: <20200512204756.25980-1-oleksiyy@ami.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrCIsWRmVeSWpSXmKPExsWyRiBhgu5a7t1xBlevWVn8OjqPzaJ9wmw2 ixX3NrBbdHT8Y3Jg8dj+/QKjx+I9L5kCmKIaGG0S8/LySxJLUhVSUouTbZUCijLLEpMrlRQy U2yVDJUUCnISk1NzU/NKbJUSCwpS81KU7LgUMIANUFlmnkJqXnJ+SmZeuq2SZ7C/roWFqaWu oZJdSEaqQmZeWn5RbmJJZn6eQnJ+XglQdWoKUFQhoZsz4++UHawF3cYVU66eYGpg3KvZxcjJ ISFgIjHj9TmWLkYuDiGBXUwSK/atY4ZwtjBK3D9wngmkik1AU+LAsSmMILaIgJTElAMzweLM AhUST1c+YQGxhQUsJWau+8TaxcjBwSKgKvF4dzFImFfAVOLVaogxEgIaEtPW3AWzOQXMJD7v 2MEKYgsB1Xz48J4Nol5Q4uRMiJHMAhISB1+8YIaokZVoO/6cfQIj/ywkZbOQlC1gZFrFKJRY kpObmJmTXm6kl5ibqZecn7uJERJl+TsYP340P8TIxMF4iFGCg1lJhLclc2ecEG9KYmVValF+ fFFpTmrxIUYnoPsnMktxgwIQGCPxxgYGUqIwjqGJmYm5kbmhpYm5sbGSOO+ktWvihATSgTGb nZpakFoEM4SJg1OqgXHDo+kstue1ZzcZxh4Pf37e8tLND7arfmzJFKme89XYIfxiS4WTdcjr XGEd5mlbxR+t8ljfnuneMlm3WIy952mi1a8/c8UYPj6ovibPcjA0qOqVmc6Sp2tFROZvaCyM fRCZ8WR3aKDbqupqsZmZmz5aVmd2/Ozplpf7s/cBX++ic8xLIqO0xZRYijMSDbWYi4oTAbDB kPvHAgAA Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,oleksiyy@ami.com X-Gm-Message-State: 4JUpdp9ud6BnvsKPFhwMlQB4x1787277AA= Content-Length: 7146 Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1589316527; bh=6jH/F3Iu1I80i6diyos6qndlJSJ3VWOIbuJ2PU0PmD8=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=NUwS+yzwmg++q8gcc3x1M74hyISt7eNlBumMOtuvgvKZXIDNuOmNKUhsnBZo76VvKji CuLy9PTuvHBlr24b+n6K211x78Yh+uddNwEg7r9LspP+lbCUxw1FEDoGq/i7mDGHo2wzh Z4glUK2vYoy8IwRas1Toh5jTnEs/7YmbPxU= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: Liming Gao --- MdePkg/Include/Guid/CapsuleReport.h | 29 +++++++++++ MdePkg/Include/Guid/JsonCapsule.h | 98 +++++++++++++++++++++++++++++++++= ++++ MdePkg/Include/Uefi/UefiSpec.h | 1 + MdePkg/MdePkg.dec | 6 +++ 4 files changed, 134 insertions(+) create mode 100644 MdePkg/Include/Guid/JsonCapsule.h diff --git a/MdePkg/Include/Guid/CapsuleReport.h b/MdePkg/Include/Guid/Caps= uleReport.h index 93d2bb7..53720e0 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 reco= rded 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 ca= ller who delivered JSON + /// capsule to system. The definition of the JSON schema used in the rep= lied 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/JsonCa= psule.h new file mode 100644 index 0000000..b34d6e3 --- /dev/null +++ b/MdePkg/Include/Guid/JsonCapsule.h @@ -0,0 +1,98 @@ +/** @file +Guid & data structure for tables defined for reporting firmware configurat= ion data to EFI +Configuration Tables and also for processing JSON payload capsule. + + +Copyright (c) 2020, American Megatrends International LLC. All rights rese= rved.
+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 pr= eboot 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 wi= ll 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 pa= rsed and applied to the system. The + /// definition of the JSON schema used in the payload is beyond the scop= e 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 on= e group of configuration data within + /// current system. The definition of the JSON schema used in this paylo= ad 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 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 0x000000000000= 0008 #define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x000000000000= 0010 #define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x000000000000= 0040 +#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH 0x000000000000= 0080 // // EFI Runtime Services Table diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index b6da94b..91b6e28 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -647,6 +647,12 @@ # GUIDs defined in UEFI2.8 # + ## Include/Guid/JsonCapsule.h + gEfiJsonConfigDataTableGuid =3D { 0x87367f87, 0x1119, 0x41ce, { 0xa= a, 0xec, 0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a }} + gEfiJsonCapsuleDataTableGuid =3D { 0x35e7a725, 0x8dd2, 0x4cac, { 0x8= 0, 0x11, 0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56 }} + gEfiJsonCapsuleResultTableGuid =3D { 0xdbc461c3, 0xb3de, 0x422a, { 0xb= 9, 0xb4, 0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5 }} + gEfiJsonCapsuleIdGuid =3D { 0x67d6f4cd, 0xd6b8, 0x4573, { 0xb= f, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }} + ## Include/Guid/HiiPlatformSetupFormset.h gEfiHiiResetStyleFormsetGuid =3D { 0x790217bd, 0xbecf, 0x485b, { 0x9= 1, 0x70, 0x5f, 0xf7, 0x11, 0x31, 0x8b, 0x27 }} -- 2.9.0.windows.1 Please consider the environment before printing this email. The information contained in this message may be confidential and proprieta= ry 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 desig= nee. If the reader of this message is not the intended recipient, you are o= n notice that any distribution of this message, in any form, is strictly pr= ohibited. Please promptly notify the sender by reply e-mail or by telephon= e at 770-246-8600, and then delete or destroy all copies of the transmissio= n. -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#59371): https://edk2.groups.io/g/devel/message/59371 Mute This Topic: https://groups.io/mt/74168072/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-