]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Guid/Capsule.h
IntelFrameworkPkg: Clean up source files
[mirror_edk2.git] / IntelFrameworkPkg / Include / Guid / Capsule.h
CommitLineData
79964ac8 1/** @file\r
aa4a31e3 2 Framework Capule related Definition.\r
79964ac8 3\r
1c2f052d
LG
4Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
5This program and the accompanying materials are licensed and made available under\r
6the terms and conditions of the BSD License that accompanies this distribution.\r
f22f941e 7The full text of the license may be found at\r
1c2f052d
LG
8http://opensource.org/licenses/bsd-license.php.\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
f22f941e 11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
79964ac8 12\r
79964ac8 13 @par Revision Reference:\r
aa4a31e3 14 Capsule Spec Version 0.9\r
79964ac8 15**/\r
16\r
17#ifndef _CAPSULE_GUID_H__\r
18#define _CAPSULE_GUID_H__\r
19\r
20//\r
21// This is the GUID of the capsule header of the image on disk.\r
22//\r
23#define EFI_CAPSULE_GUID \\r
24 { \\r
25 0x3B6686BD, 0x0D76, 0x4030, {0xB7, 0x0E, 0xB5, 0x51, 0x9E, 0x2F, 0xC5, 0xA0 } \\r
26 }\r
27\r
28//\r
29// This is the GUID of the configuration results file created by the capsule\r
30// application.\r
31//\r
32#define EFI_CONFIG_FILE_NAME_GUID \\r
33 { \\r
34 0x98B8D59B, 0xE8BA, 0x48EE, {0x98, 0xDD, 0xC2, 0x95, 0x39, 0x2F, 0x1E, 0xDB } \\r
35 }\r
36\r
aa4a31e3 37///\r
f22f941e 38/// Bits in the flags field of the capsule header.\r
5259c97d 39/// This flag is set if the capsule can support setup changes, and cleared if it cannot.\r
aa4a31e3
LG
40///\r
41#define EFI_CAPSULE_HEADER_FLAG_SETUP 0x00000001\r
1b144bbf 42\r
e89ec8f6 43#define CAPSULE_BLOCK_DESCRIPTOR_SIGNATURE SIGNATURE_32 ('C', 'B', 'D', 'S')\r
1b144bbf 44\r
45//\r
5259c97d 46// An array of these structs describe the blocks that make up a capsule for\r
1b144bbf 47// a capsule update.\r
48//\r
49typedef struct {\r
f22f941e 50 UINT64 Length; ///< Length of the data block.\r
51 EFI_PHYSICAL_ADDRESS Data; ///< Physical address of the data block.\r
52 UINT32 Signature; ///< CBDS.\r
53 UINT32 CheckSum; ///< To sum this structure to 0.\r
1b144bbf 54} FRAMEWORK_EFI_CAPSULE_BLOCK_DESCRIPTOR;\r
55\r
56typedef struct {\r
57 EFI_GUID OemGuid;\r
58 UINT32 HeaderSize;\r
59 //\r
60 // UINT8 OemHdrData[];\r
61 //\r
62} EFI_CAPSULE_OEM_HEADER;\r
63\r
64typedef struct {\r
aa4a31e3
LG
65 ///\r
66 /// A defined GUID that indicates the start of a capsule.\r
67 ///\r
1b144bbf 68 EFI_GUID CapsuleGuid;\r
aa4a31e3
LG
69 ///\r
70 /// The size of the EFI_CAPSULE_HEADER structure.\r
71 ///\r
1b144bbf 72 UINT32 HeaderSize;\r
aa4a31e3 73 ///\r
1c2f052d 74 /// A bit-mapped list describing the capsule's attributes.\r
f22f941e 75 /// All undefined bits should be written as zero (0).\r
aa4a31e3 76 ///\r
1b144bbf 77 UINT32 Flags;\r
aa4a31e3
LG
78 ///\r
79 /// The length in bytes (27,415 for an image containing 27,415 bytes) of the entire image\r
5259c97d 80 /// including all headers. If this value is greater than the size of the data presented in\r
81 /// the capsule body, the image is separated across multiple media. If this\r
aa4a31e3
LG
82 /// value is less than the size of the data, it is an error.\r
83 ///\r
1b144bbf 84 UINT32 CapsuleImageSize;\r
aa4a31e3
LG
85 ///\r
86 /// A zero-based number that enables a capsule to be split into pieces and then\r
87 /// recombined for easier transfer across media with limited size. The lower the\r
88 /// SequenceNumber, the earlier in the final image that the part of the capsule is to\r
89 /// appear. In capsules that are not split, this value shall be zero.\r
90 ///\r
1b144bbf 91 UINT32 SequenceNumber;\r
aa4a31e3
LG
92 ///\r
93 /// Used to group the various pieces of a split capsule to ensure that they comprise the\r
94 /// same base image. It is valid for this item to be zero, in which case the capsule cannot\r
95 /// be split into components.\r
96 ///\r
1b144bbf 97 EFI_GUID InstanceId;\r
aa4a31e3
LG
98 ///\r
99 /// The offset in bytes from the beginning of the header to the start of an EFI string that\r
100 /// contains a description of the identity of the subcapsules that make up the capsule. If\r
101 /// the capsule is not split, this value should be zero. The same string should be\r
102 /// presented for all subcapsules that constitute the same capsule.\r
103 ///\r
1b144bbf 104 UINT32 OffsetToSplitInformation;\r
aa4a31e3
LG
105 ///\r
106 /// The offset in bytes from the beginning of the header to the start of the part of the\r
107 /// capsule that is to be transferred to DXE.\r
108 ///\r
1b144bbf 109 UINT32 OffsetToCapsuleBody;\r
aa4a31e3
LG
110 ///\r
111 /// The offset in bytes from the beginning of the header to the start of the OEM-defined\r
112 /// header. This value must be less than OffsetToCapsuleBody.\r
113 ///\r
1b144bbf 114 UINT32 OffsetToOemDefinedHeader;\r
aa4a31e3
LG
115 ///\r
116 /// The offset in bytes from the beginning of the header to the start of human-readable\r
117 /// text that describes the entity that created the capsule. This value must be less than OffsetToCapsuleBody.\r
118 ///\r
1b144bbf 119 UINT32 OffsetToAuthorInformation;\r
aa4a31e3
LG
120 ///\r
121 /// The offset in bytes from the beginning of the header to the start of human-readable\r
5259c97d 122 /// text that describes the revision of the capsule and/or the capsule's contents. This\r
aa4a31e3
LG
123 /// value must be less than OffsetToCapsuleBody.\r
124 ///\r
1b144bbf 125 UINT32 OffsetToRevisionInformation;\r
aa4a31e3
LG
126 ///\r
127 /// The offset in bytes from the beginning of the header to the start of a one-line (less\r
128 /// than 40 Unicode characters in any language) description of the capsule. It is intended\r
129 /// to be used by OS-present applications when providing a list of capsules from which\r
130 /// the user can choose. This value must be less than OffsetToCapsuleBody.\r
131 ///\r
1b144bbf 132 UINT32 OffsetToShortDescription;\r
aa4a31e3
LG
133 ///\r
134 /// The offset in bytes from the beginning of the header to the start of an EFI string\r
135 ///\r
1b144bbf 136 UINT32 OffsetToLongDescription;\r
aa4a31e3
LG
137 ///\r
138 /// This field is reserved for future use by this specification. For future compatibility,\r
139 /// this field must be set to zero\r
140 ///\r
1b144bbf 141 UINT32 OffsetToApplicableDevices;\r
142} FRAMEWORK_EFI_CAPSULE_HEADER;\r
143\r
79964ac8 144extern EFI_GUID gEfiCapsuleGuid;\r
145extern EFI_GUID gEfiConfigFileNameGuid;\r
146\r
147#endif\r