mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2024-11-24 02:09:46 +00:00
Enable MTE support
Enable MTE support by adding memory tag option in Makefile This option is available only when ARMv8.5-MemTag is implemented MTE options are added in latest clang and armclang compiler which support below options: for clang <version 11.0.0> 1. -march=arm8.5-a+memtag 2. -fsanitize=memtag for armclang <version 6.12> 1. -march=arm8.5-a+memtag 2. -mmemtag-stack Set the option SUPPORT_STACK_MEMTAG=yes to enable memory stack tagging. Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com> Change-Id: I4e0bbde4e9769ce03ead6f550158e22f32c1c413
This commit is contained in:
parent
0a43db84af
commit
7ff088d1f0
28
Makefile
28
Makefile
@ -187,6 +187,34 @@ march64-directive = -march=armv8.${ARM_ARCH_MINOR}-a
|
||||
endif
|
||||
endif
|
||||
|
||||
# Memory tagging is supported in architecture Armv8.5-A AArch64 and onwards
|
||||
ifeq ($(ARCH), aarch64)
|
||||
ifeq ($(shell test $(ARM_ARCH_MAJOR) -gt 8; echo $$?),0)
|
||||
mem_tag_arch_support = yes
|
||||
else ifeq ($(shell test $(ARM_ARCH_MAJOR) -eq 8 -a $(ARM_ARCH_MINOR) -ge 5; \
|
||||
echo $$?),0)
|
||||
mem_tag_arch_support = yes
|
||||
endif
|
||||
endif
|
||||
|
||||
# Enabled required option for memory stack tagging. Currently, these options are
|
||||
# enabled only for clang and armclang compiler.
|
||||
ifeq (${SUPPORT_STACK_MEMTAG},yes)
|
||||
ifdef mem_tag_arch_support
|
||||
ifneq ( ,$(filter $(notdir $(CC)),armclang clang))
|
||||
march64-directive = -march=armv${ARM_ARCH_MAJOR}.${ARM_ARCH_MINOR}-a+memtag
|
||||
ifeq ($(notdir $(CC)),armclang)
|
||||
TF_CFLAGS += -mmemtag-stack
|
||||
else ifeq ($(notdir $(CC)),clang)
|
||||
TF_CFLAGS += -fsanitize=memtag
|
||||
endif
|
||||
endif
|
||||
else
|
||||
$(error "Error: stack memory tagging is not supported for architecture \
|
||||
${ARCH},armv${ARM_ARCH_MAJOR}.${ARM_ARCH_MINOR}-a")
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(findstring armclang,$(notdir $(CC))),)
|
||||
TF_CFLAGS_aarch32 = -target arm-arm-none-eabi $(march32-directive)
|
||||
TF_CFLAGS_aarch64 = -target aarch64-arm-none-eabi $(march64-directive)
|
||||
|
@ -667,6 +667,11 @@ Common build options
|
||||
cluster platforms). If this option is enabled, then warm boot path
|
||||
enables D-caches immediately after enabling MMU. This option defaults to 0.
|
||||
|
||||
- ``SUPPORT_STACK_MEMTAG``: This flag determines whether to enable memory
|
||||
tagging for stack or not. It accepts 2 values: ``yes`` and ``no``. The
|
||||
default value of this flag is ``no``. Note this option must be enabled only
|
||||
for ARM architecture greater than Armv8.5-A.
|
||||
|
||||
GICv3 driver options
|
||||
--------------------
|
||||
|
||||
|
@ -288,3 +288,8 @@ ENABLE_LTO := 0
|
||||
# S-EL2 firmware entry/exit. This flag is to be used with SPD=spmd option.
|
||||
# Default is 0.
|
||||
CTX_INCLUDE_EL2_REGS := 0
|
||||
|
||||
# Enable Memory tag extension which is supported for architecture greater
|
||||
# than Armv8.5-A
|
||||
# By default it is set to "no"
|
||||
SUPPORT_STACK_MEMTAG := no
|
||||
|
Loading…
Reference in New Issue
Block a user