## @file
# Microcode FMP update driver.
#
# Produce FMP instance to update Microcode.
#
#  Copyright (c) 2016, 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.
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = MicrocodeUpdateDxe
  MODULE_UNI_FILE                = MicrocodeUpdateDxe.uni
  FILE_GUID                      = 0565365C-2FE1-4F88-B3BE-624C04623A20
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = MicrocodeFmpMain

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = X64
#

[Sources]
  MicrocodeUpdate.h
  MicrocodeFmp.c
  MicrocodeUpdate.c

[Packages]
  MdePkg/MdePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[LibraryClasses]
  BaseLib
  UefiLib
  BaseMemoryLib
  DebugLib
  PcdLib
  MemoryAllocationLib
  UefiBootServicesTableLib
  HobLib
  UefiRuntimeServicesTableLib
  UefiDriverEntryPoint
  MicrocodeFlashAccessLib

[Guids]
  gMicrocodeFmpImageTypeIdGuid                  ## CONSUMES   ## GUID

[Protocols]
  gEfiFirmwareManagementProtocolGuid            ## PRODUCES
  gEfiMpServiceProtocolGuid                     ## CONSUMES

[Pcd]
  gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchAddress            ## CONSUMES
  gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize         ## CONSUMES

[Depex]
  gEfiVariableArchProtocolGuid AND
  gEfiMpServiceProtocolGuid

[UserExtensions.TianoCore."ExtraFiles"]
  MicrocodeUpdateDxeExtra.uni

