summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
559b5d5)
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
"value of 0 disables the watchdog timer. The default value is 0 (watchdog"\r
"disabled)."\r
\r
"value of 0 disables the watchdog timer. The default value is 0 (watchdog"\r
"disabled)."\r
\r
-#string STR_gEfiSecurityPkgTokenSpaceGuid_PcdFmpDevicePkcs7CertBufferXdr_PROMPT #language en-US "One or more XDR encoded PKCS7 certificates used to verify firmware device capsule update images"\r
-#string STR_gEfiSecurityPkgTokenSpaceGuid_PcdFmpDevicePkcs7CertBufferXdr_HELP #language en-US "Provides one or more PKCS7 certificates used to verify a firmware device"\r
- "capsule update image. This PCD is encoded using the Variable-Length Opaque"\r
- "Data format of RFC 4506 External Data Representation Standard (XDR)."\r
- "The default value is empty with 0 certificates."\r
+#string STR_gFmpDevicePkgTokenSpaceGuid_PcdFmpDevicePkcs7CertBufferXdr_PROMPT #language en-US "One or more XDR encoded PKCS7 certificates used to verify firmware device capsule update images"\r
+#string STR_gFmpDevicePkgTokenSpaceGuid_PcdFmpDevicePkcs7CertBufferXdr_HELP #language en-US "Provides one or more PKCS7 certificates used to verify a firmware device"\r
+ "capsule update image. This PCD is encoded using the Variable-Length Opaque"\r
+ "Data format of RFC 4506 External Data Representation Standard (XDR)."\r
+ "The default value is empty with 0 certificates."\r
-#string STR_gEfiSecurityPkgTokenSpaceGuid_PcdFmpDeviceLockEventGuid_PROMPT #language en-US "Firmware Device Lock Event GUID."\r
-#string STR_gEfiSecurityPkgTokenSpaceGuid_PcdFmpDeviceLockEventGuid_HELP #language en-US "An event GUID that locks the firmware device when the event is signaled."\r
- "If this PCD is not a valid GUID value, then the firmware device is locked"\r
- "when gEfiEndOfDxeEventGroupGuid (End of DXE Phase) is signaled. The"\r
- "default value is empty, so by default the firmware device is locked at the"\r
- "end of the DXE phase."\r
+#string STR_gFmpDevicePkgTokenSpaceGuid_PcdFmpDeviceLockEventGuid_PROMPT #language en-US "Firmware Device Lock Event GUID."\r
+#string STR_gFmpDevicePkgTokenSpaceGuid_PcdFmpDeviceLockEventGuid_HELP #language en-US "An event GUID that locks the firmware device when the event is signaled."\r
+ "If this PCD is not a valid GUID value, then the firmware device is locked"\r
+ "when gEfiEndOfDxeEventGroupGuid (End of DXE Phase) is signaled. The"\r
+ "default value is empty, so by default the firmware device is locked at the"\r
+ "end of the DXE phase."\r
Detects if PcdFmpDevicePkcs7CertBufferXdr contains a test key.\r
\r
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
Detects if PcdFmpDevicePkcs7CertBufferXdr contains a test key.\r
\r
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
Produces a Firmware Management Protocol that supports updates to a firmware\r
image stored in a firmware device with platform and firmware device specific\r
information provided through PCDs and libraries.\r
Produces a Firmware Management Protocol that supports updates to a firmware\r
image stored in a firmware device with platform and firmware device specific\r
information provided through PCDs and libraries.\r
\r
EFI_EVENT mFmpDeviceLockEvent;\r
//\r
\r
EFI_EVENT mFmpDeviceLockEvent;\r
//\r
-// Indicates if an attempt has been made to lock a \r
+// Indicates if an attempt has been made to lock a\r
// FLASH storage device by calling FmpDeviceLock().\r
// A FLASH storage device may not support being locked,\r
// so this variable is set to TRUE even if FmpDeviceLock()\r
// FLASH storage device by calling FmpDeviceLock().\r
// A FLASH storage device may not support being locked,\r
// so this variable is set to TRUE even if FmpDeviceLock()\r
This function allows a copy of the current firmware image to be created and saved.\r
The saved copy could later been used, for example, in firmware image recovery or rollback.\r
\r
This function allows a copy of the current firmware image to be created and saved.\r
The saved copy could later been used, for example, in firmware image recovery or rollback.\r
\r
- @param[in] This A pointer to the EFI_FIRMWARE_MANAGEMENT_PROTOCOL instance.\r
- @param[in] ImageIndex A unique number identifying the firmware image(s) within the device.\r
+ @param[in] This A pointer to the EFI_FIRMWARE_MANAGEMENT_PROTOCOL instance.\r
+ @param[in] ImageIndex A unique number identifying the firmware image(s) within the device.\r
The number is between 1 and DescriptorCount.\r
The number is between 1 and DescriptorCount.\r
- @param[out] Image Points to the buffer where the current image is copied to.\r
- @param[out] ImageSize On entry, points to the size of the buffer pointed to by Image, in bytes.\r
+ @param[in, out] Image Points to the buffer where the current image is copied to.\r
+ @param[in, out] ImageSize On entry, points to the size of the buffer pointed to by Image, in bytes.\r
On return, points to the length of the image, in bytes.\r
\r
@retval EFI_SUCCESS The device was successfully updated with the new image.\r
On return, points to the length of the image, in bytes.\r
\r
@retval EFI_SUCCESS The device was successfully updated with the new image.\r
IN UINT8 ImageIndex,\r
IN CONST VOID *Image,\r
IN UINTN ImageSize,\r
IN UINT8 ImageIndex,\r
IN CONST VOID *Image,\r
IN UINTN ImageSize,\r
- OUT UINT32 *ImageUpdateable\r
+ OUT UINT32 *ImageUpdatable\r
)\r
{\r
EFI_STATUS Status;\r
)\r
{\r
EFI_STATUS Status;\r
PopulateDescriptor();\r
}\r
\r
PopulateDescriptor();\r
}\r
\r
- if (ImageUpdateable == NULL) {\r
- DEBUG ((DEBUG_ERROR, "FmpDxe: CheckImage() - ImageUpdateable Pointer Parameter is NULL.\n"));\r
+ if (ImageUpdatable == NULL) {\r
+ DEBUG ((DEBUG_ERROR, "FmpDxe: CheckImage() - ImageUpdatable Pointer Parameter is NULL.\n"));\r
Status = EFI_INVALID_PARAMETER;\r
goto cleanup;\r
}\r
Status = EFI_INVALID_PARAMETER;\r
goto cleanup;\r
}\r
//\r
//Set to valid and then if any tests fail it will update this flag.\r
//\r
//\r
//Set to valid and then if any tests fail it will update this flag.\r
//\r
- *ImageUpdateable = IMAGE_UPDATABLE_VALID;\r
+ *ImageUpdatable = IMAGE_UPDATABLE_VALID;\r
\r
if (Image == NULL) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckImage() - Image Pointer Parameter is NULL.\n"));\r
//\r
// not sure if this is needed\r
//\r
\r
if (Image == NULL) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckImage() - Image Pointer Parameter is NULL.\n"));\r
//\r
// not sure if this is needed\r
//\r
- *ImageUpdateable = IMAGE_UPDATABLE_INVALID;\r
+ *ImageUpdatable = IMAGE_UPDATABLE_INVALID;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
if (ImageIndex != 1) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckImage() - Image Index Invalid.\n"));\r
//\r
if (ImageIndex != 1) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckImage() - Image Index Invalid.\n"));\r
- *ImageUpdateable = IMAGE_UPDATABLE_INVALID_TYPE;\r
+ *ImageUpdatable = IMAGE_UPDATABLE_INVALID_TYPE;\r
Status = EFI_SUCCESS;\r
goto cleanup;\r
}\r
Status = EFI_SUCCESS;\r
goto cleanup;\r
}\r
Status = GetFmpPayloadHeaderVersion (FmpPayloadHeader, FmpPayloadSize, &Version);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckTheImage() - GetFmpPayloadHeaderVersion failed %r.\n", Status));\r
Status = GetFmpPayloadHeaderVersion (FmpPayloadHeader, FmpPayloadSize, &Version);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckTheImage() - GetFmpPayloadHeaderVersion failed %r.\n", Status));\r
- *ImageUpdateable = IMAGE_UPDATABLE_INVALID;\r
+ *ImageUpdatable = IMAGE_UPDATABLE_INVALID;\r
Status = EFI_SUCCESS;\r
goto cleanup;\r
}\r
Status = EFI_SUCCESS;\r
goto cleanup;\r
}\r
"FmpDxe: CheckTheImage() - Version Lower than lowest supported version. 0x%08X < 0x%08X\n",\r
Version, mDesc.LowestSupportedImageVersion)\r
);\r
"FmpDxe: CheckTheImage() - Version Lower than lowest supported version. 0x%08X < 0x%08X\n",\r
Version, mDesc.LowestSupportedImageVersion)\r
);\r
- *ImageUpdateable = IMAGE_UPDATABLE_INVALID_OLD;\r
+ *ImageUpdatable = IMAGE_UPDATABLE_INVALID_OLD;\r
Status = EFI_SUCCESS;\r
goto cleanup;\r
}\r
Status = EFI_SUCCESS;\r
goto cleanup;\r
}\r
Status = GetFmpPayloadHeaderSize (FmpPayloadHeader, FmpPayloadSize, &FmpHeaderSize);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckTheImage() - GetFmpPayloadHeaderSize failed %r.\n", Status));\r
Status = GetFmpPayloadHeaderSize (FmpPayloadHeader, FmpPayloadSize, &FmpHeaderSize);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckTheImage() - GetFmpPayloadHeaderSize failed %r.\n", Status));\r
- *ImageUpdateable = IMAGE_UPDATABLE_INVALID;\r
+ *ImageUpdatable = IMAGE_UPDATABLE_INVALID;\r
Status = EFI_SUCCESS;\r
goto cleanup;\r
}\r
Status = EFI_SUCCESS;\r
goto cleanup;\r
}\r
//\r
// FmpDeviceLib CheckImage function to do any specific checks\r
//\r
//\r
// FmpDeviceLib CheckImage function to do any specific checks\r
//\r
- Status = FmpDeviceCheckImage ((((UINT8 *)Image) + AllHeaderSize), RawSize, ImageUpdateable);\r
+ Status = FmpDeviceCheckImage ((((UINT8 *)Image) + AllHeaderSize), RawSize, ImageUpdatable);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckTheImage() - FmpDeviceLib CheckImage failed. Status = %r\n", Status));\r
}\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "FmpDxe: CheckTheImage() - FmpDeviceLib CheckImage failed. Status = %r\n", Status));\r
}\r
EFI_STATUS GetAttributesStatus;\r
UINT64 AttributesSupported;\r
UINT64 AttributesSetting;\r
EFI_STATUS GetAttributesStatus;\r
UINT64 AttributesSupported;\r
UINT64 AttributesSetting;\r
+ UINT32 Version;\r
+ UINT32 LowestSupportedVersion;\r
\r
Status = EFI_SUCCESS;\r
Updateable = 0;\r
\r
Status = EFI_SUCCESS;\r
Updateable = 0;\r
// Update the version stored in variable\r
//\r
if (!mRuntimeVersionSupported) {\r
// Update the version stored in variable\r
//\r
if (!mRuntimeVersionSupported) {\r
- UINT32 Version = DEFAULT_VERSION;\r
+ Version = DEFAULT_VERSION;\r
GetFmpPayloadHeaderVersion (FmpHeader, FmpPayloadSize, &Version);\r
SetVersionInVariable (Version);\r
}\r
GetFmpPayloadHeaderVersion (FmpHeader, FmpPayloadSize, &Version);\r
SetVersionInVariable (Version);\r
}\r
// Update lowest supported variable\r
//\r
{\r
// Update lowest supported variable\r
//\r
{\r
- UINT32 Version = DEFAULT_LOWESTSUPPORTEDVERSION;\r
- GetFmpPayloadHeaderLowestSupportedVersion (FmpHeader, FmpPayloadSize, &Version);\r
- SetLowestSupportedVersionInVariable (Version);\r
+ LowestSupportedVersion = DEFAULT_LOWESTSUPPORTEDVERSION;\r
+ GetFmpPayloadHeaderLowestSupportedVersion (FmpHeader, FmpPayloadSize, &LowestSupportedVersion);\r
+ SetLowestSupportedVersionInVariable (LowestSupportedVersion);\r
}\r
\r
LastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;\r
}\r
\r
LastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;\r
UEFI variable support functions for Firmware Management Protocol based\r
firmware updates.\r
\r
UEFI variable support functions for Firmware Management Protocol based\r
firmware updates.\r
\r
\r
UEFI Variable accessed: GUID = gEfiCallerIdGuid, Name = L"FmpLsv"\r
\r
\r
UEFI Variable accessed: GUID = gEfiCallerIdGuid, Name = L"FmpLsv"\r
\r
- @param[in] LowestSupported The lowest supported version of the firmware image\r
- in the firmware device.\r
+ @param[in] LowestSupportedVersion The lowest supported version of the firmware image\r
+ in the firmware device.\r
UEFI variable support functions for Firmware Management Protocol based\r
firmware updates.\r
\r
UEFI variable support functions for Firmware Management Protocol based\r
firmware updates.\r
\r
\r
UEFI Variable accessed: GUID = gEfiCallerIdGuid, Name = L"FmpLsv"\r
\r
\r
UEFI Variable accessed: GUID = gEfiCallerIdGuid, Name = L"FmpLsv"\r
\r
- @param[in] LowestSupported The lowest supported version of the firmware image\r
- in the firmware device.\r
+ @param[in] LowestSupportedVersion The lowest supported version of the firmware image\r
+ in the firmware device.\r
Provides platform policy services used during a capsule update.\r
\r
Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>\r
Provides platform policy services used during a capsule update.\r
\r
Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>\r
EFI_STATUS\r
EFIAPI\r
CheckSystemThermal (\r
EFI_STATUS\r
EFIAPI\r
CheckSystemThermal (\r
EFI_STATUS\r
EFIAPI\r
CheckSystemEnvironment (\r
EFI_STATUS\r
EFIAPI\r
CheckSystemEnvironment (\r
Provides firmware device specific services to support updates of a firmware\r
image stored in a firmware device.\r
\r
Provides firmware device specific services to support updates of a firmware\r
image stored in a firmware device.\r
\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetAttributes (\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetAttributes (\r
- IN OUT UINT64 *Supported,\r
- IN OUT UINT64 *Setting\r
+ OUT UINT64 *Supported,\r
+ OUT UINT64 *Setting\r
a copy currently stored firmware image. This can be used to support\r
features such as recovery and rollback.\r
\r
a copy currently stored firmware image. This can be used to support\r
features such as recovery and rollback.\r
\r
- @param[out] Image Pointer to a caller allocated buffer where the\r
+ @param[out] Image Pointer to a caller allocated buffer where the\r
currently stored firmware image is copied to.\r
currently stored firmware image is copied to.\r
- @param[in out] ImageSize Pointer the size, in bytes, of the Image buffer.\r
+ @param[in, out] ImageSize Pointer the size, in bytes, of the Image buffer.\r
On return, points to the size, in bytes, of firmware\r
image currently stored in the firmware device.\r
\r
On return, points to the size, in bytes, of firmware\r
image currently stored in the firmware device.\r
\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetImage (\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetImage (\r
- IN OUT VOID *Image,\r
- IN IN OUT UINTN *ImageSize\r
+ OUT VOID *Image,\r
+ IN OUT UINTN *ImageSize\r
\r
@retval EFI_SUCCESS The image was successfully checked. Additional\r
status information is returned in\r
\r
@retval EFI_SUCCESS The image was successfully checked. Additional\r
status information is returned in\r
@retval EFI_INVALID_PARAMETER Image is NULL.\r
@retval EFI_INVALID_PARAMETER Image is NULL.\r
- @retval EFI_INVALID_PARAMETER ImageUpdateable is NULL.\r
+ @retval EFI_INVALID_PARAMETER ImageUpdatable is NULL.\r
FmpDeviceCheckImage (\r
IN CONST VOID *Image,\r
IN UINTN ImageSize,\r
FmpDeviceCheckImage (\r
IN CONST VOID *Image,\r
IN UINTN ImageSize,\r
- OUT UINT32 *ImageUpdateable\r
+ OUT UINT32 *ImageUpdatable\r
Provides services to retrieve values from a capsule's FMP Payload Header.\r
The structure is not included in the library class. Instead, services are\r
provided to retrieve information from the FMP Payload Header. If information\r
Provides services to retrieve values from a capsule's FMP Payload Header.\r
The structure is not included in the library class. Instead, services are\r
provided to retrieve information from the FMP Payload Header. If information\r
EFI_STATUS\r
EFIAPI\r
GetFmpPayloadHeaderLowestSupportedVersion (\r
EFI_STATUS\r
EFIAPI\r
GetFmpPayloadHeaderLowestSupportedVersion (\r
- IN CONST VOID *Header,\r
- IN CONST UINTN FmpPayloadSize,\r
- IN OUT UINT32 *LowestSupportedVersion\r
+ IN CONST VOID *Header,\r
+ IN CONST UINTN FmpPayloadSize,\r
+ OUT UINT32 *LowestSupportedVersion\r
Provides platform policy services used during a capsule update.\r
\r
Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>\r
Provides platform policy services used during a capsule update.\r
\r
Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>\r
EFI_STATUS\r
EFIAPI\r
CheckSystemThermal (\r
EFI_STATUS\r
EFIAPI\r
CheckSystemThermal (\r
EFI_STATUS\r
EFIAPI\r
CheckSystemEnvironment (\r
EFI_STATUS\r
EFIAPI\r
CheckSystemEnvironment (\r
Provides firmware device specific services to support updates of a firmware\r
image stored in a firmware device.\r
\r
Provides firmware device specific services to support updates of a firmware\r
image stored in a firmware device.\r
\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetSize (\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetSize (\r
)\r
{\r
if (Size == NULL) {\r
)\r
{\r
if (Size == NULL) {\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetAttributes (\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetAttributes (\r
- IN OUT UINT64 *Supported,\r
- IN OUT UINT64 *Setting\r
+ OUT UINT64 *Supported,\r
+ OUT UINT64 *Setting\r
)\r
{\r
if (Supported == NULL || Setting == NULL) {\r
)\r
{\r
if (Supported == NULL || Setting == NULL) {\r
a copy currently stored firmware image. This can be used to support\r
features such as recovery and rollback.\r
\r
a copy currently stored firmware image. This can be used to support\r
features such as recovery and rollback.\r
\r
- @param[out] Image Pointer to a caller allocated buffer where the\r
+ @param[out] Image Pointer to a caller allocated buffer where the\r
currently stored firmware image is copied to.\r
currently stored firmware image is copied to.\r
- @param[in out] ImageSize Pointer the size, in bytes, of the Image buffer.\r
+ @param[in, out] ImageSize Pointer the size, in bytes, of the Image buffer.\r
On return, points to the size, in bytes, of firmware\r
image currently stored in the firmware device.\r
\r
On return, points to the size, in bytes, of firmware\r
image currently stored in the firmware device.\r
\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetImage (\r
EFI_STATUS\r
EFIAPI\r
FmpDeviceGetImage (\r
- IN OUT VOID *Image,\r
- IN IN OUT UINTN *ImageSize\r
+ OUT VOID *Image,\r
+ IN OUT UINTN *ImageSize\r
)\r
{\r
return EFI_UNSUPPORTED;\r
)\r
{\r
return EFI_UNSUPPORTED;\r
\r
@retval EFI_SUCCESS The image was successfully checked. Additional\r
status information is returned in\r
\r
@retval EFI_SUCCESS The image was successfully checked. Additional\r
status information is returned in\r
@retval EFI_INVALID_PARAMETER Image is NULL.\r
@retval EFI_INVALID_PARAMETER Image is NULL.\r
- @retval EFI_INVALID_PARAMETER ImageUpdateable is NULL.\r
+ @retval EFI_INVALID_PARAMETER ImageUpdatable is NULL.\r
FmpDeviceCheckImage (\r
IN CONST VOID *Image,\r
IN UINTN ImageSize,\r
FmpDeviceCheckImage (\r
IN CONST VOID *Image,\r
IN UINTN ImageSize,\r
- OUT UINT32 *ImageUpdateable\r
+ OUT UINT32 *ImageUpdatable\r
)\r
{\r
return EFI_SUCCESS;\r
)\r
{\r
return EFI_SUCCESS;\r
Provides services to retrieve values from Version 1 of a capsule's FMP Payload\r
Header. The FMP Payload Header structure is not defined in the library class.\r
Instead, services are provided to retrieve information from the FMP Payload\r
Provides services to retrieve values from Version 1 of a capsule's FMP Payload\r
Header. The FMP Payload Header structure is not defined in the library class.\r
Instead, services are provided to retrieve information from the FMP Payload\r
EFI_STATUS\r
EFIAPI\r
GetFmpPayloadHeaderLowestSupportedVersion (\r
EFI_STATUS\r
EFIAPI\r
GetFmpPayloadHeaderLowestSupportedVersion (\r
- IN CONST VOID *Header,\r
- IN CONST UINTN FmpPayloadSize,\r
- IN OUT UINT32 *LowestSupportedVersion\r
+ IN CONST VOID *Header,\r
+ IN CONST UINTN FmpPayloadSize,\r
+ OUT UINT32 *LowestSupportedVersion\r
)\r
{\r
FMP_PAYLOAD_HEADER *FmpPayloadHeader;\r
)\r
{\r
FMP_PAYLOAD_HEADER *FmpPayloadHeader;\r