#/** @file
# Component name for module PlatformBootManagerLib
#
# Copyright (c) 2008  - 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 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                      = PlatformBdsLib
  FILE_GUID                      = A6BC385D-59E5-4b77-87D7-200ABAA83C15
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PlatformBootManagerLib|DXE_DRIVER
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x0002000A


#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  BdsPlatform.c
  BdsPlatform.h
  PlatformData.c
  PlatformBdsStrings.uni

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
  Vlv2TbltDevicePkg/PlatformPkg.dec
  Vlv2DeviceRefCodePkg/Vlv2DeviceRefCodePkg.dec
  ShellPkg/ShellPkg.dec
  CryptoPkg/CryptoPkg.dec
  SecurityPkg/SecurityPkg.dec

[LibraryClasses]
  DxeServicesTableLib
  BaseLib
  MemoryAllocationLib
  UefiBootServicesTableLib
  UefiRuntimeServicesTableLib
  BaseMemoryLib
  DebugLib
  PcdLib
  GenericBdsLib
  DevicePathLib
  NetLib
  UefiLib
  HobLib
  PciLib
  PrintLib
  BaseCryptLib
#  TcgPhysicalPresenceLib
  TrEEPhysicalPresenceLib  
  FileHandleLib
  S3BootScriptLib
  SerialPortLib

[Protocols]
  gEfiFirmwareVolume2ProtocolGuid
  gEfiSimpleNetworkProtocolGuid
  gEfiLoadFileProtocolGuid
  gEfiPciIoProtocolGuid
  gEfiSmmAccess2ProtocolGuid
  gEfiDxeSmmReadyToLockProtocolGuid
  gEfiUserManagerProtocolGuid
  gEfiDeferredImageLoadProtocolGuid
  gEfiAcpiS3SaveProtocolGuid
  gEfiSpiProtocolGuid                           ## PROTOCOL CONSUMES
  gExitPmAuthProtocolGuid
  gEfiTdtOperationProtocolGuid
  gEfiGlobalNvsAreaProtocolGuid
  gEfiMmioDeviceProtocolGuid
  gEfiI2cMasterProtocolGuid
  gEfiI2cHostProtocolGuid

[Guids]
  gEfiMemoryTypeInformationGuid
  gEfiCapsuleVendorGuid
  gEfiGlobalVariableGuid
  gEfiNormalSetupGuid
  gEfiPartTypeSystemPartGuid
  gEfiEndOfDxeEventGroupGuid

[Pcd]
  gPlatformModuleTokenSpaceGuid.PcdFlashFvRecovery2Base
  gPlatformModuleTokenSpaceGuid.PcdFlashFvMainBase
  gPlatformModuleTokenSpaceGuid.PcdFlashFvRecoveryBase
  gPlatformModuleTokenSpaceGuid.PcdFlashFvShellBase
  gPlatformModuleTokenSpaceGuid.PcdFlashFvShellSize
  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile
  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile
  gPlatformModuleTokenSpaceGuid.PcdIFWISigBaseAddress
  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow
  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn
  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution
  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution
  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutColumn
  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutRow
  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution
  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution
  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState
