## @file
# Component information file for PEI WhiskeylakeURvp Board Init Pre-Mem Library
#
#
#  Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = PeiWhiskeylakeURvpMultiBoardInitPreMemLib
  FILE_GUID                      = EA05BD43-136F-45EE-BBBA-27D75817574F
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL
  CONSTRUCTOR                    = PeiWhiskeylakeURvpMultiBoardInitPreMemLibConstructor

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  GpioLib
  MemoryAllocationLib
  MultiBoardInitSupportLib
  OcWdtLib
  PcdLib
  PchResetLib
  PeiPlatformHookLib
  PeiPolicyInitLib
  PlatformHookLib
  SiliconInitLib
  StallPpiLib

[Packages]
  MinPlatformPkg/MinPlatformPkg.dec
  WhiskeylakeOpenBoardPkg/OpenBoardPkg.dec
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  CoffeelakeSiliconPkg/SiPkg.dec

[Sources]
  PeiWhiskeylakeURvpInitPreMemLib.c
  WhiskeylakeURvpHsioPtssTables.c
  PeiMultiBoardInitPreMemLib.c
  PeiWhiskeylakeURvpDetect.c
  BoardSaInitPreMemLib.c
  BoardPchInitPreMemLib.c
  BoardFuncInitPreMem.c
  GpioTableWhlUDdr4PreMem.c

[Ppis]
  gEfiPeiReadOnlyVariable2PpiGuid
  gEfiPeiMemoryDiscoveredPpiGuid                ## CONSUMES
  gEfiPeiResetPpiGuid                           ## PRODUCES

[Guids]
  gPchGeneralPreMemConfigGuid      ## CONSUMES

