]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Feature/Capsule/MicrocodeUpdateDxe/MicrocodeUpdate.h
IntelSiliconPkg: Move MicrocodeUpdate from UefiCpuPkg
[mirror_edk2.git] / UefiCpuPkg / Feature / Capsule / MicrocodeUpdateDxe / MicrocodeUpdate.h
diff --git a/UefiCpuPkg/Feature/Capsule/MicrocodeUpdateDxe/MicrocodeUpdate.h b/UefiCpuPkg/Feature/Capsule/MicrocodeUpdateDxe/MicrocodeUpdate.h
deleted file mode 100644 (file)
index 9dc3063..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-/** @file\r
-  Microcode update header file.\r
-\r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef _MICROCODE_FMP_H_\r
-#define _MICROCODE_FMP_H_\r
-\r
-#include <PiDxe.h>\r
-\r
-#include <Guid/SystemResourceTable.h>\r
-#include <Guid/MicrocodeFmp.h>\r
-\r
-#include <Protocol/FirmwareManagement.h>\r
-#include <Protocol/MpService.h>\r
-\r
-#include <Library/BaseLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/UefiRuntimeServicesTableLib.h>\r
-#include <Library/UefiDriverEntryPoint.h>\r
-#include <Library/DevicePathLib.h>\r
-#include <Library/HobLib.h>\r
-#include <Library/MicrocodeFlashAccessLib.h>\r
-\r
-#include <Register/Cpuid.h>\r
-#include <Register/Msr.h>\r
-#include <Register/Microcode.h>\r
-\r
-#define MICROCODE_FMP_PRIVATE_DATA_SIGNATURE  SIGNATURE_32('M', 'C', 'U', 'F')\r
-\r
-//\r
-// Microcode FMP private data structure.\r
-//\r
-\r
-typedef struct {\r
-  UINT32 LastAttemptVersion;\r
-  UINT32 LastAttemptStatus;\r
-} MICROCODE_FMP_LAST_ATTEMPT_VARIABLE;\r
-\r
-typedef struct {\r
-  CPU_MICROCODE_HEADER   *MicrocodeEntryPoint;\r
-  UINTN                  TotalSize;\r
-  BOOLEAN                InUse;\r
-} MICROCODE_INFO;\r
-\r
-typedef struct {\r
-  UINTN                  CpuIndex;\r
-  UINT32                 ProcessorSignature;\r
-  UINT8                  PlatformId;\r
-  UINT32                 MicrocodeRevision;\r
-  UINTN                  MicrocodeIndex;\r
-} PROCESSOR_INFO;\r
-\r
-typedef struct {\r
-  UINT64                 Address;\r
-  UINT32                 Revision;\r
-} MICROCODE_LOAD_BUFFER;\r
-\r
-struct _MICROCODE_FMP_PRIVATE_DATA {\r
-  UINT32                               Signature;\r
-  EFI_FIRMWARE_MANAGEMENT_PROTOCOL     Fmp;\r
-  EFI_HANDLE                           Handle;\r
-  VOID                                 *MicrocodePatchAddress;\r
-  UINTN                                MicrocodePatchRegionSize;\r
-  UINT8                                DescriptorCount;\r
-  EFI_FIRMWARE_IMAGE_DESCRIPTOR        *ImageDescriptor;\r
-  MICROCODE_INFO                       *MicrocodeInfo;\r
-  UINT32                               PackageVersion;\r
-  CHAR16                               *PackageVersionName;\r
-  MICROCODE_FMP_LAST_ATTEMPT_VARIABLE  LastAttempt;\r
-  EFI_MP_SERVICES_PROTOCOL             *MpService;\r
-  UINTN                                BspIndex;\r
-  UINTN                                ProcessorCount;\r
-  PROCESSOR_INFO                       *ProcessorInfo;\r
-};\r
-\r
-typedef struct _MICROCODE_FMP_PRIVATE_DATA  MICROCODE_FMP_PRIVATE_DATA;\r
-\r
-#define MICROCODE_FMP_LAST_ATTEMPT_VARIABLE_NAME  L"MicrocodeLastAttempVar"\r
-\r
-/**\r
-  Returns a pointer to the MICROCODE_FMP_PRIVATE_DATA structure from the input a as Fmp.\r
-\r
-  If the signatures matches, then a pointer to the data structure that contains\r
-  a specified field of that data structure is returned.\r
-\r
-  @param  a              Pointer to the field specified by ServiceBinding within\r
-                         a data structure of type MICROCODE_FMP_PRIVATE_DATA.\r
-\r
-**/\r
-#define MICROCODE_FMP_PRIVATE_DATA_FROM_FMP(a) \\r
-  CR ( \\r
-  (a), \\r
-  MICROCODE_FMP_PRIVATE_DATA, \\r
-  Fmp, \\r
-  MICROCODE_FMP_PRIVATE_DATA_SIGNATURE \\r
-  )\r
-\r
-/**\r
-  Get Microcode Region.\r
-\r
-  @param[out] MicrocodePatchAddress      The address of Microcode\r
-  @param[out] MicrocodePatchRegionSize   The region size of Microcode\r
-\r
-  @retval TRUE   The Microcode region is returned.\r
-  @retval FALSE  No Microcode region.\r
-**/\r
-BOOLEAN\r
-GetMicrocodeRegion (\r
-  OUT VOID     **MicrocodePatchAddress,\r
-  OUT UINTN    *MicrocodePatchRegionSize\r
-  );\r
-\r
-/**\r
-  Collect processor information.\r
-  The function prototype for invoking a function on an Application Processor.\r
-\r
-  @param[in,out] Buffer  The pointer to private data buffer.\r
-**/\r
-VOID\r
-EFIAPI\r
-CollectProcessorInfo (\r
-  IN OUT VOID  *Buffer\r
-  );\r
-\r
-/**\r
-  Get current Microcode information.\r
-\r
-  The ProcessorInformation (BspIndex/ProcessorCount/ProcessorInfo)\r
-  in MicrocodeFmpPrivate must be initialized.\r
-\r
-  The MicrocodeInformation (DescriptorCount/ImageDescriptor/MicrocodeInfo)\r
-  in MicrocodeFmpPrivate may not be avaiable in this function.\r
-\r
-  @param[in]   MicrocodeFmpPrivate        The Microcode driver private data\r
-  @param[in]   DescriptorCount            The count of Microcode ImageDescriptor allocated.\r
-  @param[out]  ImageDescriptor            Microcode ImageDescriptor\r
-  @param[out]  MicrocodeInfo              Microcode information\r
-\r
-  @return Microcode count\r
-**/\r
-UINTN\r
-GetMicrocodeInfo (\r
-  IN  MICROCODE_FMP_PRIVATE_DATA     *MicrocodeFmpPrivate,\r
-  IN  UINTN                          DescriptorCount,  OPTIONAL\r
-  OUT EFI_FIRMWARE_IMAGE_DESCRIPTOR  *ImageDescriptor, OPTIONAL\r
-  OUT MICROCODE_INFO                 *MicrocodeInfo    OPTIONAL\r
-  );\r
-\r
-/**\r
-  Verify Microcode.\r
-\r
-  Caution: This function may receive untrusted input.\r
-\r
-  @param[in]  MicrocodeFmpPrivate        The Microcode driver private data\r
-  @param[in]  Image                      The Microcode image buffer.\r
-  @param[in]  ImageSize                  The size of Microcode image buffer in bytes.\r
-  @param[in]  TryLoad                    Try to load Microcode or not.\r
-  @param[out] LastAttemptStatus          The last attempt status, which will be recorded in ESRT and FMP EFI_FIRMWARE_IMAGE_DESCRIPTOR.\r
-  @param[out] AbortReason                A pointer to a pointer to a null-terminated string providing more\r
-                                         details for the aborted operation. The buffer is allocated by this function\r
-                                         with AllocatePool(), and it is the caller's responsibility to free it with a\r
-                                         call to FreePool().\r
-  @param[in, out] TargetCpuIndex         On input, the index of target CPU which tries to match the Microcode. (UINTN)-1 means to try all.\r
-                                         On output, the index of target CPU which matches the Microcode.\r
-\r
-  @retval EFI_SUCCESS               The Microcode image passes verification.\r
-  @retval EFI_VOLUME_CORRUPTED      The Microcode image is corrupt.\r
-  @retval EFI_INCOMPATIBLE_VERSION  The Microcode image version is incorrect.\r
-  @retval EFI_UNSUPPORTED           The Microcode ProcessorSignature or ProcessorFlags is incorrect.\r
-  @retval EFI_SECURITY_VIOLATION    The Microcode image fails to load.\r
-**/\r
-EFI_STATUS\r
-VerifyMicrocode (\r
-  IN  MICROCODE_FMP_PRIVATE_DATA  *MicrocodeFmpPrivate,\r
-  IN  VOID                        *Image,\r
-  IN  UINTN                       ImageSize,\r
-  IN  BOOLEAN                     TryLoad,\r
-  OUT UINT32                      *LastAttemptStatus,\r
-  OUT CHAR16                      **AbortReason,   OPTIONAL\r
-  IN OUT UINTN                    *TargetCpuIndex  OPTIONAL\r
-  );\r
-\r
-/**\r
-  Write Microcode.\r
-\r
-  @param[in]   MicrocodeFmpPrivate The Microcode driver private data\r
-  @param[in]   Image               The Microcode image buffer.\r
-  @param[in]   ImageSize           The size of Microcode image buffer in bytes.\r
-  @param[out]  LastAttemptVersion  The last attempt version, which will be recorded in ESRT and FMP EFI_FIRMWARE_IMAGE_DESCRIPTOR.\r
-  @param[out]  LastAttemptStatus   The last attempt status, which will be recorded in ESRT and FMP EFI_FIRMWARE_IMAGE_DESCRIPTOR.\r
-  @param[out]  AbortReason         A pointer to a pointer to a null-terminated string providing more\r
-                                   details for the aborted operation. The buffer is allocated by this function\r
-                                   with AllocatePool(), and it is the caller's responsibility to free it with a\r
-                                   call to FreePool().\r
-\r
-  @retval EFI_SUCCESS               The Microcode image is written.\r
-  @retval EFI_VOLUME_CORRUPTED      The Microcode image is corrupt.\r
-  @retval EFI_INCOMPATIBLE_VERSION  The Microcode image version is incorrect.\r
-  @retval EFI_SECURITY_VIOLATION    The Microcode image fails to load.\r
-  @retval EFI_WRITE_PROTECTED       The flash device is read only.\r
-**/\r
-EFI_STATUS\r
-MicrocodeWrite (\r
-  IN MICROCODE_FMP_PRIVATE_DATA    *MicrocodeFmpPrivate,\r
-  IN VOID                          *Image,\r
-  IN UINTN                         ImageSize,\r
-  OUT UINT32                       *LastAttemptVersion,\r
-  OUT UINT32                       *LastAttemptStatus,\r
-  OUT CHAR16                       **AbortReason\r
-  );\r
-\r
-/**\r
-  Dump private information.\r
-\r
-  @param[in] MicrocodeFmpPrivate private data structure.\r
-**/\r
-VOID\r
-DumpPrivateInfo (\r
-  IN MICROCODE_FMP_PRIVATE_DATA  *MicrocodeFmpPrivate\r
-  );\r
-\r
-/**\r
-  Returns information about the current firmware image(s) of the device.\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, out] ImageInfoSize      A pointer to the size, in bytes, of the ImageInfo buffer.\r
-                                     On input, this is the size of the buffer allocated by the caller.\r
-                                     On output, it is the size of the buffer returned by the firmware\r
-                                     if the buffer was large enough, or the size of the buffer needed\r
-                                     to contain the image(s) information if the buffer was too small.\r
-  @param[in, out] ImageInfo          A pointer to the buffer in which firmware places the current image(s)\r
-                                     information. The information is an array of EFI_FIRMWARE_IMAGE_DESCRIPTORs.\r
-  @param[out]     DescriptorVersion  A pointer to the location in which firmware returns the version number\r
-                                     associated with the EFI_FIRMWARE_IMAGE_DESCRIPTOR.\r
-  @param[out]     DescriptorCount    A pointer to the location in which firmware returns the number of\r
-                                     descriptors or firmware images within this device.\r
-  @param[out]     DescriptorSize     A pointer to the location in which firmware returns the size, in bytes,\r
-                                     of an individual EFI_FIRMWARE_IMAGE_DESCRIPTOR.\r
-  @param[out]     PackageVersion     A version number that represents all the firmware images in the device.\r
-                                     The format is vendor specific and new version must have a greater value\r
-                                     than the old version. If PackageVersion is not supported, the value is\r
-                                     0xFFFFFFFF. A value of 0xFFFFFFFE indicates that package version comparison\r
-                                     is to be performed using PackageVersionName. A value of 0xFFFFFFFD indicates\r
-                                     that package version update is in progress.\r
-  @param[out]     PackageVersionName A pointer to a pointer to a null-terminated string representing the\r
-                                     package version name. The buffer is allocated by this function with\r
-                                     AllocatePool(), and it is the caller's responsibility to free it with a call\r
-                                     to FreePool().\r
-\r
-  @retval EFI_SUCCESS                The device was successfully updated with the new image.\r
-  @retval EFI_BUFFER_TOO_SMALL       The ImageInfo buffer was too small. The current buffer size\r
-                                     needed to hold the image(s) information is returned in ImageInfoSize.\r
-  @retval EFI_INVALID_PARAMETER      ImageInfoSize is NULL.\r
-  @retval EFI_DEVICE_ERROR           Valid information could not be returned. Possible corrupted image.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FmpGetImageInfo (\r
-  IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL       *This,\r
-  IN OUT    UINTN                           *ImageInfoSize,\r
-  IN OUT    EFI_FIRMWARE_IMAGE_DESCRIPTOR   *ImageInfo,\r
-  OUT       UINT32                          *DescriptorVersion,\r
-  OUT       UINT8                           *DescriptorCount,\r
-  OUT       UINTN                           *DescriptorSize,\r
-  OUT       UINT32                          *PackageVersion,\r
-  OUT       CHAR16                          **PackageVersionName\r
-  );\r
-\r
-/**\r
-  Retrieves a copy of the current firmware image of the device.\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
-                                 The number is between 1 and DescriptorCount.\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
-  @retval EFI_BUFFER_TOO_SMALL   The buffer specified by ImageSize is too small to hold the\r
-                                 image. The current buffer size needed to hold the image is returned\r
-                                 in ImageSize.\r
-  @retval EFI_INVALID_PARAMETER  The Image was NULL.\r
-  @retval EFI_NOT_FOUND          The current image is not copied to the buffer.\r
-  @retval EFI_UNSUPPORTED        The operation is not supported.\r
-  @retval EFI_SECURITY_VIOLATIO  The operation could not be performed due to an authentication failure.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FmpGetImage (\r
-  IN  EFI_FIRMWARE_MANAGEMENT_PROTOCOL  *This,\r
-  IN  UINT8                             ImageIndex,\r
-  IN  OUT  VOID                         *Image,\r
-  IN  OUT  UINTN                        *ImageSize\r
-  );\r
-\r
-/**\r
-  Updates the firmware image of the device.\r
-\r
-  This function updates the hardware with the new firmware image.\r
-  This function returns EFI_UNSUPPORTED if the firmware image is not updatable.\r
-  If the firmware image is updatable, the function should perform the following minimal validations\r
-  before proceeding to do the firmware image update.\r
-  - Validate the image authentication if image has attribute\r
-    IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED. The function returns\r
-    EFI_SECURITY_VIOLATION if the validation fails.\r
-  - Validate the image is a supported image for this device. The function returns EFI_ABORTED if\r
-    the image is unsupported. The function can optionally provide more detailed information on\r
-    why the image is not a supported image.\r
-  - Validate the data from VendorCode if not null. Image validation must be performed before\r
-    VendorCode data validation. VendorCode data is ignored or considered invalid if image\r
-    validation failed. The function returns EFI_ABORTED if the data is invalid.\r
-\r
-  VendorCode enables vendor to implement vendor-specific firmware image update policy. Null if\r
-  the caller did not specify the policy or use the default policy. As an example, vendor can implement\r
-  a policy to allow an option to force a firmware image update when the abort reason is due to the new\r
-  firmware image version is older than the current firmware image version or bad image checksum.\r
-  Sensitive operations such as those wiping the entire firmware image and render the device to be\r
-  non-functional should be encoded in the image itself rather than passed with the VendorCode.\r
-  AbortReason enables vendor to have the option to provide a more detailed description of the abort\r
-  reason to the caller.\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
-                                 The number is between 1 and DescriptorCount.\r
-  @param[in]  Image              Points to the new image.\r
-  @param[in]  ImageSize          Size of the new image in bytes.\r
-  @param[in]  VendorCode         This enables vendor to implement vendor-specific firmware image update policy.\r
-                                 Null indicates the caller did not specify the policy or use the default policy.\r
-  @param[in]  Progress           A function used by the driver to report the progress of the firmware update.\r
-  @param[out] AbortReason        A pointer to a pointer to a null-terminated string providing more\r
-                                 details for the aborted operation. The buffer is allocated by this function\r
-                                 with AllocatePool(), and it is the caller's responsibility to free it with a\r
-                                 call to FreePool().\r
-\r
-  @retval EFI_SUCCESS            The device was successfully updated with the new image.\r
-  @retval EFI_ABORTED            The operation is aborted.\r
-  @retval EFI_INVALID_PARAMETER  The Image was NULL.\r
-  @retval EFI_UNSUPPORTED        The operation is not supported.\r
-  @retval EFI_SECURITY_VIOLATIO  The operation could not be performed due to an authentication failure.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FmpSetImage (\r
-  IN  EFI_FIRMWARE_MANAGEMENT_PROTOCOL                 *This,\r
-  IN  UINT8                                            ImageIndex,\r
-  IN  CONST VOID                                       *Image,\r
-  IN  UINTN                                            ImageSize,\r
-  IN  CONST VOID                                       *VendorCode,\r
-  IN  EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS    Progress,\r
-  OUT CHAR16                                           **AbortReason\r
-  );\r
-\r
-/**\r
-  Checks if the firmware image is valid for the device.\r
-\r
-  This function allows firmware update application to validate the firmware image without\r
-  invoking the SetImage() first.\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
-                                 The number is between 1 and DescriptorCount.\r
-  @param[in]  Image              Points to the new image.\r
-  @param[in]  ImageSize          Size of the new image in bytes.\r
-  @param[out] ImageUpdatable     Indicates if the new image is valid for update. It also provides,\r
-                                 if available, additional information if the image is invalid.\r
-\r
-  @retval EFI_SUCCESS            The image was successfully checked.\r
-  @retval EFI_INVALID_PARAMETER  The Image was NULL.\r
-  @retval EFI_UNSUPPORTED        The operation is not supported.\r
-  @retval EFI_SECURITY_VIOLATIO  The operation could not be performed due to an authentication failure.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FmpCheckImage (\r
-  IN  EFI_FIRMWARE_MANAGEMENT_PROTOCOL  *This,\r
-  IN  UINT8                             ImageIndex,\r
-  IN  CONST VOID                        *Image,\r
-  IN  UINTN                             ImageSize,\r
-  OUT UINT32                            *ImageUpdatable\r
-  );\r
-\r
-/**\r
-  Returns information about the firmware package.\r
-\r
-  This function returns package information.\r
-\r
-  @param[in]  This                     A pointer to the EFI_FIRMWARE_MANAGEMENT_PROTOCOL instance.\r
-  @param[out] PackageVersion           A version number that represents all the firmware images in the device.\r
-                                       The format is vendor specific and new version must have a greater value\r
-                                       than the old version. If PackageVersion is not supported, the value is\r
-                                       0xFFFFFFFF. A value of 0xFFFFFFFE indicates that package version\r
-                                       comparison is to be performed using PackageVersionName. A value of\r
-                                       0xFFFFFFFD indicates that package version update is in progress.\r
-  @param[out] PackageVersionName       A pointer to a pointer to a null-terminated string representing\r
-                                       the package version name. The buffer is allocated by this function with\r
-                                       AllocatePool(), and it is the caller's responsibility to free it with a\r
-                                       call to FreePool().\r
-  @param[out] PackageVersionNameMaxLen The maximum length of package version name if device supports update of\r
-                                       package version name. A value of 0 indicates the device does not support\r
-                                       update of package version name. Length is the number of Unicode characters,\r
-                                       including the terminating null character.\r
-  @param[out] AttributesSupported      Package attributes that are supported by this device. See 'Package Attribute\r
-                                       Definitions' for possible returned values of this parameter. A value of 1\r
-                                       indicates the attribute is supported and the current setting value is\r
-                                       indicated in AttributesSetting. A value of 0 indicates the attribute is not\r
-                                       supported and the current setting value in AttributesSetting is meaningless.\r
-  @param[out] AttributesSetting        Package attributes. See 'Package Attribute Definitions' for possible returned\r
-                                       values of this parameter\r
-\r
-  @retval EFI_SUCCESS                  The package information was successfully returned.\r
-  @retval EFI_UNSUPPORTED              The operation is not supported.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FmpGetPackageInfo (\r
-  IN  EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
-  OUT UINT32                           *PackageVersion,\r
-  OUT CHAR16                           **PackageVersionName,\r
-  OUT UINT32                           *PackageVersionNameMaxLen,\r
-  OUT UINT64                           *AttributesSupported,\r
-  OUT UINT64                           *AttributesSetting\r
-  );\r
-\r
-/**\r
-  Updates information about the firmware package.\r
-\r
-  This function updates package information.\r
-  This function returns EFI_UNSUPPORTED if the package information is not updatable.\r
-  VendorCode enables vendor to implement vendor-specific package information update policy.\r
-  Null if the caller did not specify this policy or use the default policy.\r
-\r
-  @param[in]  This               A pointer to the EFI_FIRMWARE_MANAGEMENT_PROTOCOL instance.\r
-  @param[in]  Image              Points to the authentication image.\r
-                                 Null if authentication is not required.\r
-  @param[in]  ImageSize          Size of the authentication image in bytes.\r
-                                 0 if authentication is not required.\r
-  @param[in]  VendorCode         This enables vendor to implement vendor-specific firmware\r
-                                 image update policy.\r
-                                 Null indicates the caller did not specify this policy or use\r
-                                 the default policy.\r
-  @param[in]  PackageVersion     The new package version.\r
-  @param[in]  PackageVersionName A pointer to the new null-terminated Unicode string representing\r
-                                 the package version name.\r
-                                 The string length is equal to or less than the value returned in\r
-                                 PackageVersionNameMaxLen.\r
-\r
-  @retval EFI_SUCCESS            The device was successfully updated with the new package\r
-                                 information.\r
-  @retval EFI_INVALID_PARAMETER  The PackageVersionName length is longer than the value\r
-                                 returned in PackageVersionNameMaxLen.\r
-  @retval EFI_UNSUPPORTED        The operation is not supported.\r
-  @retval EFI_SECURITY_VIOLATIO  The operation could not be performed due to an authentication failure.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FmpSetPackageInfo (\r
-  IN  EFI_FIRMWARE_MANAGEMENT_PROTOCOL   *This,\r
-  IN  CONST VOID                         *Image,\r
-  IN  UINTN                              ImageSize,\r
-  IN  CONST VOID                         *VendorCode,\r
-  IN  UINT32                             PackageVersion,\r
-  IN  CONST CHAR16                       *PackageVersionName\r
-  );\r
-\r
-#endif\r
-\r