mirror of https://github.com/acidanthera/audk.git
FmpDevicePkg: Add library instances
https://bugzilla.tianocore.org/show_bug.cgi?id=922 Based on content from the following branch: https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsuleSupport/MsCapsuleUpdatePkg Add library instances for FmpDeviceLib, CapsuleUpdatePolicyLib, and FmpPayloadHeaderLib. Library Classes =============== * FmpDeviceLibNull - Non-functional template of the FmpDeviceLib that can be used as a starting point for an FmpDeviceLib for a specific firmware storage device. * CapsuleUpdatePolicyLibNull - Functional template of the CapsuleUpdatePolicyLib that can be used as a starting point of a platform specific implementation. * FmpPayloadHeaderLibV1 - Version 1 of the FmpPayloadHeaderLib. This library is indented to be used "as is" with no need for any device specific or platform specific changes. Cc: Sean Brogan <sean.brogan@microsoft.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
This commit is contained in:
parent
cec7b8fb86
commit
403d4bcdec
|
@ -0,0 +1,136 @@
|
|||
/** @file
|
||||
Provides platform policy services used during a capsule update.
|
||||
|
||||
Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**/
|
||||
|
||||
#include <PiDxe.h>
|
||||
#include <Library/CapsuleUpdatePolicyLib.h>
|
||||
|
||||
/**
|
||||
Determine if the system power state supports a capsule update.
|
||||
|
||||
@param[out] Good Returns TRUE if system power state supports a capsule
|
||||
update. Returns FALSE if system power state does not
|
||||
support a capsule update. Return value is only valid if
|
||||
return status is EFI_SUCCESS.
|
||||
|
||||
@retval EFI_SUCCESS Good parameter has been updated with result.
|
||||
@retval EFI_INVALID_PARAMETER Good is NULL.
|
||||
@retval EFI_DEVICE_ERROR System power state can not be determined.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
CheckSystemPower (
|
||||
OUT BOOLEAN *Good
|
||||
)
|
||||
{
|
||||
*Good = TRUE;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Determines if the system thermal state supports a capsule update.
|
||||
|
||||
@param[out] Good Returns TRUE if system thermal state supports a capsule
|
||||
update. Returns FALSE if system thermal state does not
|
||||
support a capsule update. Return value is only valid if
|
||||
return status is EFI_SUCCESS.
|
||||
|
||||
@retval EFI_SUCCESS Good parameter has been updated with result.
|
||||
@retval EFI_INVALID_PARAMETER Good is NULL.
|
||||
@retval EFI_DEVICE_ERROR System thermal state can not be determined.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
CheckSystemThermal (
|
||||
IN OUT BOOLEAN *Good
|
||||
)
|
||||
{
|
||||
*Good = TRUE;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Determines if the system environment state supports a capsule update.
|
||||
|
||||
@param[out] Good Returns TRUE if system environment state supports a capsule
|
||||
update. Returns FALSE if system environment state does not
|
||||
support a capsule update. Return value is only valid if
|
||||
return status is EFI_SUCCESS.
|
||||
|
||||
@retval EFI_SUCCESS Good parameter has been updated with result.
|
||||
@retval EFI_INVALID_PARAMETER Good is NULL.
|
||||
@retval EFI_DEVICE_ERROR System environment state can not be determined.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
CheckSystemEnvironment (
|
||||
IN OUT BOOLEAN *Good
|
||||
)
|
||||
{
|
||||
*Good = TRUE;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Determines if the Lowest Supported Version checks should be performed. The
|
||||
expected result from this function is TRUE. A platform can choose to return
|
||||
FALSE (e.g. during manufacturing or servicing) to allow a capsule update to a
|
||||
version below the current Lowest Supported Version.
|
||||
|
||||
@retval TRUE The lowest supported version check is required.
|
||||
@retval FALSE Do not perform lowest support version check.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
IsLowestSupportedVersionCheckRequired (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
Determines if the FMP device should be locked when the event specified by
|
||||
PcdFmpDeviceLockEventGuid is signaled. The expected result from this function
|
||||
is TRUE so the FMP device is always locked. A platform can choose to return
|
||||
FALSE (e.g. during manufacturing) to allow FMP devices to remain unlocked.
|
||||
|
||||
@retval TRUE The FMP device lock action is required at lock event guid.
|
||||
@retval FALSE Do not perform FMP device lock at lock event guid.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
IsLockFmpDeviceAtLockEventGuidRequired (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
## @file
|
||||
# Provides platform policy services used during a capsule update.
|
||||
#
|
||||
# Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = CapsuleUpdatePolicyLibNull
|
||||
MODULE_UNI_FILE = CapsuleUpdatePolicyLibNull.uni
|
||||
FILE_GUID = 8E36EC87-440D-44F9-AB2F-AA806C61A1A6
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = CapsuleUpdatePolicyLib
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF ARM AARCH64
|
||||
#
|
||||
|
||||
[Sources]
|
||||
CapsuleUpdatePolicyLibNull.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
FmpDevicePkg/FmpDevicePkg.dec
|
|
@ -0,0 +1,17 @@
|
|||
// /** @file
|
||||
// Provides platform policy services used during a capsule update.
|
||||
//
|
||||
// Copyright (c) 2018, 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.
|
||||
//
|
||||
// **/
|
||||
|
||||
#string STR_MODULE_ABSTRACT #language en-US "Provides platform policy services used during a capsule update."
|
||||
|
||||
#string STR_MODULE_DESCRIPTION #language en-US "Provides platform policy services used during a capsule update."
|
|
@ -0,0 +1,427 @@
|
|||
/** @file
|
||||
Provides firmware device specific services to support updates of a firmware
|
||||
image stored in a firmware device.
|
||||
|
||||
Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**/
|
||||
|
||||
#include <PiDxe.h>
|
||||
#include <Library/FmpDeviceLib.h>
|
||||
|
||||
/**
|
||||
Provide a function to install the Firmware Management Protocol instance onto a
|
||||
device handle when the device is managed by a driver that follows the UEFI
|
||||
Driver Model. If the device is not managed by a driver that follows the UEFI
|
||||
Driver Model, then EFI_UNSUPPORTED is returned.
|
||||
|
||||
@param[in] FmpInstaller Function that installs the Firmware Management
|
||||
Protocol.
|
||||
|
||||
@retval EFI_SUCCESS The device is managed by a driver that follows the
|
||||
UEFI Driver Model. FmpInstaller must be called on
|
||||
each Driver Binding Start().
|
||||
@retval EFI_UNSUPPORTED The device is not managed by a driver that follows
|
||||
the UEFI Driver Model.
|
||||
@retval other The Firmware Management Protocol for this firmware
|
||||
device is not installed. The firmware device is
|
||||
still locked using FmpDeviceLock().
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RegisterFmpInstaller (
|
||||
IN FMP_DEVICE_LIB_REGISTER_FMP_INSTALLER Function
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns the size, in bytes, of the firmware image currently stored in the
|
||||
firmware device. This function is used to by the GetImage() and
|
||||
GetImageInfo() services of the Firmware Management Protocol. If the image
|
||||
size can not be determined from the firmware device, then 0 must be returned.
|
||||
|
||||
@param[out] Size Pointer to the size, in bytes, of the firmware image
|
||||
currently stored in the firmware device.
|
||||
|
||||
@retval EFI_SUCCESS The size of the firmware image currently
|
||||
stored in the firmware device was returned.
|
||||
@retval EFI_INVALID_PARAMETER Size is NULL.
|
||||
@retval EFI_UNSUPPORTED The firmware device does not support reporting
|
||||
the size of the currently stored firmware image.
|
||||
@retval EFI_DEVICE_ERROR An error occurred attempting to determine the
|
||||
size of the firmware image currently stored in
|
||||
in the firmware device.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceGetSize (
|
||||
IN UINTN *Size
|
||||
)
|
||||
{
|
||||
if (Size == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
*Size = 0;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns the GUID value used to fill in the ImageTypeId field of the
|
||||
EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the GetImageInfo()
|
||||
service of the Firmware Management Protocol. If EFI_UNSUPPORTED is returned,
|
||||
then the ImageTypeId field is set to gEfiCallerIdGuid. If EFI_SUCCESS is
|
||||
returned, then ImageTypeId is set to the Guid returned from this function.
|
||||
|
||||
@param[out] Guid Double pointer to a GUID value that is updated to point to
|
||||
to a GUID value. The GUID value is not allocated and must
|
||||
not be modified or freed by the caller.
|
||||
|
||||
@retval EFI_SUCCESS EFI_FIRMWARE_IMAGE_DESCRIPTOR ImageTypeId GUID is set
|
||||
to the returned Guid value.
|
||||
@retval EFI_UNSUPPORTED EFI_FIRMWARE_IMAGE_DESCRIPTOR ImageTypeId GUID is set
|
||||
to gEfiCallerIdGuid.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceGetImageTypeIdGuidPtr (
|
||||
OUT EFI_GUID **Guid
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns values used to fill in the AttributesSupported and AttributesSettings
|
||||
fields of the EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the
|
||||
GetImageInfo() service of the Firmware Management Protocol. The following
|
||||
bit values from the Firmware Management Protocol may be combined:
|
||||
IMAGE_ATTRIBUTE_IMAGE_UPDATABLE
|
||||
IMAGE_ATTRIBUTE_RESET_REQUIRED
|
||||
IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED
|
||||
IMAGE_ATTRIBUTE_IN_USE
|
||||
IMAGE_ATTRIBUTE_UEFI_IMAGE
|
||||
|
||||
@param[out] Supported Attributes supported by this firmware device.
|
||||
@param[out] Setting Attributes settings for this firmware device.
|
||||
|
||||
@retval EFI_SUCCESS The attributes supported by the firmware
|
||||
device were returned.
|
||||
@retval EFI_INVALID_PARAMETER Supported is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Setting is NULL.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceGetAttributes (
|
||||
IN OUT UINT64 *Supported,
|
||||
IN OUT UINT64 *Setting
|
||||
)
|
||||
{
|
||||
if (Supported == NULL || Setting == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
*Supported = 0;
|
||||
*Setting = 0;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns the value used to fill in the LowestSupportedVersion field of the
|
||||
EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the GetImageInfo()
|
||||
service of the Firmware Management Protocol. If EFI_SUCCESS is returned, then
|
||||
the firmware device supports a method to report the LowestSupportedVersion
|
||||
value from the currently stored firmware image. If the value can not be
|
||||
reported for the firmware image currently stored in the firmware device, then
|
||||
EFI_UNSUPPORTED must be returned. EFI_DEVICE_ERROR is returned if an error
|
||||
occurs attempting to retrieve the LowestSupportedVersion value for the
|
||||
currently stored firmware image.
|
||||
|
||||
@note It is recommended that all firmware devices support a method to report
|
||||
the LowestSupportedVersion value from the currently stored firmware
|
||||
image.
|
||||
|
||||
@param[out] LowestSupportedVersion LowestSupportedVersion value retrieved
|
||||
from the currently stored firmware image.
|
||||
|
||||
@retval EFI_SUCCESS The lowest supported version of currently stored
|
||||
firmware image was returned in LowestSupportedVersion.
|
||||
@retval EFI_UNSUPPORTED The firmware device does not support a method to
|
||||
report the lowest supported version of the currently
|
||||
stored firmware image.
|
||||
@retval EFI_DEVICE_ERROR An error occurred attempting to retrieve the lowest
|
||||
supported version of the currently stored firmware
|
||||
image.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceGetLowestSupportedVersion (
|
||||
OUT UINT32 *LowestSupportedVersion
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns the Null-terminated Unicode string that is used to fill in the
|
||||
VersionName field of the EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is
|
||||
returned by the GetImageInfo() service of the Firmware Management Protocol.
|
||||
The returned string must be allocated using EFI_BOOT_SERVICES.AllocatePool().
|
||||
|
||||
@note It is recommended that all firmware devices support a method to report
|
||||
the VersionName string from the currently stored firmware image.
|
||||
|
||||
@param[out] VersionString The version string retrieved from the currently
|
||||
stored firmware image.
|
||||
|
||||
@retval EFI_SUCCESS The version string of currently stored
|
||||
firmware image was returned in Version.
|
||||
@retval EFI_INVALID_PARAMETER VersionString is NULL.
|
||||
@retval EFI_UNSUPPORTED The firmware device does not support a method
|
||||
to report the version string of the currently
|
||||
stored firmware image.
|
||||
@retval EFI_DEVICE_ERROR An error occurred attempting to retrieve the
|
||||
version string of the currently stored
|
||||
firmware image.
|
||||
@retval EFI_OUT_OF_RESOURCES There are not enough resources to allocate the
|
||||
buffer for the version string of the currently
|
||||
stored firmware image.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceGetVersionString (
|
||||
OUT CHAR16 **VersionString
|
||||
)
|
||||
{
|
||||
if (VersionString == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
*VersionString = NULL;
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns the value used to fill in the Version field of the
|
||||
EFI_FIRMWARE_IMAGE_DESCRIPTOR structure that is returned by the GetImageInfo()
|
||||
service of the Firmware Management Protocol. If EFI_SUCCESS is returned, then
|
||||
the firmware device supports a method to report the Version value from the
|
||||
currently stored firmware image. If the value can not be reported for the
|
||||
firmware image currently stored in the firmware device, then EFI_UNSUPPORTED
|
||||
must be returned. EFI_DEVICE_ERROR is returned if an error occurs attempting
|
||||
to retrieve the LowestSupportedVersion value for the currently stored firmware
|
||||
image.
|
||||
|
||||
@note It is recommended that all firmware devices support a method to report
|
||||
the Version value from the currently stored firmware image.
|
||||
|
||||
@param[out] Version The version value retrieved from the currently stored
|
||||
firmware image.
|
||||
|
||||
@retval EFI_SUCCESS The version of currently stored firmware image was
|
||||
returned in Version.
|
||||
@retval EFI_UNSUPPORTED The firmware device does not support a method to
|
||||
report the version of the currently stored firmware
|
||||
image.
|
||||
@retval EFI_DEVICE_ERROR An error occurred attempting to retrieve the version
|
||||
of the currently stored firmware image.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceGetVersion (
|
||||
OUT UINT32 *Version
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns a copy of the firmware image currently stored in the firmware device.
|
||||
|
||||
@note It is recommended that all firmware devices support a method to retrieve
|
||||
a copy currently stored firmware image. This can be used to support
|
||||
features such as recovery and rollback.
|
||||
|
||||
@param[out] Image Pointer to a caller allocated buffer where the
|
||||
currently stored firmware image is copied to.
|
||||
@param[in out] ImageSize Pointer the size, in bytes, of the Image buffer.
|
||||
On return, points to the size, in bytes, of firmware
|
||||
image currently stored in the firmware device.
|
||||
|
||||
@retval EFI_SUCCESS Image contains a copy of the firmware image
|
||||
currently stored in the firmware device, and
|
||||
ImageSize contains the size, in bytes, of the
|
||||
firmware image currently stored in the
|
||||
firmware device.
|
||||
@retval EFI_BUFFER_TOO_SMALL The buffer specified by ImageSize is too small
|
||||
to hold the firmware image currently stored in
|
||||
the firmware device. The buffer size required
|
||||
is returned in ImageSize.
|
||||
@retval EFI_INVALID_PARAMETER The Image is NULL.
|
||||
@retval EFI_INVALID_PARAMETER The ImageSize is NULL.
|
||||
@retval EFI_UNSUPPORTED The operation is not supported.
|
||||
@retval EFI_DEVICE_ERROR An error occurred attempting to retrieve the
|
||||
firmware image currently stored in the firmware
|
||||
device.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceGetImage (
|
||||
IN OUT VOID *Image,
|
||||
IN IN OUT UINTN *ImageSize
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Checks if a new firmware image is valid for the firmware device. This
|
||||
function allows firmware update operation to validate the firmware image
|
||||
before FmpDeviceSetImage() is called.
|
||||
|
||||
@param[in] Image Points to a new firmware image.
|
||||
@param[in] ImageSize Size, in bytes, of a new firmware image.
|
||||
@param[out] ImageUpdatable Indicates if a new firmware image is valid for
|
||||
a firmware update to the firmware device. The
|
||||
following values from the Firmware Management
|
||||
Protocol are supported:
|
||||
IMAGE_UPDATABLE_VALID
|
||||
IMAGE_UPDATABLE_INVALID
|
||||
IMAGE_UPDATABLE_INVALID_TYPE
|
||||
IMAGE_UPDATABLE_INVALID_OLD
|
||||
IMAGE_UPDATABLE_VALID_WITH_VENDOR_CODE
|
||||
|
||||
@retval EFI_SUCCESS The image was successfully checked. Additional
|
||||
status information is returned in
|
||||
ImageUpdateable.
|
||||
@retval EFI_INVALID_PARAMETER Image is NULL.
|
||||
@retval EFI_INVALID_PARAMETER ImageUpdateable is NULL.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceCheckImage (
|
||||
IN CONST VOID *Image,
|
||||
IN UINTN ImageSize,
|
||||
OUT UINT32 *ImageUpdateable
|
||||
)
|
||||
{
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Updates a firmware device with a new firmware image. This function returns
|
||||
EFI_UNSUPPORTED if the firmware image is not updatable. If the firmware image
|
||||
is updatable, the function should perform the following minimal validations
|
||||
before proceeding to do the firmware image update.
|
||||
- Validate that the image is a supported image for this firmware device.
|
||||
Return EFI_ABORTED if the image is not supported. Additional details
|
||||
on why the image is not a supported image may be returned in AbortReason.
|
||||
- Validate the data from VendorCode if is not NULL. Firmware image
|
||||
validation must be performed before VendorCode data validation.
|
||||
VendorCode data is ignored or considered invalid if image validation
|
||||
fails. Return EFI_ABORTED if the VendorCode data is invalid.
|
||||
|
||||
VendorCode enables vendor to implement vendor-specific firmware image update
|
||||
policy. Null if the caller did not specify the policy or use the default
|
||||
policy. As an example, vendor can implement a policy to allow an option to
|
||||
force a firmware image update when the abort reason is due to the new firmware
|
||||
image version is older than the current firmware image version or bad image
|
||||
checksum. Sensitive operations such as those wiping the entire firmware image
|
||||
and render the device to be non-functional should be encoded in the image
|
||||
itself rather than passed with the VendorCode. AbortReason enables vendor to
|
||||
have the option to provide a more detailed description of the abort reason to
|
||||
the caller.
|
||||
|
||||
@param[in] Image Points to the new firmware image.
|
||||
@param[in] ImageSize Size, in bytes, of the new firmware image.
|
||||
@param[in] VendorCode This enables vendor to implement vendor-specific
|
||||
firmware image update policy. NULL indicates
|
||||
the caller did not specify the policy or use the
|
||||
default policy.
|
||||
@param[in] Progress A function used to report the progress of
|
||||
updating the firmware device with the new
|
||||
firmware image.
|
||||
@param[in] CapsuleFwVersion The version of the new firmware image from the
|
||||
update capsule that provided the new firmware
|
||||
image.
|
||||
@param[out] AbortReason A pointer to a pointer to a Null-terminated
|
||||
Unicode string providing more details on an
|
||||
aborted operation. The buffer is allocated by
|
||||
this function with
|
||||
EFI_BOOT_SERVICES.AllocatePool(). It is the
|
||||
caller's responsibility to free this buffer with
|
||||
EFI_BOOT_SERVICES.FreePool().
|
||||
|
||||
@retval EFI_SUCCESS The firmware device was successfully updated
|
||||
with the new firmware image.
|
||||
@retval EFI_ABORTED The operation is aborted. Additional details
|
||||
are provided in AbortReason.
|
||||
@retval EFI_INVALID_PARAMETER The Image was NULL.
|
||||
@retval EFI_UNSUPPORTED The operation is not supported.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceSetImage (
|
||||
IN CONST VOID *Image,
|
||||
IN UINTN ImageSize,
|
||||
IN CONST VOID *VendorCode, OPTIONAL
|
||||
IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress, OPTIONAL
|
||||
IN UINT32 CapsuleFwVersion,
|
||||
OUT CHAR16 **AbortReason
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Lock the firmware device that contains a firmware image. Once a firmware
|
||||
device is locked, any attempts to modify the firmware image contents in the
|
||||
firmware device must fail.
|
||||
|
||||
@note It is recommended that all firmware devices support a lock method to
|
||||
prevent modifications to a stored firmware image.
|
||||
|
||||
@note A firmware device lock mechanism is typically only cleared by a full
|
||||
system reset (not just sleep state/low power mode).
|
||||
|
||||
@retval EFI_SUCCESS The firmware device was locked.
|
||||
@retval EFI_UNSUPPORTED The firmware device does not support locking
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FmpDeviceLock (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
## @file
|
||||
# Provides firmware device specific services to support updates of a firmware
|
||||
# image stored in a firmware device.
|
||||
#
|
||||
# Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = FmpDeviceLibNull
|
||||
MODULE_UNI_FILE = FmpDeviceLibNull.uni
|
||||
FILE_GUID = 8507642B-AE92-4664-B713-807F7774A96D
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = FmpDeviceLib|DXE_DRIVER
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF ARM AARCH64
|
||||
#
|
||||
|
||||
[Sources]
|
||||
FmpDeviceLib.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
FmpDevicePkg/FmpDevicePkg.dec
|
|
@ -0,0 +1,18 @@
|
|||
// /** @file
|
||||
// Provides firmware device specific services to support updates of a firmware
|
||||
// image stored in a firmware device.
|
||||
//
|
||||
// Copyright (c) 2018, 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.
|
||||
//
|
||||
// **/
|
||||
|
||||
#string STR_MODULE_ABSTRACT #language en-US "Provides firmware device specific services to support updates of a firmware image stored in a firmware device."
|
||||
|
||||
#string STR_MODULE_DESCRIPTION #language en-US "Provides firmware device specific services to support updates of a firmware image stored in a firmware device."
|
|
@ -0,0 +1,188 @@
|
|||
/** @file
|
||||
Provides services to retrieve values from Version 1 of a capsule's FMP Payload
|
||||
Header. The FMP Payload Header structure is not defined in the library class.
|
||||
Instead, services are provided to retrieve information from the FMP Payload
|
||||
Header. If information is added to the FMP Payload Header, then new services
|
||||
may be added to this library class to retrieve the new information.
|
||||
|
||||
Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**/
|
||||
|
||||
#include <PiDxe.h>
|
||||
#include <Library/FmpPayloadHeaderLib.h>
|
||||
|
||||
///
|
||||
/// Define FMP Payload Header structure here so it is not public
|
||||
///
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UINT32 HeaderSize;
|
||||
UINT32 FwVersion;
|
||||
UINT32 LowestSupportedVersion;
|
||||
} FMP_PAYLOAD_HEADER;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
///
|
||||
/// Identifier is used to make sure the data in the header is for this structure
|
||||
/// and version. If the structure changes update the last digit.
|
||||
///
|
||||
#define FMP_PAYLOAD_HEADER_SIGNATURE SIGNATURE_32 ('M', 'S', 'S', '1')
|
||||
|
||||
/**
|
||||
Returns the FMP Payload Header size in bytes.
|
||||
|
||||
@param[in] Header FMP Payload Header to evaluate
|
||||
@param[in] FmpPayloadSize Size of FMP payload
|
||||
@param[out] Size The size, in bytes, of the FMP Payload Header.
|
||||
|
||||
@retval EFI_SUCCESS The firmware version was returned.
|
||||
@retval EFI_INVALID_PARAMETER Header is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Size is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Header is not a valid FMP Payload Header.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GetFmpPayloadHeaderSize (
|
||||
IN CONST VOID *Header,
|
||||
IN CONST UINTN FmpPayloadSize,
|
||||
OUT UINT32 *Size
|
||||
)
|
||||
{
|
||||
FMP_PAYLOAD_HEADER *FmpPayloadHeader;
|
||||
|
||||
FmpPayloadHeader = NULL;
|
||||
|
||||
if (Header == NULL || Size == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
FmpPayloadHeader = (FMP_PAYLOAD_HEADER *)Header;
|
||||
if ((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader ||
|
||||
(UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize ||
|
||||
FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (FmpPayloadHeader->Signature != FMP_PAYLOAD_HEADER_SIGNATURE) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
*Size = FmpPayloadHeader->HeaderSize;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns the version described in the FMP Payload Header.
|
||||
|
||||
@param[in] Header FMP Payload Header to evaluate
|
||||
@param[in] FmpPayloadSize Size of FMP payload
|
||||
@param[out] Version The firmware version described in the FMP Payload
|
||||
Header.
|
||||
|
||||
@retval EFI_SUCCESS The firmware version was returned.
|
||||
@retval EFI_INVALID_PARAMETER Header is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Version is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Header is not a valid FMP Payload Header.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GetFmpPayloadHeaderVersion (
|
||||
IN CONST VOID *Header,
|
||||
IN CONST UINTN FmpPayloadSize,
|
||||
OUT UINT32 *Version
|
||||
)
|
||||
{
|
||||
FMP_PAYLOAD_HEADER *FmpPayloadHeader;
|
||||
|
||||
FmpPayloadHeader = NULL;
|
||||
|
||||
if (Header == NULL || Version == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
FmpPayloadHeader = (FMP_PAYLOAD_HEADER *)Header;
|
||||
if ((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader ||
|
||||
(UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize ||
|
||||
FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (FmpPayloadHeader->Signature != FMP_PAYLOAD_HEADER_SIGNATURE) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
*Version = FmpPayloadHeader->FwVersion;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Returns the lowest supported version described in the FMP Payload Header.
|
||||
|
||||
@param[in] Header FMP Payload Header to evaluate
|
||||
@param[in] FmpPayloadSize Size of FMP payload
|
||||
@param[out] LowestSupportedVersion The lowest supported version described in
|
||||
the FMP Payload Header.
|
||||
|
||||
@retval EFI_SUCCESS The lowest support version was returned.
|
||||
@retval EFI_INVALID_PARAMETER Header is NULL.
|
||||
@retval EFI_INVALID_PARAMETER LowestSupportedVersion is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Header is not a valid FMP Payload Header.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GetFmpPayloadHeaderLowestSupportedVersion (
|
||||
IN CONST VOID *Header,
|
||||
IN CONST UINTN FmpPayloadSize,
|
||||
IN OUT UINT32 *LowestSupportedVersion
|
||||
)
|
||||
{
|
||||
FMP_PAYLOAD_HEADER *FmpPayloadHeader;
|
||||
|
||||
FmpPayloadHeader = NULL;
|
||||
|
||||
if (Header == NULL || LowestSupportedVersion == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
FmpPayloadHeader = (FMP_PAYLOAD_HEADER *)Header;
|
||||
if ((UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) < (UINTN)FmpPayloadHeader ||
|
||||
(UINTN)FmpPayloadHeader + sizeof (FMP_PAYLOAD_HEADER) >= (UINTN)FmpPayloadHeader + FmpPayloadSize ||
|
||||
FmpPayloadHeader->HeaderSize < sizeof (FMP_PAYLOAD_HEADER)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (FmpPayloadHeader->Signature != FMP_PAYLOAD_HEADER_SIGNATURE) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
*LowestSupportedVersion = FmpPayloadHeader->LowestSupportedVersion;
|
||||
return EFI_SUCCESS;
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
## @file
|
||||
# Provides services to retrieve values from Version 1 of a capsule's FMP Payload
|
||||
# Header. The FMP Payload Header structure is not defined in the library class.
|
||||
# Instead, services are provided to retrieve information from the FMP Payload
|
||||
# Header. If information is added to the FMP Payload Header, then new services
|
||||
# may be added to this library class to retrieve the new information.
|
||||
#
|
||||
# Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = FmpPayloadHeaderLibV1
|
||||
FILE_GUID = 98A79A6C-513C-4E72-8375-39C0A7244C4B
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = FmpPayloadHeaderLib|DXE_DRIVER UEFI_APPLICATION
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF ARM AARCH64
|
||||
#
|
||||
|
||||
[Sources]
|
||||
FmpPayloadHeaderLib.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
FmpDevicePkg/FmpDevicePkg.dec
|
|
@ -0,0 +1,21 @@
|
|||
// /** @file
|
||||
// Provides services to retrieve values from Version 1 of a capsule's FMP Payload
|
||||
// Header. The FMP Payload Header structure is not defined in the library class.
|
||||
// Instead, services are provided to retrieve information from the FMP Payload
|
||||
// Header. If information is added to the FMP Payload Header, then new services
|
||||
// may be added to this library class to retrieve the new information.
|
||||
//
|
||||
// Copyright (c) 2018, 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.
|
||||
//
|
||||
// **/
|
||||
|
||||
#string STR_MODULE_ABSTRACT #language en-US "Provides services to retrieve values from Version 1 of a capsule's FMP Payload Header."
|
||||
|
||||
#string STR_MODULE_DESCRIPTION #language en-US "Provides services to retrieve values from Version 1 of a capsule's FMP Payload Header."
|
Loading…
Reference in New Issue