1 | /** @file
|
---|
2 | Guid & data structure used for Capsule process result variables
|
---|
3 |
|
---|
4 | Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
|
---|
5 | SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
6 |
|
---|
7 | @par Revision Reference:
|
---|
8 | GUIDs defined in UEFI 2.4 spec.
|
---|
9 |
|
---|
10 | **/
|
---|
11 |
|
---|
12 | #ifndef _CAPSULE_REPORT_GUID_H__
|
---|
13 | #define _CAPSULE_REPORT_GUID_H__
|
---|
14 |
|
---|
15 | //
|
---|
16 | // This is the GUID for capsule result variable.
|
---|
17 | //
|
---|
18 | #define EFI_CAPSULE_REPORT_GUID \
|
---|
19 | { \
|
---|
20 | 0x39b68c46, 0xf7fb, 0x441b, {0xb6, 0xec, 0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3 } \
|
---|
21 | }
|
---|
22 |
|
---|
23 | typedef struct {
|
---|
24 | ///
|
---|
25 | /// Size in bytes of the variable including any data beyond header as specified by CapsuleGuid
|
---|
26 | ///
|
---|
27 | UINT32 VariableTotalSize;
|
---|
28 |
|
---|
29 | ///
|
---|
30 | /// For alignment
|
---|
31 | ///
|
---|
32 | UINT32 Reserved;
|
---|
33 |
|
---|
34 | ///
|
---|
35 | /// Guid from EFI_CAPSULE_HEADER
|
---|
36 | ///
|
---|
37 | EFI_GUID CapsuleGuid;
|
---|
38 |
|
---|
39 | ///
|
---|
40 | /// Timestamp using system time when processing completed
|
---|
41 | ///
|
---|
42 | EFI_TIME CapsuleProcessed;
|
---|
43 |
|
---|
44 | ///
|
---|
45 | /// Result of the capsule processing. Exact interpretation of any error code may depend
|
---|
46 | /// upon type of capsule processed
|
---|
47 | ///
|
---|
48 | EFI_STATUS CapsuleStatus;
|
---|
49 | } EFI_CAPSULE_RESULT_VARIABLE_HEADER;
|
---|
50 |
|
---|
51 | typedef struct {
|
---|
52 | ///
|
---|
53 | /// Version of this structure, currently 0x00000001
|
---|
54 | ///
|
---|
55 | UINT16 Version;
|
---|
56 |
|
---|
57 | ///
|
---|
58 | /// The index of the payload within the FMP capsule which was processed to generate this report
|
---|
59 | /// Starting from zero
|
---|
60 | ///
|
---|
61 | UINT8 PayloadIndex;
|
---|
62 |
|
---|
63 | ///
|
---|
64 | /// The UpdateImageIndex from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER
|
---|
65 | /// (after unsigned conversion from UINT8 to UINT16).
|
---|
66 | ///
|
---|
67 | UINT8 UpdateImageIndex;
|
---|
68 |
|
---|
69 | ///
|
---|
70 | /// The UpdateImageTypeId Guid from EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER.
|
---|
71 | ///
|
---|
72 | EFI_GUID UpdateImageTypeId;
|
---|
73 |
|
---|
74 | ///
|
---|
75 | /// In case of capsule loaded from disk, the zero-terminated array containing file name of capsule that was processed.
|
---|
76 | /// In case of capsule submitted directly to UpdateCapsule() there is no file name, and this field is required to contain a single 16-bit zero character
|
---|
77 | /// which is included in VariableTotalSize.
|
---|
78 | ///
|
---|
79 | /// CHAR16 CapsuleFileName[];
|
---|
80 | ///
|
---|
81 |
|
---|
82 | ///
|
---|
83 | /// This field will contain a zero-terminated CHAR16 string containing the text representation of the device path of device publishing Firmware Management Protocol
|
---|
84 | /// (if present). In case where device path is not present and the target is not otherwise known to firmware, or when payload was blocked by policy, or skipped,
|
---|
85 | /// this field is required to contain a single 16-bit zero character which is included in VariableTotalSize.
|
---|
86 | ///
|
---|
87 | /// CHAR16 CapsuleTarget[];
|
---|
88 | ///
|
---|
89 | } EFI_CAPSULE_RESULT_VARIABLE_FMP;
|
---|
90 |
|
---|
91 | typedef struct {
|
---|
92 | ///
|
---|
93 | /// Version of this structure, currently 0x00000001
|
---|
94 | ///
|
---|
95 | UINT32 Version;
|
---|
96 |
|
---|
97 | ///
|
---|
98 | /// The unique identifier of the capsule whose processing result is recorded in this variable.
|
---|
99 | /// 0x00000000 - 0xEFFFFFFF - Implementation Reserved
|
---|
100 | /// 0xF0000000 - 0xFFFFFFFF - Specification Reserved
|
---|
101 | /// #define REDFISH_DEFINED_JSON_SCHEMA 0xF000000
|
---|
102 | /// The JSON payload shall conform to a Redfish-defined JSON schema, see DMTF-Redfish
|
---|
103 | /// Specification.
|
---|
104 | ///
|
---|
105 | UINT32 CapsuleId;
|
---|
106 |
|
---|
107 | ///
|
---|
108 | /// The length of Resp in bytes.
|
---|
109 | ///
|
---|
110 | UINT32 RespLength;
|
---|
111 |
|
---|
112 | ///
|
---|
113 | /// Variable length buffer containing the replied JSON payload to the caller who delivered JSON
|
---|
114 | /// capsule to system. The definition of the JSON schema used in the replied payload is beyond
|
---|
115 | /// the scope of this specification.
|
---|
116 | ///
|
---|
117 | UINT8 Resp[];
|
---|
118 | } EFI_CAPSULE_RESULT_VARIABLE_JSON;
|
---|
119 |
|
---|
120 | extern EFI_GUID gEfiCapsuleReportGuid;
|
---|
121 |
|
---|
122 | #endif
|
---|