StandaloneMmPkg: build for 32bit arm machines
This change allows to build StandaloneMmPkg components for 32bit Arm StandaloneMm firmware. This change mainly moves AArch64/ source files to Arm/ side directory for several components: StandaloneMmCpu, StandaloneMmCoreEntryPoint and StandaloneMmMemLib. The source file is built for both 32b and 64b Arm targets. Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
committed by
mergify[bot]
parent
b7f0226a46
commit
a776bbabd9
@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#include <Guid/MmramMemoryReserve.h>
|
||||
#include <Guid/MpInformation.h>
|
||||
|
||||
#include <Library/AArch64/StandaloneMmCoreEntryPoint.h>
|
||||
#include <Library/Arm/StandaloneMmCoreEntryPoint.h>
|
||||
#include <Library/ArmMmuLib.h>
|
||||
#include <Library/ArmSvcLib.h>
|
||||
#include <Library/DebugLib.h>
|
@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#include <Guid/MmramMemoryReserve.h>
|
||||
#include <Guid/MpInformation.h>
|
||||
|
||||
#include <Library/AArch64/StandaloneMmCoreEntryPoint.h>
|
||||
#include <Library/Arm/StandaloneMmCoreEntryPoint.h>
|
||||
#include <Library/ArmMmuLib.h>
|
||||
#include <Library/ArmSvcLib.h>
|
||||
#include <Library/DebugLib.h>
|
@@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
#include <PiMm.h>
|
||||
|
||||
#include <Library/AArch64/StandaloneMmCoreEntryPoint.h>
|
||||
#include <Library/Arm/StandaloneMmCoreEntryPoint.h>
|
||||
|
||||
#include <PiPei.h>
|
||||
#include <Guid/MmramMemoryReserve.h>
|
||||
@@ -182,13 +182,13 @@ DelegatedEventLoop (
|
||||
}
|
||||
|
||||
if (FfaEnabled) {
|
||||
EventCompleteSvcArgs->Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64;
|
||||
EventCompleteSvcArgs->Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP;
|
||||
EventCompleteSvcArgs->Arg1 = 0;
|
||||
EventCompleteSvcArgs->Arg2 = 0;
|
||||
EventCompleteSvcArgs->Arg3 = ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64;
|
||||
EventCompleteSvcArgs->Arg3 = ARM_SVC_ID_SP_EVENT_COMPLETE;
|
||||
EventCompleteSvcArgs->Arg4 = SvcStatus;
|
||||
} else {
|
||||
EventCompleteSvcArgs->Arg0 = ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64;
|
||||
EventCompleteSvcArgs->Arg0 = ARM_SVC_ID_SP_EVENT_COMPLETE;
|
||||
EventCompleteSvcArgs->Arg1 = SvcStatus;
|
||||
}
|
||||
}
|
||||
@@ -273,13 +273,13 @@ InitArmSvcArgs (
|
||||
)
|
||||
{
|
||||
if (FeaturePcdGet (PcdFfaEnable)) {
|
||||
InitMmFoundationSvcArgs->Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64;
|
||||
InitMmFoundationSvcArgs->Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP;
|
||||
InitMmFoundationSvcArgs->Arg1 = 0;
|
||||
InitMmFoundationSvcArgs->Arg2 = 0;
|
||||
InitMmFoundationSvcArgs->Arg3 = ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64;
|
||||
InitMmFoundationSvcArgs->Arg3 = ARM_SVC_ID_SP_EVENT_COMPLETE;
|
||||
InitMmFoundationSvcArgs->Arg4 = *Ret;
|
||||
} else {
|
||||
InitMmFoundationSvcArgs->Arg0 = ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64;
|
||||
InitMmFoundationSvcArgs->Arg0 = ARM_SVC_ID_SP_EVENT_COMPLETE;
|
||||
InitMmFoundationSvcArgs->Arg1 = *Ret;
|
||||
}
|
||||
}
|
||||
@@ -395,7 +395,7 @@ _ModuleEntryPoint (
|
||||
//
|
||||
ProcessModuleEntryPointList (HobStart);
|
||||
|
||||
DEBUG ((DEBUG_INFO, "Shared Cpu Driver EP 0x%lx\n", (UINT64) CpuDriverEntryPoint));
|
||||
DEBUG ((DEBUG_INFO, "Shared Cpu Driver EP %p\n", (VOID *) CpuDriverEntryPoint));
|
||||
|
||||
finish:
|
||||
if (Status == RETURN_UNSUPPORTED) {
|
@@ -21,10 +21,10 @@
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF EBC (EBC is for build only)
|
||||
#
|
||||
|
||||
[Sources.AARCH64]
|
||||
AArch64/StandaloneMmCoreEntryPoint.c
|
||||
AArch64/SetPermissions.c
|
||||
AArch64/CreateHobList.c
|
||||
[Sources.AARCH64, Sources.ARM]
|
||||
Arm/StandaloneMmCoreEntryPoint.c
|
||||
Arm/SetPermissions.c
|
||||
Arm/CreateHobList.c
|
||||
|
||||
[Sources.X64]
|
||||
X64/StandaloneMmCoreEntryPoint.c
|
||||
@@ -34,14 +34,14 @@
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
StandaloneMmPkg/StandaloneMmPkg.dec
|
||||
|
||||
[Packages.AARCH64]
|
||||
[Packages.ARM, Packages.AARCH64]
|
||||
ArmPkg/ArmPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
BaseLib
|
||||
DebugLib
|
||||
|
||||
[LibraryClasses.AARCH64]
|
||||
[LibraryClasses.ARM, LibraryClasses.AARCH64]
|
||||
StandaloneMmMmuLib
|
||||
ArmSvcLib
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
gEfiStandaloneMmNonSecureBufferGuid
|
||||
gEfiArmTfCpuDriverEpDescriptorGuid
|
||||
|
||||
[FeaturePcd.AARCH64]
|
||||
[FeaturePcd.ARM, FeaturePcd.AARCH64]
|
||||
gArmTokenSpaceGuid.PcdFfaEnable
|
||||
|
||||
[BuildOptions]
|
||||
|
@@ -22,7 +22,7 @@
|
||||
LIBRARY_CLASS = HobLib|MM_CORE_STANDALONE
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = X64 AARCH64
|
||||
# VALID_ARCHITECTURES = X64 AARCH64 ARM
|
||||
#
|
||||
[Sources.common]
|
||||
Common.c
|
||||
@@ -30,9 +30,9 @@
|
||||
[Sources.X64]
|
||||
X64/StandaloneMmCoreHobLib.c
|
||||
|
||||
[Sources.AARCH64]
|
||||
AArch64/StandaloneMmCoreHobLib.c
|
||||
AArch64/StandaloneMmCoreHobLibInternal.c
|
||||
[Sources.AARCH64, Sources.ARM]
|
||||
Arm/StandaloneMmCoreHobLib.c
|
||||
Arm/StandaloneMmCoreHobLibInternal.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
|
@@ -20,6 +20,13 @@
|
||||
//
|
||||
extern EFI_PHYSICAL_ADDRESS mMmMemLibInternalMaximumSupportAddress;
|
||||
|
||||
#ifdef MDE_CPU_AARCH64
|
||||
#define ARM_PHYSICAL_ADDRESS_BITS 36
|
||||
#endif
|
||||
#ifdef MDE_CPU_ARM
|
||||
#define ARM_PHYSICAL_ADDRESS_BITS 32
|
||||
#endif
|
||||
|
||||
/**
|
||||
Calculate and save the maximum support address.
|
||||
|
||||
@@ -31,7 +38,7 @@ MmMemLibInternalCalculateMaximumSupportAddress (
|
||||
{
|
||||
UINT8 PhysicalAddressBits;
|
||||
|
||||
PhysicalAddressBits = 36;
|
||||
PhysicalAddressBits = ARM_PHYSICAL_ADDRESS_BITS;
|
||||
|
||||
//
|
||||
// Save the maximum support address in one global variable
|
@@ -28,7 +28,7 @@
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 AARCH64
|
||||
# VALID_ARCHITECTURES = IA32 X64 AARCH64 ARM
|
||||
#
|
||||
|
||||
[Sources.Common]
|
||||
@@ -37,8 +37,8 @@
|
||||
[Sources.IA32, Sources.X64]
|
||||
X86StandaloneMmMemLibInternal.c
|
||||
|
||||
[Sources.AARCH64]
|
||||
AArch64/StandaloneMmMemLibInternal.c
|
||||
[Sources.AARCH64, Sources.ARM]
|
||||
ArmStandaloneMmMemLibInternal.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
|
@@ -20,7 +20,7 @@
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = AARCH64
|
||||
# VALID_ARCHITECTURES = AARCH64|ARM
|
||||
#
|
||||
#
|
||||
|
||||
|
Reference in New Issue
Block a user