mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
ArmPkg: prepare 32bit ARM build of StandaloneMmPkg
Changes in ArmPkg to prepare building StandaloneMm firmware for 32bit Arm architectures. Adds ArmmmuStandaloneMmLib library to the list of the standard components build for ArmPkg on when ARM architectures. Changes path of source file AArch64/ArmMmuStandaloneMmLib.c and compile it for both 32bit and 64bit architectures. Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
parent
03e19e6bc8
commit
aee0098faf
@ -137,7 +137,7 @@
|
||||
# hardware coherency (i.e., no virtualization or cache coherent DMA)
|
||||
gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride|FALSE|BOOLEAN|0x00000043
|
||||
|
||||
[PcdsFeatureFlag.AARCH64]
|
||||
[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>
|
||||
|
@ -161,4 +161,6 @@
|
||||
[Components.AARCH64]
|
||||
ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
|
||||
ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
|
||||
|
||||
[Components.AARCH64, Components.ARM]
|
||||
ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
|
||||
|
@ -2,6 +2,7 @@
|
||||
File managing the MMU for ARMv8 architecture in S-EL0
|
||||
|
||||
Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.<BR>
|
||||
Copyright (c) 2021, Linaro Limited
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
@par Reference(s):
|
||||
@ -62,7 +63,7 @@ SendMemoryPermissionRequest (
|
||||
// for other Direct Request calls which are not atomic
|
||||
// We therefore check only for Direct Response by the
|
||||
// callee.
|
||||
if (SvcArgs->Arg0 == ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64) {
|
||||
if (SvcArgs->Arg0 == ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP) {
|
||||
// A Direct Response means FF-A success
|
||||
// Now check the payload for errors
|
||||
// The callee sends back the return value
|
||||
@ -164,13 +165,13 @@ GetMemoryPermissions (
|
||||
ZeroMem (&SvcArgs, sizeof (ARM_SVC_ARGS));
|
||||
if (FeaturePcdGet (PcdFfaEnable)) {
|
||||
// See [2], Section 10.2 FFA_MSG_SEND_DIRECT_REQ.
|
||||
SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64;
|
||||
SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ;
|
||||
SvcArgs.Arg1 = ARM_FFA_DESTINATION_ENDPOINT_ID;
|
||||
SvcArgs.Arg2 = 0;
|
||||
SvcArgs.Arg3 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
|
||||
SvcArgs.Arg3 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES;
|
||||
SvcArgs.Arg4 = BaseAddress;
|
||||
} else {
|
||||
SvcArgs.Arg0 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
|
||||
SvcArgs.Arg0 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES;
|
||||
SvcArgs.Arg1 = BaseAddress;
|
||||
SvcArgs.Arg2 = 0;
|
||||
SvcArgs.Arg3 = 0;
|
||||
@ -219,15 +220,15 @@ RequestMemoryPermissionChange (
|
||||
ZeroMem (&SvcArgs, sizeof (ARM_SVC_ARGS));
|
||||
if (FeaturePcdGet (PcdFfaEnable)) {
|
||||
// See [2], Section 10.2 FFA_MSG_SEND_DIRECT_REQ.
|
||||
SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64;
|
||||
SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ;
|
||||
SvcArgs.Arg1 = ARM_FFA_DESTINATION_ENDPOINT_ID;
|
||||
SvcArgs.Arg2 = 0;
|
||||
SvcArgs.Arg3 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64;
|
||||
SvcArgs.Arg3 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES;
|
||||
SvcArgs.Arg4 = BaseAddress;
|
||||
SvcArgs.Arg5 = EFI_SIZE_TO_PAGES (Length);
|
||||
SvcArgs.Arg6 = Permissions;
|
||||
} else {
|
||||
SvcArgs.Arg0 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64;
|
||||
SvcArgs.Arg0 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES;
|
||||
SvcArgs.Arg1 = BaseAddress;
|
||||
SvcArgs.Arg2 = EFI_SIZE_TO_PAGES (Length);
|
||||
SvcArgs.Arg3 = Permissions;
|
@ -16,14 +16,14 @@
|
||||
LIBRARY_CLASS = StandaloneMmMmuLib
|
||||
PI_SPECIFICATION_VERSION = 0x00010032
|
||||
|
||||
[Sources.AARCH64]
|
||||
AArch64/ArmMmuStandaloneMmLib.c
|
||||
[Sources]
|
||||
ArmMmuStandaloneMmLib.c
|
||||
|
||||
[Packages]
|
||||
ArmPkg/ArmPkg.dec
|
||||
MdePkg/MdePkg.dec
|
||||
|
||||
[FeaturePcd.AARCH64]
|
||||
[FeaturePcd.ARM, FeaturePcd.AARCH64]
|
||||
gArmTokenSpaceGuid.PcdFfaEnable
|
||||
|
||||
[LibraryClasses]
|
||||
|
Loading…
x
Reference in New Issue
Block a user