]>
Commit | Line | Data |
---|---|---|
1 | /** @file\r | |
2 | Guid & data structure used for Delivering Capsules Containing Updates to Firmware\r | |
3 | Management Protocol\r | |
4 | \r | |
5 | Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>\r | |
6 | SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
7 | \r | |
8 | @par Revision Reference:\r | |
9 | GUIDs defined in UEFI 2.4 spec.\r | |
10 | \r | |
11 | **/\r | |
12 | \r | |
13 | \r | |
14 | #ifndef _FMP_CAPSULE_GUID_H__\r | |
15 | #define _FMP_CAPSULE_GUID_H__\r | |
16 | \r | |
17 | //\r | |
18 | // This is the GUID of the capsule for Firmware Management Protocol.\r | |
19 | //\r | |
20 | #define EFI_FIRMWARE_MANAGEMENT_CAPSULE_ID_GUID \\r | |
21 | { \\r | |
22 | 0x6dcbd5ed, 0xe82d, 0x4c44, {0xbd, 0xa1, 0x71, 0x94, 0x19, 0x9a, 0xd9, 0x2a } \\r | |
23 | }\r | |
24 | \r | |
25 | #pragma pack(1)\r | |
26 | \r | |
27 | typedef struct {\r | |
28 | UINT32 Version;\r | |
29 | \r | |
30 | ///\r | |
31 | /// The number of drivers included in the capsule and the number of corresponding\r | |
32 | /// offsets stored in ItemOffsetList array.\r | |
33 | ///\r | |
34 | UINT16 EmbeddedDriverCount;\r | |
35 | \r | |
36 | ///\r | |
37 | /// The number of payload items included in the capsule and the number of\r | |
38 | /// corresponding offsets stored in the ItemOffsetList array.\r | |
39 | ///\r | |
40 | UINT16 PayloadItemCount;\r | |
41 | \r | |
42 | ///\r | |
43 | /// Variable length array of dimension [EmbeddedDriverCount + PayloadItemCount]\r | |
44 | /// containing offsets of each of the drivers and payload items contained within the capsule\r | |
45 | ///\r | |
46 | // UINT64 ItemOffsetList[];\r | |
47 | } EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER;\r | |
48 | \r | |
49 | typedef struct {\r | |
50 | UINT32 Version;\r | |
51 | \r | |
52 | ///\r | |
53 | /// Used to identify device firmware targeted by this update. This guid is matched by\r | |
54 | /// system firmware against ImageTypeId field within a EFI_FIRMWARE_IMAGE_DESCRIPTOR\r | |
55 | ///\r | |
56 | EFI_GUID UpdateImageTypeId;\r | |
57 | \r | |
58 | ///\r | |
59 | /// Passed as ImageIndex in call to EFI_FIRMWARE_MANAGEMENT_PROTOCOL.SetImage()\r | |
60 | ///\r | |
61 | UINT8 UpdateImageIndex;\r | |
62 | UINT8 reserved_bytes[3];\r | |
63 | \r | |
64 | ///\r | |
65 | /// Size of the binary update image which immediately follows this structure\r | |
66 | ///\r | |
67 | UINT32 UpdateImageSize;\r | |
68 | \r | |
69 | ///\r | |
70 | /// Size of the VendorCode bytes which optionally immediately follow binary update image in the capsule\r | |
71 | ///\r | |
72 | UINT32 UpdateVendorCodeSize;\r | |
73 | \r | |
74 | ///\r | |
75 | /// The HardwareInstance to target with this update. If value is zero it means match all\r | |
76 | /// HardwareInstances. This field allows update software to target only a single device in\r | |
77 | /// cases where there are more than one device with the same ImageTypeId GUID.\r | |
78 | /// This header is outside the signed data of the Authentication Info structure and\r | |
79 | /// therefore can be modified without changing the Auth data.\r | |
80 | ///\r | |
81 | UINT64 UpdateHardwareInstance;\r | |
82 | } EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER;\r | |
83 | \r | |
84 | #pragma pack()\r | |
85 | \r | |
86 | \r | |
87 | #define EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER_INIT_VERSION 0x00000001\r | |
88 | #define EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER_INIT_VERSION 0x00000002\r | |
89 | \r | |
90 | extern EFI_GUID gEfiFmpCapsuleGuid;\r | |
91 | \r | |
92 | #endif\r |