From 0400ccb6444838ec2ad9b74a0c37d9339cd7a478 Mon Sep 17 00:00:00 2001 From: Jeenu Viswambharan Date: Wed, 31 Jan 2018 10:57:46 +0000 Subject: [PATCH 1/2] fdts: Add DTS for DynamIQ platforms DynamIQ platforms host all CPUs in a single cluster. This patch adds a DTS and DTB for DynamicQ platforms hosting up to 8 CPUs. Change-Id: I2d97bc740ac3062818767e7251020644f5bb9100 Signed-off-by: Jeenu Viswambharan --- fdts/fvp-base-gicv3-psci-dynamiq.dtb | Bin 0 -> 9314 bytes fdts/fvp-base-gicv3-psci-dynamiq.dts | 41 +++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 fdts/fvp-base-gicv3-psci-dynamiq.dtb create mode 100644 fdts/fvp-base-gicv3-psci-dynamiq.dts diff --git a/fdts/fvp-base-gicv3-psci-dynamiq.dtb b/fdts/fvp-base-gicv3-psci-dynamiq.dtb new file mode 100644 index 0000000000000000000000000000000000000000..99c6b4602fc6cea49135673fc9b855d950508680 GIT binary patch literal 9314 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 literal 0 HcmV?d00001 diff --git a/fdts/fvp-base-gicv3-psci-dynamiq.dts b/fdts/fvp-base-gicv3-psci-dynamiq.dts new file mode 100644 index 000000000..614c5d5c0 --- /dev/null +++ b/fdts/fvp-base-gicv3-psci-dynamiq.dts @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/dts-v1/; + +/include/ "fvp-base-gicv3-psci-common.dtsi" + +&CPU0 { + reg = <0x0 0x0>; +}; + +&CPU1 { + reg = <0x0 0x100>; +}; + +&CPU2 { + reg = <0x0 0x200>; +}; + +&CPU3 { + reg = <0x0 0x300>; +}; + +&CPU4 { + reg = <0x0 0x400>; +}; + +&CPU5 { + reg = <0x0 0x500>; +}; + +&CPU6 { + reg = <0x0 0x600>; +}; + +&CPU7 { + reg = <0x0 0x700>; +}; From fe7210cdca8e83b19a5e764d1c09622b639a133d Mon Sep 17 00:00:00 2001 From: Jeenu Viswambharan Date: Wed, 31 Jan 2018 14:52:08 +0000 Subject: [PATCH 2/2] FVP: Allow building for DynamIQ systems FVPs that model DynamIQ configuration implements all CPUs in a single cluster. I.e., such models have a single cluster with more than 4 CPUs. This differs from existing default build configuration for FVP where up to 4 CPUs are assumed per cluster. To allow building for DynamIQ configuration, promote the macro FVP_MAX_CPUS_PER_CLUSTER as a build option to have it set from the build command line. The value of the build option defaults to 4. Change-Id: Idc3853bc95f680869b434b011c2dbd733e40c6ce Signed-off-by: Jeenu Viswambharan --- docs/user-guide.rst | 3 +++ plat/arm/board/fvp/fvp_def.h | 5 ++++- plat/arm/board/fvp/platform.mk | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/user-guide.rst b/docs/user-guide.rst index c9e87488f..9e23711aa 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -755,6 +755,9 @@ ARM FVP platform specific build options - ``FVP_CCN`` : The CCN driver is selected. This is the default if ``FVP_CLUSTER_COUNT`` > 2. +- ``FVP_MAX_CPUS_PER_CLUSTER``: Sets the maximum number of CPUs implemented in + a single cluster. This option defaults to 4. + - ``FVP_MAX_PE_PER_CPU``: Sets the maximum number of PEs implemented on any CPU in the system. This option defaults to 1. Note that the build option ``ARM_PLAT_MT`` doesn't have any effect on FVP platforms. diff --git a/plat/arm/board/fvp/fvp_def.h b/plat/arm/board/fvp/fvp_def.h index a430bcac1..5ac5d3cdb 100644 --- a/plat/arm/board/fvp/fvp_def.h +++ b/plat/arm/board/fvp/fvp_def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -10,7 +10,10 @@ #ifndef FVP_CLUSTER_COUNT #define FVP_CLUSTER_COUNT 2 #endif + +#ifndef FVP_MAX_CPUS_PER_CLUSTER #define FVP_MAX_CPUS_PER_CLUSTER 4 +#endif #ifndef FVP_MAX_PE_PER_CPU # define FVP_MAX_PE_PER_CPU 1 diff --git a/plat/arm/board/fvp/platform.mk b/plat/arm/board/fvp/platform.mk index 8b913fb25..3dca4c2ac 100644 --- a/plat/arm/board/fvp/platform.mk +++ b/plat/arm/board/fvp/platform.mk @@ -13,6 +13,9 @@ FVP_USE_SP804_TIMER := 0 # Default cluster count for FVP FVP_CLUSTER_COUNT := 2 +# Default number of CPUs per cluster on FVP +FVP_MAX_CPUS_PER_CLUSTER := 4 + # Default number of threads per CPU on FVP FVP_MAX_PE_PER_CPU := 1 @@ -27,6 +30,9 @@ $(eval $(call add_define,FVP_USE_GIC_DRIVER)) # Pass FVP_CLUSTER_COUNT to the build system. $(eval $(call add_define,FVP_CLUSTER_COUNT)) +# Pass FVP_MAX_CPUS_PER_CLUSTER to the build system. +$(eval $(call add_define,FVP_MAX_CPUS_PER_CLUSTER)) + # Pass FVP_MAX_PE_PER_CPU to the build system. $(eval $(call add_define,FVP_MAX_PE_PER_CPU))