image stored in a firmware device with platform and firmware device specific\r
information provided through PCDs and libraries.\r
\r
- Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>\r
- Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) Microsoft Corporation.<BR>\r
+ Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
#include <Library/UefiRuntimeServicesTableLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
#include <Library/UefiLib.h>\r
+#include <Library/PrintLib.h>\r
#include <Library/FmpAuthenticationLib.h>\r
#include <Library/FmpDeviceLib.h>\r
#include <Library/FmpPayloadHeaderLib.h>\r
#include <Library/CapsuleUpdatePolicyLib.h>\r
+#include <Library/FmpDependencyLib.h>\r
+#include <Library/FmpDependencyCheckLib.h>\r
+#include <Library/FmpDependencyDeviceLib.h>\r
#include <Protocol/FirmwareManagement.h>\r
#include <Protocol/FirmwareManagementProgress.h>\r
-#include <Protocol/VariableLock.h>\r
#include <Guid/SystemResourceTable.h>\r
#include <Guid/EventGroup.h>\r
+#include <LastAttemptStatus.h>\r
+#include <FmpLastAttemptStatus.h>\r
+#include <Library/VariablePolicyHelperLib.h>\r
\r
#define VERSION_STRING_NOT_SUPPORTED L"VERSION STRING NOT SUPPORTED"\r
#define VERSION_STRING_NOT_AVAILABLE L"VERSION STRING NOT AVAILABLE"\r
///\r
///\r
///\r
-#define FIRMWARE_MANAGEMENT_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('f','m','p','p')\r
+#define FIRMWARE_MANAGEMENT_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('f','m','p','p')\r
\r
typedef struct {\r
- UINTN Signature;\r
- EFI_HANDLE Handle;\r
- EFI_FIRMWARE_MANAGEMENT_PROTOCOL Fmp;\r
- BOOLEAN DescriptorPopulated;\r
- EFI_FIRMWARE_IMAGE_DESCRIPTOR Descriptor;\r
- CHAR16 *ImageIdName;\r
- CHAR16 *VersionName;\r
- BOOLEAN RuntimeVersionSupported;\r
- EFI_EVENT FmpDeviceLockEvent;\r
+ UINTN Signature;\r
+ EFI_HANDLE Handle;\r
+ EFI_FIRMWARE_MANAGEMENT_PROTOCOL Fmp;\r
+ BOOLEAN DescriptorPopulated;\r
+ EFI_FIRMWARE_IMAGE_DESCRIPTOR Descriptor;\r
+ CHAR16 *ImageIdName;\r
+ CHAR16 *VersionName;\r
+ BOOLEAN RuntimeVersionSupported;\r
+ EFI_EVENT FmpDeviceLockEvent;\r
//\r
// Indicates if an attempt has been made to lock a\r
// FLASH storage device by calling FmpDeviceLock().\r
// so this variable is set to TRUE even if FmpDeviceLock()\r
// returns an error.\r
//\r
- BOOLEAN FmpDeviceLocked;\r
- VOID *FmpDeviceContext;\r
- CHAR16 *VersionVariableName;\r
- CHAR16 *LsvVariableName;\r
- CHAR16 *LastAttemptStatusVariableName;\r
- CHAR16 *LastAttemptVersionVariableName;\r
- CHAR16 *FmpStateVariableName;\r
+ BOOLEAN FmpDeviceLocked;\r
+ VOID *FmpDeviceContext;\r
+ CHAR16 *VersionVariableName;\r
+ CHAR16 *LsvVariableName;\r
+ CHAR16 *LastAttemptStatusVariableName;\r
+ CHAR16 *LastAttemptVersionVariableName;\r
+ CHAR16 *FmpStateVariableName;\r
+ BOOLEAN DependenciesSatisfied;\r
} FIRMWARE_MANAGEMENT_PRIVATE_DATA;\r
\r
///\r
IN OUT UINTN *ImageSize\r
);\r
\r
-\r
/**\r
Checks if the firmware image is valid for the device.\r
\r