ArmPkg: ArmFfaLib: Move ArmFfaLib implementation to MdeModulePkg

ArmFfaLib is an implementation of an industry specification-defined
interface with UEFI specific method of handling Rx/Tx buffer sharing
across multiple boot phases, which is more appropriately placed in
MdeModulePkg.

This update relocates the implementation of ArmFfaLib to MdeModulePkg,
thereby supporting the FFA call primitives for all other packages that
depend on this interface.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Kun Qin <kun.qin@microsoft.com>
This commit is contained in:
Kun Qin 2025-04-10 09:32:19 -07:00 committed by mergify[bot]
parent 937ffef8ed
commit be03ceb117
16 changed files with 51 additions and 36 deletions

View File

@ -93,8 +93,6 @@
gArmMmuReplaceLiveTranslationEntryFuncGuid = { 0xa8b50ff3, 0x08ec, 0x4dd3, {0xbf, 0x04, 0x28, 0xbf, 0x71, 0x75, 0xc7, 0x4a} }
gArmFfaRxTxBufferInfoGuid = { 0x96fd3d26, 0x6fb1, 0x11ef, { 0x8c, 0x11, 0xf3, 0xc9, 0xc5, 0x02, 0x31, 0xab } }
[Protocols.common]
## Arm System Control and Management Interface(SCMI) Base protocol
## ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h
@ -293,12 +291,6 @@
gArmTokenSpaceGuid.PcdSystemBiosRelease|0xFFFF|UINT16|0x30000058
gArmTokenSpaceGuid.PcdEmbeddedControllerFirmwareRelease|0xFFFF|UINT16|0x30000059
#
# Define the conduit to use ArmFfalib.
# Default PcdFfaLibConduitSmc == TRUE, conduit = SMC
# If PcdFfaLibConduitSvc == FALSE, conduit = SVC
gArmTokenSpaceGuid.PcdFfaLibConduitSmc|TRUE|BOOLEAN|0x00000063
[PcdsFixedAtBuild.common, PcdsDynamic.common]
# ARM Architectural Timer Interrupt(GIC PPI) numbers
gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|29|UINT32|0x00000035
@ -389,7 +381,3 @@
# the LinuxBoot payload.
#
gArmTokenSpaceGuid.PcdLinuxBootFileGuid|{0x0}|VOID*|0x0000005C
gArmTokenSpaceGuid.PcdFfaTxBuffer|0x00|UINT64|0x0000005F
gArmTokenSpaceGuid.PcdFfaRxBuffer|0x00|UINT64|0x00000060
gArmTokenSpaceGuid.PcdFfaTxRxPageCount|1|UINT64|0x00000061
gArmTokenSpaceGuid.PcdFfaExitBootEventRegistered|FALSE|BOOLEAN|0x00000062

View File

@ -85,7 +85,7 @@
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
ArmTransferListLib|ArmPkg/Library/ArmTransferListLib/ArmTransferListLib.inf
ArmFfaLib|ArmPkg/Library/ArmFfaLib/ArmFfaDxeLib.inf
ArmFfaLib|MdeModulePkg/Library/ArmFfaLib/ArmFfaDxeLib.inf
ArmMtlLib|ArmPkg/Library/ArmMtlNullLib/ArmMtlNullLib.inf
@ -97,7 +97,7 @@
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
ArmFfaLib|ArmPkg/Library/ArmFfaLib/ArmFfaPeiLib.inf
ArmFfaLib|MdeModulePkg/Library/ArmFfaLib/ArmFfaPeiLib.inf
[LibraryClasses.common.MM_CORE_STANDALONE]
StandaloneMmCoreEntryPoint|ArmPkg/Library/ArmStandaloneMmCoreEntryPoint/ArmStandaloneMmCoreEntryPoint.inf
@ -136,10 +136,6 @@
ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.inf
ArmPkg/Library/OpteeLib/OpteeLib.inf
ArmPkg/Library/ArmTransferListLib/ArmTransferListLib.inf
ArmPkg/Library/ArmFfaLib/ArmFfaPeiLib.inf
ArmPkg/Library/ArmFfaLib/ArmFfaDxeLib.inf
ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf
ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.inf
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf

View File

@ -24,7 +24,7 @@
[Packages]
MdePkg/MdePkg.dec
ArmPkg/ArmPkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
ArmSmcLib
@ -35,11 +35,11 @@
HobLib
[Pcd]
gArmTokenSpaceGuid.PcdFfaLibConduitSmc
gArmTokenSpaceGuid.PcdFfaTxBuffer
gArmTokenSpaceGuid.PcdFfaRxBuffer
gArmTokenSpaceGuid.PcdFfaTxRxPageCount
gArmTokenSpaceGuid.PcdFfaExitBootEventRegistered
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaLibConduitSmc
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaTxBuffer
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaRxBuffer
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaTxRxPageCount
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaExitBootEventRegistered
[Guids]
gArmFfaRxTxBufferInfoGuid

View File

