mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
hw/arm/xlnx-versal: add a per_cluster_gic switch to VersalCpuClusterMap
Add the per_cluster_gic switch to the VersalCpuClusterMap structure. When set, this indicates that a GIC instance should by created per-cluster instead of globally for the whole RPU or APU. This is in preparation for versal2. Signed-off-by: Luc Michel <luc.michel@amd.com> Reviewed-by: Francisco Iglesias <francisco.iglesias@amd.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20250926070806.292065-38-luc.michel@amd.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
committed by
Peter Maydell
parent
00580a9d71
commit
268f7a3d24
+13
-2
@@ -88,6 +88,11 @@ enum StartPoweredOffMode {
|
||||
|
||||
typedef struct VersalCpuClusterMap {
|
||||
VersalGicMap gic;
|
||||
/*
|
||||
* true: one GIC per cluster.
|
||||
* false: one GIC for all CPUs
|
||||
*/
|
||||
bool per_cluster_gic;
|
||||
|
||||
const char *name;
|
||||
const char *cpu_model;
|
||||
@@ -825,12 +830,18 @@ static void versal_create_cpu_cluster(Versal *s, const VersalCpuClusterMap *map)
|
||||
cpus[i * map->num_core + j] = cpu;
|
||||
}
|
||||
|
||||
if (map->per_cluster_gic) {
|
||||
versal_create_and_connect_gic(s, map, mr, &cpus[i * map->num_core],
|
||||
map->num_core);
|
||||
}
|
||||
}
|
||||
|
||||
qdev_realize_and_unref(cluster, NULL, &error_fatal);
|
||||
|
||||
versal_create_and_connect_gic(s, map, mr, cpus,
|
||||
map->num_cluster * map->num_core);
|
||||
if (!map->per_cluster_gic) {
|
||||
versal_create_and_connect_gic(s, map, mr, cpus,
|
||||
map->num_cluster * map->num_core);
|
||||
}
|
||||
|
||||
has_gtimer = arm_feature(&ARM_CPU(cpus[0])->env, ARM_FEATURE_GENERIC_TIMER);
|
||||
if (map->dtb_expose && has_gtimer) {
|
||||
|
||||
Reference in New Issue
Block a user