Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StandaloneMm: Remove hob creation in Arm and Support FF-A v1.2 #6116

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
51f66e1
StandaloneMmPkg: Simplify returning event complete values
LeviYeoReum Jan 26, 2024
313e56b
StandaloneMmPkg: Introduce PI_MM_CPU_DRIVER_EP protocol.
LeviYeoReum Jan 25, 2024
c182ec8
ArmPkg/Library: Introduce ArmTransferListLib
LeviYeoReum Feb 21, 2024
cbd46de
StandaloneMm/Library: Remove Hob creation on Arm CoreHob Library
LeviYeoReum Feb 22, 2024
01069ce
ArmPkg/IndustryStandard: Change naming convention in ArmMmSvc.h
LeviYeoReum Jul 30, 2024
e64111b
ArmPkg/StandaloneMmMmuLib: Introduce a SPM_MM status helper fucntion
LeviYeoReum Dec 23, 2024
f01b6a1
StandaloneMm/Library: Apply transfer list boot protocol in StandaloneMm
LeviYeoReum Aug 21, 2024
b028e80
ArmPkg/IndustryStandard: Update ArmFfaSvc.h
LeviYeoReum Jul 30, 2024
a5ff1d7
ArmPkg/IndustryStandard: Introduce ArmFfaBootInfo.h
LeviYeoReum Jul 30, 2024
0124003
ArmPkg: Add FF-A partition information header
LeviYeoReum Aug 5, 2024
0a39992
ArmPkg: Add FF-A related dynamic Pcd and Guid
LeviYeoReum Aug 5, 2024
29c196e
ArmPkg: Remove PcdFfaEnabled
LeviYeoReum Aug 6, 2024
1e8ab22
ArmPkg: Add ArmFfaLib.h
LeviYeoReum Aug 5, 2024
72b2f6f
ArmPkg: Add ArmFfaLib used in Dxe driver
LeviYeoReum Aug 5, 2024
3c30b90
ArmPkg: Add ArmFfaLib used in PEIM
LeviYeoReum Aug 5, 2024
6dde4d0
ArmPkg: Add ArmFfaLib used in StandaloneMm
LeviYeoReum Sep 20, 2024
dcae2b1
ArmPkg/Library: Update StandaloneMmuLib with FF-A v1.2 with page gran…
LeviYeoReum Aug 20, 2024
9155e5c
StandaloneMm/Library: Apply FF-A v1.2 in StandaloneMm
LeviYeoReum Aug 20, 2024
ef55488
ArmPkg/MmCommunicationDxe: Mmcommunication via FF-A
LeviYeoReum Aug 5, 2024
eb13018
ArmPkg/MmCommunicationPei: Mmcommunication via FF-A
LeviYeoReum Aug 6, 2024
7d70812
StandaloneMmCore: Change log level when mCommunicationBuffer is NULL
LeviYeoReum Sep 19, 2024
0cdae76
ArmPkg: Add StandaloneMm stack size Pcd
LeviYeoReum Mar 14, 2024
714a355
StandaloneMmPkg: Apply embedded stack in StandaloneMmEntryPoint
LeviYeoReum Aug 21, 2024
0fb3622
StandaloneMmPkg: Move sanity check for comm buffer to entrypoint
LeviYeoReum Oct 11, 2024
46b0d97
StandaloneMmPkg: remove per-cpu feature on StandaloneMm
LeviYeoReum Oct 11, 2024
67969f5
StandaloneMmPkg: introduce StandaloneMmExtractGuidedSectionLib
LeviYeoReum Sep 26, 2024
191a023
StandaloneMmPkg: move core entry point lib and cpu driver to ArmPkg
LeviYeoReum Nov 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion ArmPkg/ArmPkg.ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@
"EmbeddedPkg/EmbeddedPkg.dec",
"MdeModulePkg/MdeModulePkg.dec",
"MdePkg/MdePkg.dec",
"ShellPkg/ShellPkg.dec"
"ShellPkg/ShellPkg.dec",
"StandaloneMmPkg/StandaloneMmPkg.dec"
],
# For host based unit tests
"AcceptableDependencies-HOST_APPLICATION":[
Expand Down
38 changes: 31 additions & 7 deletions ArmPkg/ArmPkg.dec
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,18 @@
#
StandaloneMmMmuLib|Include/Library/StandaloneMmMmuLib.h

## @libraryclass Provides an interface for a Arm Transfer List.
#
ArmTransferListLib|Include/Library/ArmTransferListLib.h

## @libraryclass Provides an interface for a Arm FF-A ABI.
#
ArmFfaLib|Include/Library/ArmFfaLib.h
LeviYeoReum marked this conversation as resolved.
Show resolved Hide resolved

## @libraryclass Defines a set of interfaces for the MM core entrypoint for
## AArch64 and ARM.
StandaloneMmCoreEntryPoint|Include/Library/ArmStandaloneMmCoreEntryPoint.h

[Guids.common]
gArmTokenSpaceGuid = { 0xBB11ECFE, 0x820F, 0x4968, { 0xBB, 0xA6, 0xF7, 0x6A, 0xFE, 0x30, 0x25, 0x96 } }

Expand All @@ -102,6 +114,8 @@

gArmMmuReplaceLiveTranslationEntryFuncGuid = { 0xa8b50ff3, 0x08ec, 0x4dd3, {0xbf, 0x04, 0x28, 0xbf, 0x71, 0x75, 0xc7, 0x4a} }

gArmFfaRxTxBufferInfoGuid = { 0x96fd3d26, 0x6fb1, 0x11ef, { 0x8c, 0x11, 0xf3, 0xc9, 0xc5, 0x02, 0x31, 0xab } }
LeviYeoReum marked this conversation as resolved.
Show resolved Hide resolved

[Protocols.common]
## Arm System Control and Management Interface(SCMI) Base protocol
## ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h
Expand All @@ -116,6 +130,8 @@
## ArmPkg/Include/Protocol/ArmScmiPerformanceProtocol.h
gArmScmiPerformanceProtocolGuid = { 0x9b8ba84, 0x3dd3, 0x49a6, { 0xa0, 0x5a, 0x31, 0x34, 0xa5, 0xf0, 0x7b, 0xad } }

gEdkiiPiMmCpuDriverEpProtocolGuid = { 0x6ecbd5a1, 0xc0f8, 0x4702, { 0x83, 0x01, 0x4f, 0xc2, 0xc5, 0x47, 0x0a, 0x51 }}

[Ppis]
## Include/Ppi/ArmMpCoreInfo.h
gArmMpCoreInfoPpiGuid = { 0x6847cc74, 0xe9ec, 0x4f8f, {0xa2, 0x9d, 0xab, 0x44, 0xe7, 0x54, 0xa8, 0xfc} }
Expand Down Expand Up @@ -146,13 +162,6 @@
# hardware coherency (i.e., no virtualization or cache coherent DMA)
gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride|FALSE|BOOLEAN|0x00000043

[PcdsFeatureFlag.AARCH64, PcdsFeatureFlag.ARM]
## Used to select method for requesting services from S-EL1.<BR><BR>
# TRUE - Selects FF-A calls for communication between S-EL0 and SPMC.<BR>
# FALSE - Selects SVC calls for communication between S-EL0 and SPMC.<BR>
# @Prompt Enable FF-A support.
gArmTokenSpaceGuid.PcdFfaEnable|FALSE|BOOLEAN|0x0000005B

[PcdsFixedAtBuild.common]
gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE|BOOLEAN|0x00000006

Expand All @@ -179,6 +188,11 @@
gArmTokenSpaceGuid.PcdHypFvBaseAddress|0|UINT32|0x0000003C
gArmTokenSpaceGuid.PcdHypFvSize|0|UINT32|0x0000003D

#
# ARM StanaloneMm Stack size.
#
gArmTokenSpaceGuid.PcdStMmStackSize|0x2000|UINT32|0x0000005D

# Use ClusterId + CoreId to identify the PrimaryCore
gArmTokenSpaceGuid.PcdArmPrimaryCoreMask|0xF03|UINT32|0x00000031
# The Primary Core is ClusterId[0] & CoreId[0]
Expand Down Expand Up @@ -313,6 +327,12 @@
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
Expand Down Expand Up @@ -403,3 +423,7 @@
# 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
24 changes: 24 additions & 0 deletions ArmPkg/ArmPkg.dsc
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
ArmSvcLib|ArmPkg/Library/ArmSvcLib/ArmSvcLib.inf
ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
OpteeLib|ArmPkg/Library/OpteeLib/OpteeLib.inf
Expand All @@ -86,6 +87,8 @@

ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
ArmTransferListLib|ArmPkg/Library/ArmTransferListLib/ArmTransferListLib.inf
ArmFfaLib|ArmPkg/Library/ArmFfaLib/ArmFfaDxeLib.inf

ArmMtlLib|ArmPkg/Library/ArmMtlNullLib/ArmMtlNullLib.inf

Expand All @@ -101,6 +104,16 @@
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
ArmFfaLib|ArmPkg/Library/ArmFfaLib/ArmFfaPeiLib.inf

[LibraryClasses.common.MM_CORE_STANDALONE]
StandaloneMmCoreEntryPoint|ArmPkg/Library/ArmStandaloneMmCoreEntryPoint/ArmStandaloneMmCoreEntryPoint.inf
HobLib|StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.inf

[LibraryClasses.common.MM_STANDALONE]
StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
HobLib|StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.inf
MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLib.inf

[Components.common]
ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
Expand Down Expand Up @@ -133,6 +146,11 @@
ArmPkg/Library/ArmSmcLibNull/ArmSmcLibNull.inf
ArmPkg/Library/ArmSvcLib/ArmSvcLib.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

Expand All @@ -157,6 +175,12 @@

ArmPkg/Drivers/MmCommunicationPei/MmCommunicationPei.inf

[Components.common.MM_CORE_STANALONE]
ArmPkg/Library/ArmStandaloneMmCoreEntryPoint/ArmStandaloneMmCoreEntryPoint.inf

[Components.common.MM_STANDALONE]
ArmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf

[Components.AARCH64]
ArmPkg/Drivers/ArmCrashDumpDxe/ArmCrashDumpDxe.inf
ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf
Expand Down
Loading
Loading