mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 01:24:27 +00:00
fix(fvp): don't check MPIDRs with the power controller in BL1
The core platform layer requires an implementation for the `plat_core_pos_by_mpidr` function. This implementation is currently missing in BL1, which causes undefined reference errors when linking with LTO. The FVP platform source file providing this implementation is the `fvp_topology.c` file, so this change adds it to the BL1 sources for the FVP. However, the implementation of this function reaches out to the FVP power controller driver - `fvp_pm.c` - to validate the MPIDR, and this file has at least two other dependencies: - `spe.c` - `arm_gicvX.c` Pulling these in correctly is no simple job, so I am simply removing the power controller validation in BL1 builds. Change-Id: I56ddf1d799f5fe7f5b0fb2b046f7fe8232b07b27 Signed-off-by: Chris Kay <chris.kay@arm.com>
This commit is contained in:
parent
3b48ca17f3
commit
6d8546f9fc
2 changed files with 5 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2023, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2024, Arm Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -36,7 +36,7 @@ const unsigned char *plat_get_power_domain_tree_desc(void)
|
|||
* fconf APIs are not supported for RESET_TO_SP_MIN, RESET_TO_BL31 and
|
||||
* RESET_TO_BL2 systems.
|
||||
*/
|
||||
#if RESET_TO_SP_MIN || RESET_TO_BL31 || RESET_TO_BL2
|
||||
#if RESET_TO_SP_MIN || RESET_TO_BL31 || RESET_TO_BL2 || IMAGE_BL1
|
||||
cluster_count = FVP_CLUSTER_COUNT;
|
||||
cpus_per_cluster = FVP_MAX_CPUS_PER_CLUSTER * FVP_MAX_PE_PER_CPU;
|
||||
#else
|
||||
|
@ -106,8 +106,10 @@ int plat_core_pos_by_mpidr(u_register_t mpidr)
|
|||
if (thread_id >= FVP_MAX_PE_PER_CPU)
|
||||
return -1;
|
||||
|
||||
#if !IMAGE_BL1
|
||||
if (fvp_pwrc_read_psysr(mpidr) == PSYSR_INVALID)
|
||||
return -1;
|
||||
#endif /* IMAGE_BL1 */
|
||||
|
||||
/*
|
||||
* Core position calculation for FVP platform depends on the MT bit in
|
||||
|
|
|
@ -237,6 +237,7 @@ BL1_SOURCES += drivers/arm/smmu/smmu_v3.c \
|
|||
plat/arm/board/fvp/fvp_bl1_setup.c \
|
||||
plat/arm/board/fvp/fvp_err.c \
|
||||
plat/arm/board/fvp/fvp_io_storage.c \
|
||||
plat/arm/board/fvp/fvp_topology.c \
|
||||
${FVP_CPU_LIBS} \
|
||||
${FVP_INTERCONNECT_SOURCES}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue