## @file
# This driver implement the EFI_FIRMWARE_VOLUMEN_PROTOCOL.
#
# Copyright (c) 2006  - 2014, 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 that 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                      = FvbRuntimeDxe
  FILE_GUID                      = FD3B7E55-FA7B-4e07-AE1D-208B81FB0BAD
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = DxeFvbInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#
#  VIRTUAL_ADDRESS_MAP_CALLBACK  =  FvbVirtualddressChangeEvent
#

[Sources]
  FvbInfo.c
  FvbService.h
  FvbService.c
  FvbServiceDxe.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  Vlv2TbltDevicePkg/PlatformPkg.dec
  Vlv2DeviceRefCodePkg/Vlv2DeviceRefCodePkg.dec

[LibraryClasses]
  FlashDeviceLib
  PcdLib
  MemoryAllocationLib
  CacheMaintenanceLib
  IoLib
  BaseMemoryLib
  DebugLib
  BaseLib
  UefiLib
  UefiRuntimeLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint

[Guids]
  gEfiFirmwareFileSystem2Guid                   # ALWAYS_CONSUMED
  gEfiSystemNvDataFvGuid                        # ALWAYS_CONSUMED
  gEfiEventVirtualAddressChangeGuid

[Protocols]
  gEfiDevicePathProtocolGuid                    # PROTOCOL ALWAYS_PRODUCED
  gEfiFirmwareVolumeBlockProtocolGuid           # PROTOCOL ALWAYS_PRODUCED

[FixedPcd]
  gPlatformModuleTokenSpaceGuid.PcdFlashFvMainBase
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
  gPlatformModuleTokenSpaceGuid.PcdFlashFvRecoveryBase

[Pcd]
  gPlatformModuleTokenSpaceGuid.PcdFlashFvMainSize
  gPlatformModuleTokenSpaceGuid.PcdFlashFvRecoverySize
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize


[Depex]
  gEfiSpiProtocolGuid AND gEfiRuntimeArchProtocolGuid

