9#ifndef _SYSTEM_FIRMWARE_UPDATE_H_
10#define _SYSTEM_FIRMWARE_UPDATE_H_
38 UINT32 LastAttemptVersion;
39 UINT32 LastAttemptStatus;
42#define SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME L"SystemLastAttempVar"
44#define SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_GUID {0x2f564d6f, 0xcc2c, 0x4838, { 0xb9, 0xa8, 0xbe, 0x59, 0x48, 0xb0, 0x3d, 0x59 }}
46#define SYSTEM_FMP_PRIVATE_DATA_SIGNATURE SIGNATURE_32('S', 'Y', 'S', 'F')
48#define SYSTEM_FMP_PROTOCOL_GUID {0x6d16624a, 0x26a6, 0x4cb4, { 0x84, 0xfa, 0x6, 0x78, 0x5a, 0x7e, 0x82, 0x6a }}
58 UINT8 DescriptorCount;
75#define SYSTEM_FMP_PRIVATE_DATA_FROM_FMP(a) \
78 SYSTEM_FMP_PRIVATE_DATA, \
80 SYSTEM_FMP_PRIVATE_DATA_SIGNATURE \
93 PLATFORM_FIRMWARE_TYPE FirmwareType;
94 FLASH_ADDRESS_TYPE AddressType;
105#define SYSTEM_FIRMWARE_UPDATE_COMMUNICATION_FUNCTION_SET_IMAGE 1
113#define ABORT_REASON_MAX_SIZE 0x40
115#define CAPSULE_IMAGE_ADDITIONAL_MAX_SIZE (0x20020 + 0xA0000)
120 UINTN AbortReasonSize;
121 UINT32 LastAttemptVersion;
122 UINT32 LastAttemptStatus;
170 OUT UINT32 *DescriptorVersion,
171 OUT UINT8 *DescriptorCount,
173 OUT UINT32 *PackageVersion,
174 OUT CHAR16 **PackageVersionName
264 OUT CHAR16 **AbortReason
294 OUT UINT32 *ImageUpdatable
333 OUT UINT32 *PackageVersion,
334 OUT CHAR16 **PackageVersionName,
335 OUT UINT32 *PackageVersionNameMaxLen,
336 OUT UINT64 *AttributesSupported,
337 OUT UINT64 *AttributesSetting
378 IN UINT32 PackageVersion,
379 IN CONST CHAR16 *PackageVersionName
394extern EFI_GUID gSystemFmpLastAttemptVariableGuid;
396extern EFI_GUID gSystemFmpProtocolGuid;
EFI_STATUS(EFIAPI * EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS)(IN UINTN Completion)
EFI_STATUS EFIAPI FmpGetImageInfo(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN OUT UINTN *ImageInfoSize, IN OUT EFI_FIRMWARE_IMAGE_DESCRIPTOR *ImageInfo, OUT UINT32 *DescriptorVersion, OUT UINT8 *DescriptorCount, OUT UINTN *DescriptorSize, OUT UINT32 *PackageVersion, OUT CHAR16 **PackageVersionName)
EFI_STATUS EFIAPI FmpCheckImage(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN UINT8 ImageIndex, IN CONST VOID *Image, IN UINTN ImageSize, OUT UINT32 *ImageUpdatable)
EFI_STATUS EFIAPI FmpGetImage(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN UINT8 ImageIndex, IN OUT VOID *Image, IN OUT UINTN *ImageSize)
EFI_STATUS InitializePrivateData(IN SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate)
EFI_STATUS EFIAPI FmpSetImage(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN UINT8 ImageIndex, IN CONST VOID *Image, IN UINTN ImageSize, IN CONST VOID *VendorCode, IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress, OUT CHAR16 **AbortReason)
EFI_STATUS EFIAPI FmpGetPackageInfo(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, OUT UINT32 *PackageVersion, OUT CHAR16 **PackageVersionName, OUT UINT32 *PackageVersionNameMaxLen, OUT UINT64 *AttributesSupported, OUT UINT64 *AttributesSetting)
EFI_STATUS EFIAPI FmpSetPackageInfo(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN CONST VOID *Image, IN UINTN ImageSize, IN CONST VOID *VendorCode, IN UINT32 PackageVersion, IN CONST CHAR16 *PackageVersionName)
UINT64 EFI_PHYSICAL_ADDRESS