[Pcd]
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdLpcSioConfigDefaultPort

  # PCH-LP HSIO PTSS Table
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSpecificLpHsioPtssTable1
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSpecificLpHsioPtssTable2
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSpecificLpHsioPtssTable1Size
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSpecificLpHsioPtssTable2Size

  # PCH-H HSIO PTSS Table
  #gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUnknowHHsioPtssTable1
  #gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUnknowHHsioPtssTable2
  #gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUnknowHHsioPtssTable1Size
  #gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUnknowHHsioPtssTable2Size

  # SA Misc Config
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSaMiscUserBd
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcRcompResistor
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcRcompTarget
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcDqByteMap
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcDqByteMapSize
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcDqsMapCpu2Dram
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcDqsMapCpu2DramSize
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcSpdData
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcSpdDataSize

  # PEG Reset By GPIO
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie0WakeGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie0HoldRstExpanderNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie0HoldRstGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie0HoldRstActive
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie0PwrEnableExpanderNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie0PwrEnableGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie0PwrEnableActive


  # SPD Address Table
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcSpdAddressTable0
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcSpdAddressTable1
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcSpdAddressTable2
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcSpdAddressTable3

  # USB 2.0 Port AFE
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port0Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port1Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port2Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port3Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port4Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port5Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port6Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port7Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port8Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port9Afe

  # USB 2.0 Port Over Current Pin
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort0
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort1
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort2
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort3
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort4
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort5
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort6
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort7
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort8
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort9
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort10
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort11
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort12
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort13

  # USB 3.0 Port Over Current Pin
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort0
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort1
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort2
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort3
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort4
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort5

  # Misc
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdIoExpanderPresent

  #===========================================================
  # Board Init Table List

  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdBoardGpioTablePreMem
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdBoardGpioTablePreMemSize
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdBoardGpioTableWwanOnEarlyPreMem
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdBoardGpioTableWwanOnEarlyPreMemSize
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdBoardGpioTableWwanOffEarlyPreMem
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdBoardGpioTableWwanOffEarlyPreMemSize

  # WWAN Full Card Power Off and reset pins
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdWwanFullCardPowerOffGpio
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdWwanBbrstGpio
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdWwanPerstGpio
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdWwanPerstGpioPolarity

  # SA Misc Config
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSaMiscMmioSizeAdjustment
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcDqPinsInterleavedControl
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcDqPinsInterleaved
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSaDdrFreqLimit

  # Display DDI
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSaDisplayConfigTable           ## PRODUCES
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSaDisplayConfigTableSize       ## PRODUCES

  # PEG Reset By GPIO
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPegGpioResetControl
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPegGpioResetSupoort
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPeg0ResetGpioPad
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPeg0ResetGpioActive
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPeg3ResetGpioPad
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPeg3ResetGpioActive

  # PCIE RTD3 GPIO
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdRootPortDev
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdRootPortFunc
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdRootPortIndex

  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie0GpioSupport

  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie1GpioSupport
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie1WakeGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie1HoldRstExpanderNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie1HoldRstGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie1HoldRstActive
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie1PwrEnableExpanderNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie1PwrEnableGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie1PwrEnableActive

  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie2GpioSupport
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie2WakeGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie2HoldRstExpanderNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie2HoldRstGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie2HoldRstActive
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie2PwrEnableExpanderNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie2PwrEnableGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie2PwrEnableActive

  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie3GpioSupport
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie3WakeGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie3HoldRstExpanderNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie3HoldRstGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie3HoldRstActive
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie3PwrEnableExpanderNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie3PwrEnableGpioNo
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcie3PwrEnableActive

  # CA Vref Configuration
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMrcCaVrefConfig

  # PCIe Clock Info
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock0
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock1
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock2
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock3
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock4
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock5
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock6
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock7
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock8
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock9
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock10
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock11
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock12
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock13
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock14
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieClock15

  # USB 2.0 Port AFE
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port10Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port11Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port12Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port13Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port14Afe
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20Port15Afe

  # USB 2.0 Port Over Current Pin
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort14
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb20OverCurrentPinPort15

  # USB 3.0 Port Over Current Pin
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort6
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort7
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort8
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdUsb30OverCurrentPinPort9

  # GPIO Group Tier
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdGpioGroupToGpeDw0
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdGpioGroupToGpeDw1
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdGpioGroupToGpeDw2

  # Pch PmConfig Policy
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSlpS0VmRuntimeControl
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSlpS0Vm070VSupport
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSlpS0Vm075VSupport

  # Misc
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPc8374SioKbcPresent
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdOddPowerInitEnable
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdIvCamInitPresent
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdRecoveryModeGpio
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdMobileDramPresent
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdCpuVboostEnable


  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdSpdPresent
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdBoardRev
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdBoardBomId
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPlatformType
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdDualDimmPerChannelBoardType

  gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaBaseAddress
  gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize
  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress  ## CONSUMES
  gMinPlatformPkgTokenSpaceGuid.PcdPciExpressRegionLength     ## CONSUMES

  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdPcieWwanEnable
  gWhiskeylakeOpenBoardPkgTokenSpaceGuid.PcdWwanResetWorkaround    ## PRODUCES
  gSiPkgTokenSpaceGuid.PcdTcoBaseAddress


[FixedPcd]
  gSiPkgTokenSpaceGuid.PcdMchBaseAddress              ## CONSUMES
  gSiPkgTokenSpaceGuid.PcdMchMmioSize                 ## CONSUMES
  gPlatformModuleTokenSpaceGuid.PcdDmiBaseAddress     ## CONSUMES
  gPlatformModuleTokenSpaceGuid.PcdDmiMmioSize        ## CONSUMES
  gPlatformModuleTokenSpaceGuid.PcdEpBaseAddress      ## CONSUMES
  gPlatformModuleTokenSpaceGuid.PcdEpMmioSize         ## CONSUMES
  gPlatformModuleTokenSpaceGuid.PcdGdxcBaseAddress    ## CONSUMES
  gPlatformModuleTokenSpaceGuid.PcdGdxcMmioSize       ## CONSUMES
  gPlatformModuleTokenSpaceGuid.PcdApicLocalAddress   ## CONSUMES
  gPlatformModuleTokenSpaceGuid.PcdApicLocalMmioSize  ## CONSUMES



