]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Guid/FmpCapsule.h
MdePkg: Add ESRT Interface Definitions
[mirror_edk2.git] / MdePkg / Include / Guid / FmpCapsule.h
CommitLineData
566771b0 1/** @file\r
2 Guid & data structure used for Delivering Capsules Containing Updates to Firmware\r
93e8d03c 3 Management Protocol\r
566771b0 4\r
2ca32f8d 5 Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>\r
71058578
HW
6 This program and the accompanying materials \r
7 are licensed and made available under the terms and conditions of the BSD License \r
8 which accompanies this distribution. The full text of the license may be found at \r
9 http://opensource.org/licenses/bsd-license.php \r
566771b0 10\r
71058578
HW
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
566771b0 13\r
14 @par Revision Reference:\r
15 GUIDs defined in UEFI 2.4 spec.\r
16\r
17**/\r
18\r
19\r
20#ifndef _FMP_CAPSULE_GUID_H__\r
21#define _FMP_CAPSULE_GUID_H__\r
22\r
23//\r
24// This is the GUID of the capsule for Firmware Management Protocol.\r
25//\r
26#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_ID_GUID \\r
27 { \\r
28 0x6dcbd5ed, 0xe82d, 0x4c44, {0xbd, 0xa1, 0x71, 0x94, 0x19, 0x9a, 0xd9, 0x2a } \\r
29 }\r
30\r
31#pragma pack(1)\r
32\r
33typedef struct {\r
34 UINT32 Version;\r
35\r
36 ///\r
37 /// The number of drivers included in the capsule and the number of corresponding\r
71058578 38 /// offsets stored in ItemOffsetList array. \r
566771b0 39 ///\r
40 UINT16 EmbeddedDriverCount;\r
41\r
42 ///\r
43 /// The number of payload items included in the capsule and the number of\r
44 /// corresponding offsets stored in the ItemOffsetList array.\r
45 ///\r
46 UINT16 PayloadItemCount;\r
47\r
48 ///\r
49 /// Variable length array of dimension [EmbeddedDriverCount + PayloadItemCount]\r
50 /// containing offsets of each of the drivers and payload items contained within the capsule\r
51 ///\r
52 // UINT64 ItemOffsetList[];\r
53} EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER;\r
54\r
55typedef struct {\r
56 UINT32 Version;\r
57\r
58 ///\r
2ca32f8d 59 /// Used to identify device firmware targeted by this update. This guid is matched by\r
566771b0 60 /// system firmware against ImageTypeId field within a EFI_FIRMWARE_IMAGE_DESCRIPTOR\r
61 ///\r
62 EFI_GUID UpdateImageTypeId;\r
63\r
64 ///\r
65 /// Passed as ImageIndex in call to EFI_FIRMWARE_MANAGEMENT_PROTOCOL.SetImage()\r
66 ///\r
67 UINT8 UpdateImageIndex;\r
68 UINT8 reserved_bytes[3];\r
69\r
70 ///\r
71 /// Size of the binary update image which immediately follows this structure\r
72 ///\r
73 UINT32 UpdateImageSize;\r
74\r
75 ///\r
2ca32f8d 76 /// Size of the VendorCode bytes which optionally immediately follow binary update image in the capsule\r
566771b0 77 ///\r
78 UINT32 UpdateVendorCodeSize;\r
2ca32f8d
HW
79\r
80 ///\r
81 /// The HardwareInstance to target with this update. If value is zero it means match all\r
82 /// HardwareInstances. This field allows update software to target only a single device in\r
83 /// cases where there are more than one device with the same ImageTypeId GUID.\r
84 /// This header is outside the signed data of the Authentication Info structure and\r
85 /// therefore can be modified without changing the Auth data.\r
86 ///\r
87 UINT64 UpdateHardwareInstance;\r
566771b0 88} EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER;\r
89\r
90#pragma pack()\r
91\r
92\r
2ca32f8d
HW
93#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER_INIT_VERSION 0x00000001\r
94#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER_INIT_VERSION 0x00000002\r
566771b0 95\r
96extern EFI_GUID gEfiFmpCapsuleGuid;\r
97\r
98#endif\r