Configure GPIO expander in PEI phase 1) Configure all GPIO expander pins connected to Reset Button as inputs 2) Configure multiplexer for I2C to route I2C bus to Arduino Header Cc: Kelly Steele <kelly.steele@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Kelly Steele <kelly.steele@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19620 6f19259b-4bc3-4df7-8a09-765794883524
202 lines
7.8 KiB
INI
202 lines
7.8 KiB
INI
## @file
|
|
# This is the Platform PEIM to initialize whole platform on PEI phase.
|
|
#
|
|
# This PEIM includes 3 parts, pre memory initialization, MRC
|
|
# wrapper and post memory initialization.
|
|
# On pre memory, following action is performed,
|
|
# 1. Initizluize GMCH.
|
|
# 2. Detect boot mode.
|
|
# 3. Detect video adapter to determine whether we need pre allocated
|
|
# memory.
|
|
#
|
|
# After that MRC wrapper calls MRC to initialize memory and install a PPI
|
|
# notify to do post memory
|
|
# initialization. MRC wrapper performance following actions,
|
|
# 1. Install EFI Memory.
|
|
# 2. Create HOB of system memory.
|
|
#
|
|
# On post memory, following action is performed,
|
|
# 1. QNC initialization after MRC.
|
|
# 2. SIO initialization.
|
|
# 3. Install ResetSystem and FinvFv PPI, relocate Stall to memory on
|
|
# recovery boot mode.
|
|
# 4. Set MTRR for PEI
|
|
# 5. Create FV HOB and Flash HOB
|
|
# 6. Install RecoveryModule and AtaController PPI if on recovery boot mode.
|
|
#
|
|
# This PEIM does not have any register access directly, it depends on
|
|
# IntelQNCLib, QNCAccess libraries to access Chipset
|
|
# registers.
|
|
#
|
|
# Platform.c - Provide main flow and entrypoint of PEIM.
|
|
# MemoryCallback.c - Includes a memory call back function notified when
|
|
# MRC is done.
|
|
# Recovery.c - provides the platform recoveyr functionality.
|
|
# MrcWrapper.c - Contains the logic to call MRC PPI and do Framework
|
|
# memory specific stuff like build memory map, build
|
|
# resource description hob for DXE phase,etc.
|
|
# Bootmode.c - Detect boot mode.
|
|
# Copyright (c) 2013 - 2016 Intel Corporation.
|
|
#
|
|
# 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 = PlatformEarlyInitPei
|
|
FILE_GUID = 9618C0DC-50A4-496c-994F-7241F282ED01
|
|
MODULE_TYPE = PEIM
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = PeiInitPlatform
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64
|
|
#
|
|
|
|
[Sources]
|
|
Generic/Recovery.c
|
|
PlatformErratas.c
|
|
MrcWrapper.c
|
|
MrcWrapper.h
|
|
PlatformEarlyInit.c
|
|
PlatformEarlyInit.h
|
|
MemoryCallback.c
|
|
BootMode.c
|
|
CommonHeader.h
|
|
PeiFvSecurity.c
|
|
PeiFvSecurity.h
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
UefiCpuPkg/UefiCpuPkg.dec
|
|
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
|
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
|
|
QuarkPlatformPkg/QuarkPlatformPkg.dec
|
|
QuarkSocPkg/QuarkSocPkg.dec
|
|
|
|
[LibraryClasses]
|
|
ResetSystemLib
|
|
PrintLib
|
|
TimerLib
|
|
RecoveryOemHookLib
|
|
PcdLib
|
|
IntelQNCLib
|
|
ReportStatusCodeLib
|
|
PciLib
|
|
PciExpressLib
|
|
IoLib
|
|
PciCf8Lib
|
|
HobLib
|
|
BaseMemoryLib
|
|
PeiServicesTablePointerLib
|
|
PeiServicesLib
|
|
BaseLib
|
|
PeimEntryPoint
|
|
DebugLib
|
|
MemoryAllocationLib
|
|
PerformanceLib
|
|
CacheMaintenanceLib
|
|
MtrrLib
|
|
QNCAccessLib
|
|
PlatformHelperLib
|
|
PlatformPcieHelperLib
|
|
I2cLib
|
|
|
|
[Guids]
|
|
gEfiMemoryConfigDataGuid # ALWAYS_CONSUMED L"MemoryConfig"
|
|
gEfiAcpiVariableGuid # ALWAYS_CONSUMED L"AcpiGlobalVariab"
|
|
gEfiMemoryTypeInformationGuid # ALWAYS_CONSUMED L"MemoryTypeInformation"
|
|
gEfiMemoryConfigDataGuid # SOMETIMES_PRODUCED Hob: GUID_EXTENSION
|
|
gEfiSmmPeiSmramMemoryReserveGuid # ALWAYS_PRODUCED Hob: GUID_EXTENSION
|
|
gEfiFirmwareFileSystem2Guid # ALWAYS_CONSUMED
|
|
gEfiCapsuleGuid # ALWAYS_CONSUMED
|
|
gPeiCapsuleOnDataCDGuid
|
|
gPeiCapsuleOnFatIdeDiskGuid
|
|
gPeiCapsuleOnFatUsbDiskGuid
|
|
gEfiMemoryOverwriteControlDataGuid # SOMETIMES_CONSUMED
|
|
gEfiQuarkCapsuleGuid
|
|
|
|
[Ppis]
|
|
gQNCMemoryInitPpiGuid # PPI ALWAYS_CONSUMED
|
|
gEfiPeiMemoryDiscoveredPpiGuid # PPI ALWAYS_PRODUCED
|
|
gPeiAtaControllerPpiGuid # PPI SOMETIMES_PRODUCED
|
|
gEfiPeiStallPpiGuid # PPI ALWAYS_PRODUCED
|
|
gEfiPeiDeviceRecoveryModulePpiGuid # PPI SOMETIMES_CONSUMED
|
|
gEfiPeiRecoveryModulePpiGuid # PPI SOMETIMES_PRODUCED
|
|
gEfiPeiResetPpiGuid # PPI ALWAYS_PRODUCED
|
|
gEfiPeiReadOnlyVariable2PpiGuid # PPI ALWAYS_CONSUMED
|
|
gEfiPeiBootInRecoveryModePpiGuid # PPI SOMETIMES_PRODUCED
|
|
gEfiPeiMasterBootModePpiGuid # PPI ALWAYS_PRODUCED
|
|
gEfiPeiFirmwareVolumeInfoPpiGuid
|
|
gEfiEndOfPeiSignalPpiGuid
|
|
gEfiPeiVirtualBlockIoPpiGuid
|
|
gPeiCapsulePpiGuid # PPI ALWAYS_CONSUMED
|
|
|
|
[FeaturePcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatUsbDisk
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnDataCD
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatFloppyDisk
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnIdeDisk
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
|
|
gQuarkPlatformTokenSpaceGuid.WaitIfResetDueToError
|
|
|
|
[Pcd]
|
|
gQuarkPlatformTokenSpaceGuid.PcdEsramStage1Base
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashAreaSize
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashAreaBaseAddress
|
|
gQuarkPlatformTokenSpaceGuid.PcdEccScrubBlkSize
|
|
gQuarkPlatformTokenSpaceGuid.PcdEccScrubInterval
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashQNCMicrocodeSize
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdPmbaIoBaseAddress
|
|
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoBase
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoSize
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartFunctionNumber
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartBusNumber
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartDevNumber
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBusNumber
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioDevNumber
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioFunctionNumber
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBarRegister
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioMmioBase
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac0MmioBase
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac1MmioBase
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdPeiQNCUsbControllerMemoryBaseAddress
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdRcbaMmioBaseAddress
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Base
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Size
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Base
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Size
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciExpressSize
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdGbaIoBaseAddress
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkMicrocodeFile
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdTSegSize
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdESramMemorySize
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoverySize
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoveryBase
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainSize
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainBase
|
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadBase
|
|
gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadSize
|
|
gQuarkPlatformTokenSpaceGuid.PcdEnableFastBoot
|
|
gQuarkPlatformTokenSpaceGuid.PcdPlatformType
|
|
gEfiQuarkNcSocIdTokenSpaceGuid.PcdMrcParameters
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac0
|
|
gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac1
|
|
|
|
[Depex]
|
|
gEfiPeiReadOnlyVariable2PpiGuid AND gQNCMemoryInitPpiGuid
|