/** @file | |
Guid & data structure used for Delivering Capsules Containing Updates to Firmware | |
Management Protocol | |
Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.<BR> | |
This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
@par Revision Reference: | |
GUIDs defined in UEFI 2.4 spec. | |
**/ | |
#ifndef _FMP_CAPSULE_GUID_H__ | |
#define _FMP_CAPSULE_GUID_H__ | |
// | |
// This is the GUID of the capsule for Firmware Management Protocol. | |
// | |
#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_ID_GUID \ | |
{ \ | |
0x6dcbd5ed, 0xe82d, 0x4c44, {0xbd, 0xa1, 0x71, 0x94, 0x19, 0x9a, 0xd9, 0x2a } \ | |
} | |
#pragma pack(1) | |
typedef struct { | |
UINT32 Version; | |
/// | |
/// The number of drivers included in the capsule and the number of corresponding | |
/// offsets stored in ItemOffsetList array. | |
/// | |
UINT16 EmbeddedDriverCount; | |
/// | |
/// The number of payload items included in the capsule and the number of | |
/// corresponding offsets stored in the ItemOffsetList array. | |
/// | |
UINT16 PayloadItemCount; | |
/// | |
/// Variable length array of dimension [EmbeddedDriverCount + PayloadItemCount] | |
/// containing offsets of each of the drivers and payload items contained within the capsule | |
/// | |
// UINT64 ItemOffsetList[]; | |
} EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER; | |
typedef struct { | |
UINT32 Version; | |
/// | |
/// Used to identifiy device firmware targeted by this update. This guid is matched by | |
/// system firmware against ImageTypeId field within a EFI_FIRMWARE_IMAGE_DESCRIPTOR | |
/// | |
EFI_GUID UpdateImageTypeId; | |
/// | |
/// Passed as ImageIndex in call to EFI_FIRMWARE_MANAGEMENT_PROTOCOL.SetImage() | |
/// | |
UINT8 UpdateImageIndex; | |
UINT8 reserved_bytes[3]; | |
/// | |
/// Size of the binary update image which immediately follows this structure | |
/// | |
UINT32 UpdateImageSize; | |
/// | |
///Size of the VendorCode bytes which optionally immediately follow binary update image in the capsule | |
/// | |
UINT32 UpdateVendorCodeSize; | |
} EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER; | |
#pragma pack() | |
#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER_INIT_VERSION 0x00000001 | |
#define EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER_INIT_VERSION 0x00000001 | |
extern EFI_GUID gEfiFmpCapsuleGuid; | |
#endif |