@ -24,7 +24,7 @@
[Packages]
MdePkg/MdePkg.dec
ArmPkg/ArmPkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
ArmSmcLib
@ -35,11 +35,11 @@
HobLib
[Pcd]
gArmTokenSpaceGuid.PcdFfaLibConduitSmc
gArmTokenSpaceGuid.PcdFfaTxBuffer
gArmTokenSpaceGuid.PcdFfaRxBuffer
gArmTokenSpaceGuid.PcdFfaTxRxPageCount
gArmTokenSpaceGuid.PcdFfaExitBootEventRegistered
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaLibConduitSmc
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaTxBuffer
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaRxBuffer
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaTxRxPageCount
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaExitBootEventRegistered
[Guids]
gArmFfaRxTxBufferInfoGuid

View File

@ -23,7 +23,7 @@
[Packages]
MdePkg/MdePkg.dec
ArmPkg/ArmPkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
ArmSmcLib
@ -33,4 +33,4 @@
DebugLib
[Pcd]
gArmTokenSpaceGuid.PcdFfaLibConduitSmc
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaLibConduitSmc

View File

@ -23,7 +23,7 @@
[Packages]
MdePkg/MdePkg.dec
ArmPkg/ArmPkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
ArmSmcLib
@ -33,5 +33,5 @@
DebugLib
[Pcd]
gArmTokenSpaceGuid.PcdFfaLibConduitSmc
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaLibConduitSmc

View File

@ -494,6 +494,8 @@
## Include/Guid/DelayedDispatch.h
gEfiDelayedDispatchTableGuid = { 0x4b733449, 0x8eff, 0x488c, { 0x92, 0x1a, 0x15, 0x4a, 0xda, 0x25, 0x18, 0x07 }}
gArmFfaRxTxBufferInfoGuid = { 0x96fd3d26, 0x6fb1, 0x11ef, { 0x8c, 0x11, 0xf3, 0xc9, 0xc5, 0x02, 0x31, 0xab } }
[Ppis]
## Include/Ppi/FirmwareVolumeShadowPpi.h
gEdkiiPeiFirmwareVolumeShadowPpiGuid = { 0x7dfe756c, 0xed8d, 0x4d77, {0x9e, 0xc4, 0x39, 0x9a, 0x8a, 0x81, 0x51, 0x16 } }
@ -2281,6 +2283,12 @@
# @Prompt The value is use for Usb Network rate limiting supported.
gEfiMdeModulePkgTokenSpaceGuid.PcdUsbNetworkRateLimitingFactor|100|UINT32|0x10000028
## Define the conduit to use in ArmFfalib.
# Default PcdFfaLibConduitSmc == TRUE, conduit = SMC
# If PcdFfaLibConduitSvc == FALSE, conduit = SVC
# @Prompt Conduit to use in ArmFfaLib.
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaLibConduitSmc|TRUE|BOOLEAN|0x10000029
[PcdsPatchableInModule]
## Specify memory size with page number for PEI code when
# Loading Module at Fixed Address feature is enabled.
@ -2359,5 +2367,21 @@
# @Prompt 64bit VPD base address.
gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress64|0x0|UINT64|0x00030006
## This dynamic PCD holds the address of the FFA TX buffer.
# @Prompt FFA TX Buffer Address
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaTxBuffer|0x00|UINT64|0x00030009
## This dynamic PCD holds the address of the FFA RX buffer.
# @Prompt FFA RX Buffer Address
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaRxBuffer|0x00|UINT64|0x0003000A
## This dynamic PCD holds the number of pages for the FFA TX/RX buffer.
# @Prompt FFA TX/RX Buffer Page Count
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaTxRxPageCount|1|UINT64|0x0003000B
## This dynamic PCD holds the information if the FFA exit boot event is registered.
# @Prompt FFA Exit Boot Event Registered
gEfiMdeModulePkgTokenSpaceGuid.PcdFfaExitBootEventRegistered|FALSE|BOOLEAN|0x0003000C
[UserExtensions.TianoCore."ExtraFiles"]
MdeModulePkgExtra.uni

View File

@ -184,6 +184,8 @@
[LibraryClasses.ARM, LibraryClasses.AARCH64]
LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf
ArmSmcLib|MdePkg/Library/ArmSmcLib/ArmSmcLib.inf
ArmSvcLib|MdePkg/Library/ArmSvcLib/ArmSvcLib.inf
[LibraryClasses.EBC, LibraryClasses.RISCV64, LibraryClasses.LOONGARCH64]
LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf
@ -532,5 +534,11 @@
[Components.X64]
MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf
[Components.ARM, Components.AARCH64]
MdeModulePkg/Library/ArmFfaLib/ArmFfaPeiLib.inf
MdeModulePkg/Library/ArmFfaLib/ArmFfaDxeLib.inf
MdeModulePkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf
MdeModulePkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.inf
[BuildOptions]

View File

@ -86,11 +86,10 @@
[LibraryClasses.common.MM_CORE_STANDALONE]
HobLib|StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf
ArmFfaLib|ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
[LibraryClasses.AARCH64.MM_CORE_STANDALONE, LibraryClasses.ARM.MM_CORE_STANDALONE]
ArmFfaLib|ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf
ArmFfaLib|MdeModulePkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf
[LibraryClasses.common.MM_STANDALONE]
MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf