1 | /** @file
|
---|
2 | Guid & data structure for tables defined for reporting firmware configuration data to EFI
|
---|
3 | Configuration Tables and also for processing JSON payload capsule.
|
---|
4 |
|
---|
5 |
|
---|
6 | Copyright (c) 2020, American Megatrends International LLC. All rights reserved.<BR>
|
---|
7 | SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
8 |
|
---|
9 | **/
|
---|
10 |
|
---|
11 | #ifndef __JSON_CAPSULE_GUID_H__
|
---|
12 | #define __JSON_CAPSULE_GUID_H__
|
---|
13 |
|
---|
14 | //
|
---|
15 | // The address reported in the table entry identified by EFI_JSON_CAPSULE_DATA_TABLE_GUID will be
|
---|
16 | // referenced as physical and will not be fixed up when transition from preboot to runtime phase. The
|
---|
17 | // addresses reported in these table entries identified by EFI_JSON_CONFIG_DATA_TABLE_GUID and
|
---|
18 | // EFI_JSON_CAPSULE_RESULT_TABLE_GUID will be referenced as virtual and will be fixed up when
|
---|
19 | // transition from preboot to runtime phase.
|
---|
20 | //
|
---|
21 | #define EFI_JSON_CONFIG_DATA_TABLE_GUID \
|
---|
22 | {0x87367f87, 0x1119, 0x41ce, \
|
---|
23 | {0xaa, 0xec, 0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a }}
|
---|
24 | #define EFI_JSON_CAPSULE_DATA_TABLE_GUID \
|
---|
25 | {0x35e7a725, 0x8dd2, 0x4cac, \
|
---|
26 | {0x80, 0x11, 0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56 }}
|
---|
27 | #define EFI_JSON_CAPSULE_RESULT_TABLE_GUID \
|
---|
28 | {0xdbc461c3, 0xb3de, 0x422a,\
|
---|
29 | {0xb9, 0xb4, 0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5 }}
|
---|
30 | #define EFI_JSON_CAPSULE_ID_GUID \
|
---|
31 | {0x67d6f4cd, 0xd6b8, 0x4573, \
|
---|
32 | {0xbf, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae }}
|
---|
33 |
|
---|
34 | #pragma pack(1)
|
---|
35 |
|
---|
36 | typedef struct {
|
---|
37 | ///
|
---|
38 | /// Version of the structure, initially 0x00000001.
|
---|
39 | ///
|
---|
40 | UINT32 Version;
|
---|
41 |
|
---|
42 | ///
|
---|
43 | /// The unique identifier of this capsule.
|
---|
44 | ///
|
---|
45 | UINT32 CapsuleId;
|
---|
46 |
|
---|
47 | ///
|
---|
48 | /// The length of the JSON payload immediately following this header, in bytes.
|
---|
49 | ///
|
---|
50 | UINT32 PayloadLength;
|
---|
51 |
|
---|
52 | ///
|
---|
53 | /// Variable length buffer containing the JSON payload that should be parsed and applied to the system. The
|
---|
54 | /// definition of the JSON schema used in the payload is beyond the scope of this specification.
|
---|
55 | ///
|
---|
56 | UINT8 Payload[];
|
---|
57 | } EFI_JSON_CAPSULE_HEADER;
|
---|
58 |
|
---|
59 | typedef struct {
|
---|
60 | ///
|
---|
61 | /// The length of the following ConfigData, in bytes.
|
---|
62 | ///
|
---|
63 | UINT32 ConfigDataLength;
|
---|
64 |
|
---|
65 | ///
|
---|
66 | /// Variable length buffer containing the JSON payload that describes one group of configuration data within
|
---|
67 | /// current system. The definition of the JSON schema used in this payload is beyond the scope of this specification.
|
---|
68 | ///
|
---|
69 | UINT8 ConfigData[];
|
---|
70 | } EFI_JSON_CONFIG_DATA_ITEM;
|
---|
71 |
|
---|
72 | typedef struct {
|
---|
73 | ///
|
---|
74 | /// Version of the structure, initially 0x00000001.
|
---|
75 | ///
|
---|
76 | UINT32 Version;
|
---|
77 |
|
---|
78 | ///
|
---|
79 | ////The total length of EFI_JSON_CAPSULE_CONFIG_DATA, in bytes.
|
---|
80 | ///
|
---|
81 | UINT32 TotalLength;
|
---|
82 |
|
---|
83 | ///
|
---|
84 | /// Array of configuration data groups.
|
---|
85 | ///
|
---|
86 | EFI_JSON_CONFIG_DATA_ITEM ConfigDataList[];
|
---|
87 | } EFI_JSON_CAPSULE_CONFIG_DATA;
|
---|
88 |
|
---|
89 | #pragma pack()
|
---|
90 |
|
---|
91 | extern EFI_GUID gEfiJsonConfigDataTableGuid;
|
---|
92 | extern EFI_GUID gEfiJsonCapsuleDataTableGuid;
|
---|
93 | extern EFI_GUID gEfiJsonCapsuleResultTableGuid;
|
---|
94 | extern EFI_GUID gEfiJsonCapsuleIdGuid;
|
---|
95 |
|
---|
96 | #endif
|
---|