]>
Commit | Line | Data |
---|---|---|
79964ac8 | 1 | /** @file\r |
aa4a31e3 | 2 | Framework Capule related Definition.\r |
79964ac8 | 3 | \r |
2b3687db | 4 | Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r |
f22f941e | 5 | This program and the accompanying materials are licensed and made available under \r |
6 | the terms and conditions of the BSD License that accompanies this distribution. \r | |
7 | The full text of the license may be found at\r | |
8 | http://opensource.org/licenses/bsd-license.php. \r | |
9 | \r | |
10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r | |
11 | WITHOUT 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 | |
49 | typedef 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 | |
56 | typedef 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 | |
64 | typedef 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 |
5259c97d | 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 | 144 | extern EFI_GUID gEfiCapsuleGuid;\r |
145 | extern EFI_GUID gEfiConfigFileNameGuid;\r | |
146 | \r | |
147 | #endif\r |