## @file
# A DXE_RUNTIME_DRIVER providing synchronous SMI activations via the
# EFI_SMM_CONTROL2_PROTOCOL.
#
# We expect the PEI phase to have covered the following:
# - ensure that the underlying QEMU machine type be Q35
#   (responsible: QemuQ35Pkg/SmmAccess/SmmAccessPei.inf)
# - ensure that the ACPI PM IO space be configured
#   (responsible: QemuQ35Pkg/PlatformPei/PlatformPei.inf)
#
# Our own entry point is responsible for confirming the SMI feature and for
# configuring it.
#
# Copyright (C) 2013, 2015, Red Hat, Inc.
# Copyright (c) Microsoft Corporation
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = SmmControl2Dxe
  FILE_GUID                      = 1206F7CA-A475-4624-A83E-E6FC9BB38E49
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  VERSION_STRING                 = 1.0
  PI_SPECIFICATION_VERSION       = 0x00010400
  ENTRY_POINT                    = SmmControl2DxeEntryPoint

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  SmiFeatures.h
  SmiFeatures.c
  SmmControl2Dxe.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  QemuPkg/QemuPkg.dec
  QemuQ35Pkg/QemuQ35Pkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[LibraryClasses]
  BaseLib
  DebugLib
  IoLib
  MemEncryptSevLib
  MemoryAllocationLib
  PcdLib
  PciLib
  QemuFwCfgLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint

[Protocols]
  gEfiSmmControl2ProtocolGuid   ## PRODUCES

[Pcd]
  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmApSyncTimeout ## SOMETIMES_PRODUCES
  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode      ## SOMETIMES_PRODUCES

[FeaturePcd]
  gQemuPkgTokenSpaceGuid.PcdSmmSmramRequire
  gUefiQemuQ35PkgTokenSpaceGuid.PcdStandaloneMmEnable  # MU_CHANGE: Added support for Standalone MM

[Depex]
  TRUE
