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
acfe5fb
StandaloneMmPkg: Introduce PI_MM_CPU_DRIVER_EP protocol.
LeviYeoReum Jan 25, 2024
e806eeb
ArmPkg/Library: Introduce ArmTransferListLib
LeviYeoReum Feb 21, 2024
9157258
StandaloneMm/Library: Remove Hob creation on Arm CoreHob Library
LeviYeoReum Feb 22, 2024
a50513a
ArmPkg/IndustryStandard: Change naming convention in ArmMmSvc.h and a…
LeviYeoReum Jul 30, 2024
8e397f2
StandaloneMm/Library: Apply transfer list boot protocol in StandaloneMm
LeviYeoReum Aug 21, 2024
d0f3b06
ArmPkg/IndustryStandard: Update ArmFfaSvc.h
LeviYeoReum Jul 30, 2024
5a9f457
ArmPkg/IndustryStandard: Introduce ArmFfaBootInfo.h
LeviYeoReum Jul 30, 2024
fcf1a9c
ArmPkg: Add FF-A partition information header
LeviYeoReum Aug 5, 2024
6c5679c
ArmPkg: Add FF-A related dynamic Pcd and Guid
LeviYeoReum Aug 5, 2024
303bb4a
ArmPkg: Remove PcdFfaEnabled
LeviYeoReum Aug 6, 2024
cfb8dc0
ArmPkg: Add ArmFfaLib.h
LeviYeoReum Aug 5, 2024
1788a1e
ArmPkg: Add ArmFfaLib used in Dxe driver
LeviYeoReum Aug 5, 2024
7ae441b
ArmPkg: Add ArmFfaLib used in PEIM
LeviYeoReum Aug 5, 2024
e97d193
ArmPkg: Add ArmFfaLib used in StandaloneMm
LeviYeoReum Sep 20, 2024
a56bfc8
ArmPkg/Library: Update StandaloneMmuLib with FF-A v1.2 with page gran…
LeviYeoReum Aug 20, 2024
07f53eb
StandaloneMm/Library: Apply FF-A v1.2 in StandaloneMm
LeviYeoReum Aug 20, 2024
8cbc45b
ArmPkg/MmCommunicationDxe: Mmcommunication via FF-A
LeviYeoReum Aug 5, 2024
1cd19a9
ArmPkg/MmCommunicationPei: Mmcommunication via FF-A
LeviYeoReum Aug 6, 2024
cf5c78e
StandaloneMmPkg: Fix build failure of StandaloneMm in Arm.
LeviYeoReum Aug 29, 2024
4eedf5d
StandaloneMmCore: Change log level when mCommunicationBuffer is NULL
LeviYeoReum Sep 19, 2024
3661205
ArmPkg: Add StandaloneMm stack size Pcd
LeviYeoReum Mar 14, 2024
c84b3c4
StandaloneMmPkg: Apply embedded stack in StandaloneMmEntryPoint
LeviYeoReum Aug 21, 2024
016efe1
StandaloneMmPkg: Move sanity check for comm buffer to entrypoint
LeviYeoReum Oct 11, 2024
01f8770
StandaloneMmPkg: remove per-cpu feature on StandaloneMm
LeviYeoReum Oct 11, 2024
4758488
StandaloneMmPkg: introduce StandaloneMmExtractGuidedSectionLib
LeviYeoReum Sep 26, 2024
dc4edea
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 } }

[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