• Antonio Nino Diaz's avatar
    BL2: Enable pointer authentication support · 9d93fc2f
    Antonio Nino Diaz authored
    
    The size increase after enabling options related to ARMv8.3-PAuth is:
    
    +----------------------------+-------+-------+-------+--------+
    |                            |  text |  bss  |  data | rodata |
    +----------------------------+-------+-------+-------+--------+
    | CTX_INCLUDE_PAUTH_REGS = 1 |   +40 |   +0  |   +0  |   +0   |
    |                            |  0.2% |       |       |        |
    +----------------------------+-------+-------+-------+--------+
    | ENABLE_PAUTH = 1           |  +664 |   +0  |  +16  |   +0   |
    |                            |  3.1% |       |  0.9% |        |
    +----------------------------+-------+-------+-------+--------+
    
    Results calculated with the following build configuration:
    
        make PLAT=fvp SPD=tspd DEBUG=1 \
        SDEI_SUPPORT=1                 \
        EL3_EXCEPTION_HANDLING=1       \
        TSP_NS_INTR_ASYNC_PREEMPT=1    \
        CTX_INCLUDE_PAUTH_REGS=1       \
        ENABLE_PAUTH=1
    
    The changes for BL2_AT_EL3 aren't done in this commit.
    
    Change-Id: I8c803b40c7160525a06173bc6cdca21c4505837d
    Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
    9d93fc2f
bl2.mk 885 Bytes
#
# Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#

BL2_SOURCES		+=	bl2/bl2_image_load_v2.c			\
				bl2/bl2_main.c				\
				bl2/${ARCH}/bl2_arch_setup.c		\
				lib/locks/exclusive/${ARCH}/spinlock.S	\
				plat/common/${ARCH}/platform_up_stack.S	\
				${MBEDTLS_SOURCES}

ifeq (${ARCH},aarch64)
BL2_SOURCES		+=	common/aarch64/early_exceptions.S
endif

ifeq (${ENABLE_PAUTH},1)
BL2_CFLAGS		+=	-msign-return-address=non-leaf
endif

ifeq (${BL2_AT_EL3},0)
BL2_SOURCES		+=	bl2/${ARCH}/bl2_entrypoint.S
BL2_LINKERFILE		:=	bl2/bl2.ld.S

else
BL2_SOURCES		+=	bl2/${ARCH}/bl2_el3_entrypoint.S	\
				bl2/${ARCH}/bl2_el3_exceptions.S	\
				lib/cpus/${ARCH}/cpu_helpers.S		\
				lib/cpus/errata_report.c

ifeq (${ARCH},aarch64)
BL2_SOURCES		+=	lib/cpus/aarch64/dsu_helpers.S
endif

BL2_LINKERFILE		:=	bl2/bl2_el3.ld.S
endif