## @file
#  CPU driver installs CPU Architecture Protocol and CPU MP protocol.
#
#  Copyright (c) 2008 - 2019, Intel Corporation. All rights reserved.<BR>
#  Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = CpuDxe
  MODULE_UNI_FILE                = CpuDxe.uni
  FILE_GUID                      = 1A1E4886-9517-440e-9FDE-3BE44CEE2136
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeCpu

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  CpuLib
  DebugLib
  DxeServicesTableLib
  MemoryAllocationLib
  MtrrLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  LocalApicLib
  UefiLib
  CpuExceptionHandlerLib
  HobLib
  ReportStatusCodeLib
  MpInitLib
  TimerLib
  PeCoffGetEntryPointLib

[Sources]
  CpuDxe.c
  CpuDxe.h
  CpuGdt.c
  CpuGdt.h
  CpuMp.c
  CpuMp.h
  CpuPageTable.h
  CpuPageTable.c

[Sources.IA32]
  Ia32/CpuAsm.nasm
  Ia32/PagingAttribute.c

[Sources.X64]
  X64/CpuAsm.nasm
  X64/PagingAttribute.c

[Protocols]
  gEfiCpuArchProtocolGuid                       ## PRODUCES
  gEfiMpServiceProtocolGuid                     ## PRODUCES
  gEfiSmmBase2ProtocolGuid                      ## SOMETIMES_CONSUMES

[Guids]
  gIdleLoopEventGuid                            ## CONSUMES           ## Event
  gEfiVectorHandoffTableGuid                    ## SOMETIMES_CONSUMES ## SystemTable

[Ppis]
  gEfiSecPlatformInformation2PpiGuid            ## UNDEFINED # HOB
  gEfiSecPlatformInformationPpiGuid             ## UNDEFINED # HOB

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask    ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard                       ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPropertyMask               ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask    ## CONSUMES
  gUefiCpuPkgTokenSpaceGuid.PcdCpuStackSwitchExceptionList              ## CONSUMES
  gUefiCpuPkgTokenSpaceGuid.PcdCpuKnownGoodStackSize                    ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask                    ## CONSUMES

[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  CpuDxeExtra.uni
