Until vGIC support is not implemented and tested, this will prevent guest kernels to use their Hip04 driver, or crash when they don't have any.
Signed-off-by: Frediano Ziglio <frediano.zig...@huawei.com> --- xen/arch/arm/gic-hip04.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/xen/arch/arm/gic-hip04.c b/xen/arch/arm/gic-hip04.c index d96a29e..c90ea1e 100644 --- a/xen/arch/arm/gic-hip04.c +++ b/xen/arch/arm/gic-hip04.c @@ -598,17 +598,21 @@ static int hip04gic_make_dt_node(const struct domain *d, const struct dt_device_node *node, void *fdt) { const struct dt_device_node *gic = dt_interrupt_controller; - const void *compatible = NULL; + const void *compatible; u32 len; const __be32 *regs; int res = 0; - compatible = dt_get_property(gic, "compatible", &len); - if ( !compatible ) - { - dprintk(XENLOG_ERR, "Can't find compatible property for the gic node\n"); - return -FDT_ERR_XEN(ENOENT); - } + /* + * Replace compatibility string with a standard one. + * dom0 will see a compatible GIC. This as GICC is compatible + * with standard one and GICD (emulated by Xen) is compatible + * to standard. Otherwise we should implement HIP04 GICD in + * the virtual GIC. + * This actually limit CPU number to 8 for dom0. + */ + compatible = DT_COMPAT_GIC_CORTEX_A15; + len = strlen((char*) compatible) + 1; res = fdt_begin_node(fdt, "interrupt-controller"); if ( res ) -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel