From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by mx.groups.io with SMTP id smtpd.web12.15484.1621232623724470014 for ; Sun, 16 May 2021 23:23:44 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=jQbXPWkP; spf=pass (domain: linaro.org, ip: 209.85.208.54, mailfrom: etienne.carriere@linaro.org) Received: by mail-ed1-f54.google.com with SMTP id s6so5401533edu.10 for ; Sun, 16 May 2021 23:23:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UAUczyO8PNAzqDlPkdn+60QHVvnPy+eowzFeCU4lsU8=; b=jQbXPWkPg/RK+c4YnVpf+IcyzhHUAKFx/bd6lyVrOmaN8ijuibavhF6W3npJ5lvMXV xK0m93QgOoqAo1ZzGKaJ/eFDfjUNj44j1onarK9q8uIyWmnBNJHK8yW4jK4Lc2+ZQ9Aa Edgm4Zf6mz4qP6u2IZucoWEvMqWhR0FSUinvHK+38fhBjZhcpYr6xaZL/D+LghIzj/On Jspgk+WLrG4krkrGurajq8wuGhOKXBASlXPnGsH57Jsg+r2NyT6+w0ZvrLPycqbjjBNW rN/5ureqUFZPd/wB0bdtLpZIhd6sQTqBrMBBBrRr5XEIO/bI25Mav4CMO5bJSnMW7MHd J4IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UAUczyO8PNAzqDlPkdn+60QHVvnPy+eowzFeCU4lsU8=; b=ayZWy0uuZnLy6/GKh784XyaaWNB8q2c2bemxdLHRMazL6SiAgVMB8JNDJ/i/umn/pE JVwR3Ta6yZfVrRRxeC+gfmppWgc+z9SO4vy5nOrlYvAO+GVkhOcWRPquqlIVGIr3ysLN DUq2ksEtVcz6qToPafXuZpaYp2umrBbM3Pm60toagyzIu8YR4rN9nrOMeN2d3KpFBc/d 6cdHRLtOG8dfjoacd5LGMgRPBSb7bzH4Fb5rfPJQDIUef/PgAdVLBn69FE0TzQ6pCrmd 3yABWev2XA9FZJfCPkVbeaQWCBKi1n0nHgSXT5cuFfpNRJn5XfG5foEQDC+herdn6N2d GL7g== X-Gm-Message-State: AOAM530i/ABgbe22luqVXel0zvFOukRJsjTlX502qTszIcEkCqq7xfaV SCKQ1Qb6IhwFzu6/x6mXIBxc1NOiT8p15AMakkCWNFForESpTg== X-Google-Smtp-Source: ABdhPJwuhsLjvPVDhL5yg4akPKv+nk11Dcu0tPyrqBBdqLCKYYYZZgNCGGUBesDGCqlpzAOcHc97Ijd4iC9Kym2HltU= X-Received: by 2002:a05:6402:19b9:: with SMTP id o25mr64284215edz.192.1621232622068; Sun, 16 May 2021 23:23:42 -0700 (PDT) MIME-Version: 1.0 References: <20210517054911.30665-1-etienne.carriere@linaro.org> <20210517054911.30665-5-etienne.carriere@linaro.org> In-Reply-To: <20210517054911.30665-5-etienne.carriere@linaro.org> From: "Etienne Carriere" Date: Mon, 17 May 2021 08:23:31 +0200 Message-ID: Subject: Re: [PATCH v2 5/5] StandaloneMmPkg: build for 32bit arm machines To: devel@edk2.groups.io Cc: Achin Gupta , Ard Biesheuvel , Jiewen Yao , Leif Lindholm , Sami Mujawar , Sughosh Ganu Content-Type: text/plain; charset="UTF-8" Dear all, For info, Tested on Qemu/arm and stm32mp1 (both armv7-a) and on 64bit Qemu/AArch64. I used OP-TEE 3.13.0 to host the StMM instance. Regards, Etienne On Mon, 17 May 2021 at 07:50, Etienne Carriere wrote: > > 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. > > Cc: Achin Gupta > Cc: Ard Biesheuvel > Cc: Jiewen Yao > Cc: Leif Lindholm > Cc: Sami Mujawar > Cc: Sughosh Ganu > Signed-off-by: Etienne Carriere > --- > Changes since v1: > - ARM_SMC_ID_MM_COMMUNICATE 32b/64b agnostic helper ID is defined > in ArmStdSmc.h (see 1st commit in this series) instead of being > local to EventHandle.c. > - Fix void occurrence to VOID. > - Fix path in StandaloneMmPkg/StandaloneMmPkg.dsc > --- > StandaloneMmPkg/Core/StandaloneMmCore.inf | 2 +- > StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/EventHandle.c | 5 +++-- > StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.c | 2 +- > StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.h | 0 > StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.inf | 0 > StandaloneMmPkg/Include/Library/{AArch64 => Arm}/StandaloneMmCoreEntryPoint.h | 0 > StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/CreateHobList.c | 2 +- > StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/SetPermissions.c | 2 +- > StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/StandaloneMmCoreEntryPoint.c | 16 ++++++++-------- > StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf | 14 +++++++------- > StandaloneMmPkg/Library/StandaloneMmCoreHobLib/{AArch64 => Arm}/StandaloneMmCoreHobLib.c | 0 > StandaloneMmPkg/Library/StandaloneMmCoreHobLib/{AArch64 => Arm}/StandaloneMmCoreHobLibInternal.c | 0 > StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf | 8 ++++---- > StandaloneMmPkg/Library/StandaloneMmMemLib/{AArch64/StandaloneMmMemLibInternal.c => ArmStandaloneMmMemLibInternal.c} | 9 ++++++++- > StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf | 6 +++--- > StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf | 2 +- > StandaloneMmPkg/StandaloneMmPkg.dsc | 10 +++++----- > 17 files changed, 43 insertions(+), 35 deletions(-) > > diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.inf b/StandaloneMmPkg/Core/StandaloneMmCore.inf > index 87bf6e9440..56042b7b39 100644 > --- a/StandaloneMmPkg/Core/StandaloneMmCore.inf > +++ b/StandaloneMmPkg/Core/StandaloneMmCore.inf > @@ -17,7 +17,7 @@ > PI_SPECIFICATION_VERSION = 0x00010032 > ENTRY_POINT = StandaloneMmMain > > -# VALID_ARCHITECTURES = IA32 X64 AARCH64 > +# VALID_ARCHITECTURES = IA32 X64 AARCH64 ARM > > [Sources] > StandaloneMmCore.c > diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/EventHandle.c b/StandaloneMmPkg/Drivers/StandaloneMmCpu/EventHandle.c > similarity index 95% > rename from StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/EventHandle.c > rename to StandaloneMmPkg/Drivers/StandaloneMmCpu/EventHandle.c > index 63fbe26642..165d696f99 100644 > --- a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/EventHandle.c > +++ b/StandaloneMmPkg/Drivers/StandaloneMmCpu/EventHandle.c > @@ -2,6 +2,7 @@ > > Copyright (c) 2016 HP Development Company, L.P. > Copyright (c) 2016 - 2021, Arm Limited. All rights reserved. > + Copyright (c) 2021, Linaro Limited > > SPDX-License-Identifier: BSD-2-Clause-Patent > > @@ -92,8 +93,8 @@ PiMmStandaloneArmTfCpuDriverEntry ( > // receipt of a synchronous MM request. Use the Event ID to distinguish > // between synchronous and asynchronous events. > // > - if ((ARM_SMC_ID_MM_COMMUNICATE_AARCH64 != EventId) && > - (ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64 != EventId)) { > + if ((ARM_SMC_ID_MM_COMMUNICATE != EventId) && > + (ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ != EventId)) { > DEBUG ((DEBUG_INFO, "UnRecognized Event - 0x%x\n", EventId)); > return EFI_INVALID_PARAMETER; > } > diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.c > similarity index 96% > rename from StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c > rename to StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.c > index d4590bcd19..10097f792f 100644 > --- a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c > +++ b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.c > @@ -10,7 +10,7 @@ > > #include > #include > -#include > +#include > #include > #include > #include > diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.h b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.h > similarity index 100% > rename from StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.h > rename to StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.h > diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.inf b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf > similarity index 100% > rename from StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.inf > rename to StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf > diff --git a/StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h b/StandaloneMmPkg/Include/Library/Arm/StandaloneMmCoreEntryPoint.h > similarity index 100% > rename from StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h > rename to StandaloneMmPkg/Include/Library/Arm/StandaloneMmCoreEntryPoint.h > diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c > similarity index 97% > rename from StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c > rename to StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c > index 4d4cf3d5ff..85f8194687 100644 > --- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c > +++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c > @@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #include > #include > > -#include > +#include > #include > #include > #include > diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions.c > similarity index 96% > rename from StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c > rename to StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions.c > index 4a380df4a6..cd4b90823e 100644 > --- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c > +++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions.c > @@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #include > #include > > -#include > +#include > #include > #include > #include > diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c > similarity index 94% > rename from StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c > rename to StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c > index b445d6942e..49cf51a789 100644 > --- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c > +++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c > @@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > #include > > -#include > +#include > > #include > #include > @@ -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) { > diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf > index 4fa426f58e..1762586cfa 100644 > --- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf > +++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf > @@ -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] > diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/AArch64/StandaloneMmCoreHobLib.c b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLib.c > similarity index 100% > rename from StandaloneMmPkg/Library/StandaloneMmCoreHobLib/AArch64/StandaloneMmCoreHobLib.c > rename to StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLib.c > diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/AArch64/StandaloneMmCoreHobLibInternal.c b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLibInternal.c > similarity index 100% > rename from StandaloneMmPkg/Library/StandaloneMmCoreHobLib/AArch64/StandaloneMmCoreHobLibInternal.c > rename to StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLibInternal.c > diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf > index a2559920e8..34ed536480 100644 > --- a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf > +++ b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf > @@ -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 > diff --git a/StandaloneMmPkg/Library/StandaloneMmMemLib/AArch64/StandaloneMmMemLibInternal.c b/StandaloneMmPkg/Library/StandaloneMmMemLib/ArmStandaloneMmMemLibInternal.c > similarity index 86% > rename from StandaloneMmPkg/Library/StandaloneMmMemLib/AArch64/StandaloneMmMemLibInternal.c > rename to StandaloneMmPkg/Library/StandaloneMmMemLib/ArmStandaloneMmMemLibInternal.c > index 4124959e04..fa7df46413 100644 > --- a/StandaloneMmPkg/Library/StandaloneMmMemLib/AArch64/StandaloneMmMemLibInternal.c > +++ b/StandaloneMmPkg/Library/StandaloneMmMemLib/ArmStandaloneMmMemLibInternal.c > @@ -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 > diff --git a/StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf b/StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf > index 062b0d7a11..b29d97a746 100644 > --- a/StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf > +++ b/StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf > @@ -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 > diff --git a/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf b/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf > index a2a059c5d6..ffb2a6d083 100644 > --- a/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf > +++ b/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf > @@ -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 > # > # > > diff --git a/StandaloneMmPkg/StandaloneMmPkg.dsc b/StandaloneMmPkg/StandaloneMmPkg.dsc > index 0c45df95e2..772af1b72b 100644 > --- a/StandaloneMmPkg/StandaloneMmPkg.dsc > +++ b/StandaloneMmPkg/StandaloneMmPkg.dsc > @@ -20,7 +20,7 @@ > PLATFORM_VERSION = 1.0 > DSC_SPECIFICATION = 0x00010011 > OUTPUT_DIRECTORY = Build/StandaloneMm > - SUPPORTED_ARCHITECTURES = AARCH64|X64 > + SUPPORTED_ARCHITECTURES = AARCH64|X64|ARM > BUILD_TARGETS = DEBUG|RELEASE > SKUID_IDENTIFIER = DEFAULT > > @@ -60,7 +60,7 @@ > StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf > VariableMmDependency|StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf > > -[LibraryClasses.AARCH64] > +[LibraryClasses.AARCH64, LibraryClasses.ARM] > ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf > StandaloneMmMmuLib|ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf > ArmSvcLib|ArmPkg/Library/ArmSvcLib/ArmSvcLib.inf > @@ -118,8 +118,8 @@ > StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf > StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf > > -[Components.AARCH64] > - StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.inf > +[Components.AARCH64, Components.ARM] > + StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf > StandaloneMmPkg/Library/StandaloneMmPeCoffExtraActionLib/StandaloneMmPeCoffExtraActionLib.inf > > ################################################################################################### > @@ -131,7 +131,7 @@ > # module style (EDK or EDKII) specified in [Components] section. > # > ################################################################################################### > -[BuildOptions.AARCH64] > +[BuildOptions.AARCH64, BuildOptions.ARM] > GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 -march=armv8-a+nofp -mstrict-align > GCC:*_*_*_CC_FLAGS = -mstrict-align > > -- > 2.17.1 >