mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-27 07:15:20 +00:00

This patch adds two new compile time options to enable SME in TF-A: ENABLE_SME_FOR_NS and ENABLE_SME_FOR_SWD for use in non-secure and secure worlds respectively. Setting ENABLE_SME_FOR_NS=1 will enable SME for non-secure worlds and trap SME, SVE, and FPU/SIMD instructions in secure context. Setting ENABLE_SME_FOR_SWD=1 will disable these traps, but support for SME context management does not yet exist in SPM so building with SPD=spmd will fail. The existing ENABLE_SVE_FOR_NS and ENABLE_SVE_FOR_SWD options cannot be used with SME as it is a superset of SVE and will enable SVE and FPU/SIMD along with SME. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Iaaac9d22fe37b4a92315207891da848a8fd0ed73
26 lines
698 B
Makefile
26 lines
698 B
Makefile
#
|
|
# Copyright (c) 2021, ARM Limited and Contributors. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
ifneq (${ARCH},aarch64)
|
|
$(error "Error: SPMD is only supported on aarch64.")
|
|
endif
|
|
|
|
ifeq (${ENABLE_SME_FOR_NS},1)
|
|
$(error "Error: SPMD is not compatible with ENABLE_SME_FOR_NS")
|
|
endif
|
|
|
|
SPMD_SOURCES += $(addprefix services/std_svc/spmd/, \
|
|
${ARCH}/spmd_helpers.S \
|
|
spmd_pm.c \
|
|
spmd_main.c)
|
|
|
|
# Let the top-level Makefile know that we intend to include a BL32 image
|
|
NEED_BL32 := yes
|
|
|
|
# Enable dynamic memory mapping
|
|
# The SPMD component maps the SPMC DTB within BL31 virtual space.
|
|
PLAT_XLAT_TABLES_DYNAMIC := 1
|
|
$(eval $(call add_define,PLAT_XLAT_TABLES_DYNAMIC))
|