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>
92 lines
2.9 KiB
INI
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
|