#
#
#/*++
#
#  Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
#                                                                                  
# 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.    
#                                                                                  
#
#  Module Name:
#
#    VlvPlatformInit.inf
#
#  Abstract:
#
#    Component description file for wrapper driver of Vlv platform init part.
#
#--*/


[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = VlvPlatformInitDxe
  FILE_GUID                      = 1EC0EFC9-C93A-4b62-9B27-C059ABD80E92
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = VlvPlatformInitEntryPoint

[Sources]
  VlvPlatformInit.c
  IgdOpRegion.c


[Packages]
  MdePkg/MdePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  Vlv2DeviceRefCodePkg/Vlv2DeviceRefCodePkg.dec
  Vlv2TbltDevicePkg/PlatformPkg.dec

[LibraryClasses]
  UefiDriverEntryPoint
  DebugLib
  UefiBootServicesTableLib
  S3BootScriptLib
  DxeServicesTableLib
  PchPlatformLib
  S3PciLib
  S3IoLib
  PciLib
  IoLib

[Guids]
  gBmpImageGuid
  gEfiDxeServicesTableGuid

[Protocols]
  gDxeVlvPlatformPolicyGuid
  gEfiDxeSmmReadyToLockProtocolGuid
  gIgdOpRegionProtocolGuid
  gEfiGlobalNvsAreaProtocolGuid
  gEfiPciIoProtocolGuid
  gEfiFirmwareVolumeProtocolGuid
  gEfiCpuIoProtocolGuid

[Depex]
  gDxeVlvPlatformPolicyGuid              AND
  gEfiPciRootBridgeIoProtocolGuid     AND
  gEfiCpuIoProtocolGuid                      AND
  gEfiDataHubProtocolGuid                 AND
  gEfiGlobalNvsAreaProtocolGuid       AND
  gEfiFirmwareVolumeProtocolGuid   AND
  gEfiHiiDatabaseProtocolGuid

