|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC 3/4] tools/libxl: Make DT node of GICv3 according to max_vcpus
From: Chen Baozi <baozich@xxxxxxxxx>
Since the size of GICR is determined by the number of CPU
cores, add 'nr_cpus' parameter when creating its DT node
and set gicr0_size dynamically.
Signed-off-by: Chen Baozi <baozich@xxxxxxxxx>
---
tools/libxl/libxl_arm.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/libxl/libxl_arm.c b/tools/libxl/libxl_arm.c
index c5088c4..75d2aed 100644
--- a/tools/libxl/libxl_arm.c
+++ b/tools/libxl/libxl_arm.c
@@ -407,13 +407,13 @@ static int make_gicv2_node(libxl__gc *gc, void *fdt,
return 0;
}
-static int make_gicv3_node(libxl__gc *gc, void *fdt)
+static int make_gicv3_node(libxl__gc *gc, void *fdt, const int nr_cpus)
{
int res;
const uint64_t gicd_base = GUEST_GICV3_GICD_BASE;
const uint64_t gicd_size = GUEST_GICV3_GICD_SIZE;
const uint64_t gicr0_base = GUEST_GICV3_GICR0_BASE;
- const uint64_t gicr0_size = GUEST_GICV3_GICR0_SIZE;
+ const uint64_t gicr0_size = GUEST_GICV3_RDIST_STRIDE * nr_cpus;
const char *name = GCSPRINTF("interrupt-controller@%"PRIx64, gicd_base);
res = fdt_begin_node(fdt, name);
@@ -640,7 +640,7 @@ next_resize:
GUEST_GICC_BASE, GUEST_GICC_SIZE) );
break;
case XEN_DOMCTL_CONFIG_GIC_V3:
- FDT( make_gicv3_node(gc, fdt) );
+ FDT( make_gicv3_node(gc, fdt, info->max_vcpus) );
break;
default:
LOG(ERROR, "Unknown GIC version %s",
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |