Files
system76-edk2/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
Ard Biesheuvel 9ad2b981bd MdeModulePkg/SmmIpl: expose MM communicate 2 protocol
The MM communicate 2 protocol was introduced to factor out the mismatch
between traditional MM, which requires the physical address of the MM
buffer to be passed, and standalone MM, which copies the MM communicate
buffer data into a separate buffer, requiring the virtual address. For
this reason, MM communicate 2 carries both addresses, allowing the
implementation to decide which address it needs.

This hides this implementation detail from the callers of the protocol,
which simply passes both addresses without having to reason about what the
implementation of the protocol actually needs.

Note that the old version of the protocol is retained, in order to support
existing implementations that don't require this flexibility.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2020-05-12 19:23:44 +00:00

92 lines
2.9 KiB
INI

## @file
# This module provide an SMM CIS compliant implementation of SMM IPL.
#
# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = PiSmmIpl
MODULE_UNI_FILE = PiSmmIpl.uni
FILE_GUID = 2FA2A6DA-11D5-4dc3-999A-749648B03C56
MODULE_TYPE = DXE_RUNTIME_DRIVER
VERSION_STRING = 1.0
PI_SPECIFICATION_VERSION = 0x0001000A
ENTRY_POINT = SmmIplEntry
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64
#
[Sources]
PiSmmIpl.c
PiSmmCorePrivateData.h
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
UefiDriverEntryPoint
BaseLib
BaseMemoryLib
PeCoffLib
CacheMaintenanceLib
MemoryAllocationLib
DebugLib
UefiBootServicesTableLib
DxeServicesTableLib
UefiLib
UefiRuntimeLib
DxeServicesLib
PcdLib
ReportStatusCodeLib
[Protocols]
gEfiSmmBase2ProtocolGuid ## PRODUCES
gEfiSmmCommunicationProtocolGuid ## PRODUCES
gEfiMmCommunication2ProtocolGuid ## PRODUCES
gEfiSmmAccess2ProtocolGuid ## CONSUMES
## NOTIFY
## CONSUMES
gEfiSmmConfigurationProtocolGuid
gEfiSmmControl2ProtocolGuid ## CONSUMES
## NOTIFY
## SOMETIMES_CONSUMES
## UNDEFINED # Used to do smm communication
gEfiDxeSmmReadyToLockProtocolGuid
gEfiCpuArchProtocolGuid ## SOMETIMES_CONSUMES
[Guids]
## CONSUMES ## Event
## PRODUCES ## UNDEFINED # Used to do smm communication
gEfiEventDxeDispatchGuid
gEfiEventReadyToBootGuid ## CONSUMES ## Event
## SOMETIMES_CONSUMES ## Event
## SOMETIMES_PRODUCES ## UNDEFINED # Used to do smm communication
gEfiEventLegacyBootGuid
## SOMETIMES_CONSUMES ## Event
## SOMETIMES_PRODUCES ## UNDEFINED # Used to do smm communication
gEfiEventExitBootServicesGuid
## SOMETIMES_CONSUMES ## Event
## SOMETIMES_PRODUCES ## UNDEFINED # Used to do smm communication
gEfiEventReadyToBootGuid
gEfiEventVirtualAddressChangeGuid ## CONSUMES ## Event
gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event
gLoadFixedAddressConfigurationTableGuid ## SOMETIMES_CONSUMES ## SystemTable
[Pcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressSmmCodePageNumber ## SOMETIMES_CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable ## CONSUMES
[Depex]
gEfiSmmAccess2ProtocolGuid AND gEfiSmmControl2ProtocolGuid
[UserExtensions.TianoCore."ExtraFiles"]
PiSmmIplExtra.uni