mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 01:54:22 +00:00

The FEAT_MTPMU feature disable runs very early after reset. This means, it needs to be written in assembly, since the C runtime has not been initialised yet. However, there is no need for it to be initialised so soon. The PMU state is only relevant after TF-A has relinquished control. The code to do this is also very verbose and difficult to read. Delaying the initialisation allows for it to happen with the rest of the PMU. Align with FEAT_STATE in the process. BREAKING CHANGE: This patch explicitly breaks the EL2 entry path. It is currently unsupported. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I2aa659d026fbdb75152469f6d19812ece3488c6f
51 lines
1.4 KiB
Makefile
51 lines
1.4 KiB
Makefile
#
|
|
# Copyright (c) 2013-2023, 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
|
|
|
|
ifneq ($(findstring gcc,$(notdir $(LD))),)
|
|
BL2_LDFLAGS += -Wl,--sort-section=alignment
|
|
else ifneq ($(findstring ld,$(notdir $(LD))),)
|
|
BL2_LDFLAGS += --sort-section=alignment
|
|
endif
|
|
|
|
ifeq (${ENABLE_RME},1)
|
|
# Using RME, run BL2 at EL3
|
|
include lib/gpt_rme/gpt_rme.mk
|
|
|
|
BL2_SOURCES += bl2/${ARCH}/bl2_rme_entrypoint.S \
|
|
bl2/${ARCH}/bl2_el3_exceptions.S \
|
|
bl2/${ARCH}/bl2_run_next_image.S \
|
|
${GPT_LIB_SRCS}
|
|
BL2_DEFAULT_LINKER_SCRIPT_SOURCE := bl2/bl2.ld.S
|
|
|
|
else ifeq (${RESET_TO_BL2},0)
|
|
# Normal operation, no RME, no BL2 at EL3
|
|
BL2_SOURCES += bl2/${ARCH}/bl2_entrypoint.S
|
|
BL2_DEFAULT_LINKER_SCRIPT_SOURCE := bl2/bl2.ld.S
|
|
|
|
else
|
|
# BL2 at EL3, no RME
|
|
BL2_SOURCES += bl2/${ARCH}/bl2_el3_entrypoint.S \
|
|
bl2/${ARCH}/bl2_el3_exceptions.S \
|
|
bl2/${ARCH}/bl2_run_next_image.S \
|
|
lib/cpus/${ARCH}/cpu_helpers.S
|
|
|
|
ifeq (${ARCH},aarch64)
|
|
BL2_SOURCES += lib/cpus/aarch64/dsu_helpers.S
|
|
endif
|
|
|
|
BL2_DEFAULT_LINKER_SCRIPT_SOURCE := bl2/bl2_el3.ld.S
|
|
endif
|