mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-08-16 01:17:01 +02:00
Add the support to save Nwd's floating point registers before switching to SEL0 and then restore it after coming out of it. Emit a warning message if SPM_MM is built with CTX_INCLUDE_FPREGS == 0 There is no need to save FP registers of SEL0 because secure partitions run to completion. This change is used to prevent context corruption if secure partition enabled and Nwd decide to use floating point registers. Signed-off-by: Nishant Sharma <nishant.sharma@arm.com> Change-Id: I1eea16ea2311a4f00a806ea72c118752821b9abb
35 lines
1004 B
Makefile
35 lines
1004 B
Makefile
#
|
|
# Copyright (c) 2017-2022, ARM Limited and Contributors. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
ifneq (${SPD},none)
|
|
$(error "Error: SPD and SPM_MM are incompatible build options.")
|
|
endif
|
|
ifneq (${ARCH},aarch64)
|
|
$(error "Error: SPM_MM is only supported on aarch64.")
|
|
endif
|
|
ifeq (${ENABLE_SVE_FOR_NS},1)
|
|
$(error "Error: SPM_MM is not compatible with ENABLE_SVE_FOR_NS")
|
|
endif
|
|
ifeq (${ENABLE_SME_FOR_NS},1)
|
|
$(error "Error: SPM_MM is not compatible with ENABLE_SME_FOR_NS")
|
|
endif
|
|
ifeq (${CTX_INCLUDE_FPREGS},0)
|
|
$(warning "Warning: SPM_MM: CTX_INCLUDE_FPREGS is set to 0")
|
|
endif
|
|
|
|
SPM_MM_SOURCES := $(addprefix services/std_svc/spm/spm_mm/, \
|
|
${ARCH}/spm_mm_shim_exceptions.S \
|
|
spm_mm_main.c \
|
|
spm_mm_setup.c \
|
|
spm_mm_xlat.c)
|
|
|
|
|
|
# Let the top-level Makefile know that we intend to include a BL32 image
|
|
NEED_BL32 := yes
|
|
|
|
# required so that SPM code executing at S-EL0 can access the timer registers
|
|
NS_TIMER_SWITCH := 1
|