|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 7/7] 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 cea9edc..eb8cc19 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -669,8 +669,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 ( nr_gic_cpu_if == 16 )
+ {
+ 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 3d2b3db..5af8201 100644
--- a/xen/include/asm-arm/gic.h
+++ b/xen/include/asm-arm/gic.h
@@ -147,6 +147,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 |