Sandrine Bailleux | 2b00132 | 2018-12-10 13:51:32 +0100 | [diff] [blame] | 1 | # |
Alexei Fedorov | 7cc2587 | 2020-06-02 16:35:36 +0100 | [diff] [blame^] | 2 | # Copyright (c) 2018-2020, Arm Limited. All rights reserved. |
Sandrine Bailleux | 2b00132 | 2018-12-10 13:51:32 +0100 | [diff] [blame] | 3 | # |
| 4 | # SPDX-License-Identifier: BSD-3-Clause |
| 5 | # |
| 6 | |
Alexei Fedorov | 0f30547 | 2019-10-29 14:06:54 +0000 | [diff] [blame] | 7 | # Default number of threads per CPU on FVP |
Alexei Fedorov | 7cc2587 | 2020-06-02 16:35:36 +0100 | [diff] [blame^] | 8 | FVP_MAX_PE_PER_CPU := 1 |
Alexei Fedorov | 0f30547 | 2019-10-29 14:06:54 +0000 | [diff] [blame] | 9 | |
| 10 | # Check the PE per core count |
| 11 | ifneq ($(FVP_MAX_PE_PER_CPU),$(filter $(FVP_MAX_PE_PER_CPU),1 2)) |
Alexei Fedorov | 7cc2587 | 2020-06-02 16:35:36 +0100 | [diff] [blame^] | 12 | $(error "Incorrect FVP_MAX_PE_PER_CPU = ${FVP_MAX_PE_PER_CPU} \ |
| 13 | specified for FVP port") |
Alexei Fedorov | 0f30547 | 2019-10-29 14:06:54 +0000 | [diff] [blame] | 14 | endif |
| 15 | |
Alexei Fedorov | 7cc2587 | 2020-06-02 16:35:36 +0100 | [diff] [blame^] | 16 | # Default cluster count and number of CPUs per cluster for FVP |
| 17 | ifeq ($(FVP_MAX_PE_PER_CPU),1) |
| 18 | FVP_CLUSTER_COUNT := 2 |
| 19 | FVP_MAX_CPUS_PER_CLUSTER := 4 |
| 20 | else |
| 21 | FVP_CLUSTER_COUNT := 1 |
| 22 | FVP_MAX_CPUS_PER_CLUSTER := 8 |
| 23 | endif |
| 24 | |
| 25 | # Check cluster count and number of CPUs per cluster |
| 26 | ifeq ($(FVP_MAX_PE_PER_CPU),2) |
| 27 | # Multithreaded CPU: 1 cluster with up to 8 CPUs |
| 28 | $(eval $(call CREATE_SEQ,CLS,1)) |
| 29 | $(eval $(call CREATE_SEQ,CPU,8)) |
| 30 | else |
| 31 | # CPU with single thread: max 4 clusters with up to 4 CPUs |
| 32 | $(eval $(call CREATE_SEQ,CLS,4)) |
| 33 | $(eval $(call CREATE_SEQ,CPU,4)) |
| 34 | endif |
| 35 | |
| 36 | # Check cluster count |
| 37 | ifneq ($(FVP_CLUSTER_COUNT),$(filter $(FVP_CLUSTER_COUNT),$(CLS))) |
| 38 | $(error "Incorrect FVP_CLUSTER_COUNT = ${FVP_CLUSTER_COUNT} \ |
| 39 | specified for FVP port with FVP_MAX_PE_PER_CPU = ${FVP_MAX_PE_PER_CPU}") |
| 40 | endif |
| 41 | |
| 42 | # Check number of CPUs per cluster |
| 43 | ifneq ($(FVP_MAX_CPUS_PER_CLUSTER),$(filter $(FVP_MAX_CPUS_PER_CLUSTER),$(CPU))) |
| 44 | $(error "Incorrect FVP_MAX_CPUS_PER_CLUSTER = ${FVP_MAX_CPUS_PER_CLUSTER} \ |
| 45 | specified for FVP port with FVP_MAX_PE_PER_CPU = ${FVP_MAX_PE_PER_CPU}") |
| 46 | endif |
| 47 | |
| 48 | # Pass FVP topology definitions to the build system |
| 49 | $(eval $(call add_define,TFTF_DEFINES,FVP_CLUSTER_COUNT)) |
| 50 | $(eval $(call add_define,TFTF_DEFINES,FVP_MAX_CPUS_PER_CLUSTER)) |
Alexei Fedorov | 0f30547 | 2019-10-29 14:06:54 +0000 | [diff] [blame] | 51 | $(eval $(call add_define,TFTF_DEFINES,FVP_MAX_PE_PER_CPU)) |
Alexei Fedorov | 7cc2587 | 2020-06-02 16:35:36 +0100 | [diff] [blame^] | 52 | |
| 53 | $(eval $(call add_define,NS_BL1U_DEFINES,FVP_CLUSTER_COUNT)) |
| 54 | $(eval $(call add_define,NS_BL1U_DEFINES,FVP_MAX_CPUS_PER_CLUSTER)) |
Alexei Fedorov | 0f30547 | 2019-10-29 14:06:54 +0000 | [diff] [blame] | 55 | $(eval $(call add_define,NS_BL1U_DEFINES,FVP_MAX_PE_PER_CPU)) |
Alexei Fedorov | 7cc2587 | 2020-06-02 16:35:36 +0100 | [diff] [blame^] | 56 | |
| 57 | $(eval $(call add_define,NS_BL2U_DEFINES,FVP_CLUSTER_COUNT)) |
| 58 | $(eval $(call add_define,NS_BL2U_DEFINES,FVP_MAX_CPUS_PER_CLUSTER)) |
Alexei Fedorov | 0f30547 | 2019-10-29 14:06:54 +0000 | [diff] [blame] | 59 | $(eval $(call add_define,NS_BL2U_DEFINES,FVP_MAX_PE_PER_CPU)) |
| 60 | |
Sandrine Bailleux | 2b00132 | 2018-12-10 13:51:32 +0100 | [diff] [blame] | 61 | PLAT_INCLUDES := -Iplat/arm/fvp/include/ |
| 62 | |
| 63 | PLAT_SOURCES := drivers/arm/gic/arm_gic_v2v3.c \ |
| 64 | drivers/arm/gic/gic_v2.c \ |
| 65 | drivers/arm/gic/gic_v3.c \ |
| 66 | drivers/arm/sp805/sp805.c \ |
| 67 | drivers/arm/timer/private_timer.c \ |
| 68 | drivers/arm/timer/system_timer.c \ |
| 69 | plat/arm/fvp/${ARCH}/plat_helpers.S \ |
| 70 | plat/arm/fvp/fvp_pwr_state.c \ |
| 71 | plat/arm/fvp/fvp_topology.c \ |
| 72 | plat/arm/fvp/fvp_mem_prot.c \ |
| 73 | plat/arm/fvp/plat_setup.c |
| 74 | |
| 75 | CACTUS_SOURCES += plat/arm/fvp/${ARCH}/plat_helpers.S |
| 76 | |
| 77 | # Firmware update is implemented on FVP. |
| 78 | FIRMWARE_UPDATE := 1 |
| 79 | |
Sandrine Bailleux | ac992f3 | 2020-03-02 11:05:15 +0100 | [diff] [blame] | 80 | PLAT_TESTS_SKIP_LIST := plat/arm/fvp/fvp_tests_to_skip.txt |
| 81 | |
Sandrine Bailleux | 2b00132 | 2018-12-10 13:51:32 +0100 | [diff] [blame] | 82 | include plat/arm/common/arm_common.mk |