123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- ## @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 - 2019 Intel Corporation.
- #
- # SPDX-License-Identifier: BSD-2-Clause-Patent
- #
- ##
- [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
- QuarkPlatformPkg/QuarkPlatformPkg.dec
- QuarkSocPkg/QuarkSocPkg.dec
- [LibraryClasses]
- ResetSystemLib
- PrintLib
- TimerLib
- 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
- 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
- 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
- gQuarkPlatformTokenSpaceGuid.PcdBootState
- gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadBase
- gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadSize
- gQuarkPlatformTokenSpaceGuid.PcdEnableFastBoot
- gQuarkPlatformTokenSpaceGuid.PcdPlatformType
- gEfiQuarkNcSocIdTokenSpaceGuid.PcdMrcParameters
- gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac0
- gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac1
- [Depex]
- gEfiPeiReadOnlyVariable2PpiGuid AND gQNCMemoryInitPpiGuid
|