[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 08/10] xen/arm: Move vGIC registers on Hip04 platform
Signed-off-by: Frediano Ziglio <frediano.ziglio@xxxxxxxxxx> Signed-off-by: Zoltan Kiss <zoltan.kiss@xxxxxxxxxx> --- xen/arch/arm/gic-v2.c | 15 +++++++++++++-- xen/include/asm-arm/gic.h | 2 ++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c index d92e2c0..330157b 100644 --- a/xen/arch/arm/gic-v2.c +++ b/xen/arch/arm/gic-v2.c @@ -671,8 +671,19 @@ static int gicv2_make_dt_node(const struct domain *d, return -FDT_ERR_XEN(ENOMEM); tmp = new_cells; - dt_set_range(&tmp, node, d->arch.vgic.dbase, PAGE_SIZE); - dt_set_range(&tmp, node, d->arch.vgic.cbase, PAGE_SIZE * 2); + + if (platform_has_quirk(PLATFORM_QUIRK_GICV2_16_CPU)) + { + dt_set_range(&tmp, node, d->arch.vgic.dbase - HIP04_VGIC_REG_OFFSET, + PAGE_SIZE); + dt_set_range(&tmp, node, d->arch.vgic.cbase - HIP04_VGIC_REG_OFFSET, + PAGE_SIZE * 2); + } + else + { + dt_set_range(&tmp, node, d->arch.vgic.dbase, PAGE_SIZE); + dt_set_range(&tmp, node, d->arch.vgic.cbase, PAGE_SIZE * 2); + } res = fdt_property(fdt, "reg", new_cells, len); xfree(new_cells); diff --git a/xen/include/asm-arm/gic.h b/xen/include/asm-arm/gic.h index 804bf24..c748791 100644 --- a/xen/include/asm-arm/gic.h +++ b/xen/include/asm-arm/gic.h @@ -149,6 +149,8 @@ #define GICH_LR_PENDING 1 #define GICH_LR_ACTIVE 2 +#define HIP04_VGIC_REG_OFFSET 0xe0000000 + #ifndef __ASSEMBLY__ #include <xen/device_tree.h> #include <xen/irq.h> -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |