## @file
#  Set TPM device type
#
#  This module initializes TPM device type based on variable and detection.
#  NOTE: This module is only for reference only, each platform should have its own setup page.
#
# Copyright (c) 2013 - 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                      = TrEEConfigPei
  MODULE_UNI_FILE                = TrEEConfigPei.uni
  FILE_GUID                      = A5C1EF72-9379-4370-B4C7-0F5126CAC38E
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = TrEEConfigPeimEntryPoint

#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#
# [BootMode]
#   S3_RESUME                 ## SOMETIMES_CONSUMES
#

[Sources]
  TrEEConfigPeim.c
  TrEEConfigNvData.h
  TpmDetection.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  SecurityPkg/SecurityPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  MemoryAllocationLib
  PeiServicesLib
  PeimEntryPoint
  DebugLib
  PcdLib
  TimerLib
  Tpm12CommandLib
  Tpm12DeviceLib

[Guids]
  ## SOMETIMES_CONSUMES ## Variable:L"TREE_CONFIGURATION"
  ## SOMETIMES_CONSUMES ## Variable:L"TREE_DEVICE_DETECTION"
  gTrEEConfigFormSetGuid
  gEfiTpmDeviceSelectedGuid           ## PRODUCES             ## GUID    # Used as a PPI GUID
  gEfiTpmDeviceInstanceNoneGuid       ## SOMETIMES_CONSUMES   ## GUID    # TPM device identifier

[Ppis]
  gEfiPeiReadOnlyVariable2PpiGuid     ## CONSUMES
  gPeiTpmInitializationDonePpiGuid    ## SOMETIMES_PRODUCES

[Pcd]
  gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid                 ## PRODUCES
  gEfiSecurityPkgTokenSpaceGuid.PcdTpmInitializationPolicy         ## PRODUCES
  gEfiSecurityPkgTokenSpaceGuid.PcdTpmAutoDetection                ## CONSUMES 
  gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress                  ## SOMETIMES_CONSUMES

[Depex]
  gEfiPeiMasterBootModePpiGuid AND
  gEfiPeiReadOnlyVariable2PpiGuid
  
[UserExtensions.TianoCore."ExtraFiles"]
  TrEEConfigPeiExtra.uni