[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 01/11] xen/arm: vgic-v2: Implement correctly ICFGR{0, 1} read-only
Each ITARGETSR register are 4-byte wide and the offset is in byte. The current implementation is computing the offset of ICFGR1 and ICFG2 wonrgly result to emulate only the first 2 byte of the ICFGR<n> range read-only. The rest will be treated as read-write. For convenience introduce ITARGETSR1 and ITARGETSR2. Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> --- We only store the value of ICFGR<n> registers for the guest own purpose today. Xen is not using it at all. So I don't think it's worth to backport it. Changes in v2: - This patch was supposed to be in v1, but messed up the git format-patch command --- xen/arch/arm/vgic-v2.c | 6 ++++-- xen/include/asm-arm/gic.h | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index c94f0f3..4fb954b 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -507,10 +507,12 @@ static int vgic_v2_distr_mmio_write(struct vcpu *v, mmio_info_t *info, case GICD_ICFGR: /* SGIs */ goto write_ignore_32; - case GICD_ICFGR + 1: /* PPIs */ + + case GICD_ICFGR1: /* It is implementation defined if these are writeable. We chose not */ goto write_ignore_32; - case GICD_ICFGR + 2 ... GICD_ICFGRN: /* SPIs */ + + case GICD_ICFGR2 ... GICD_ICFGRN: /* SPIs */ if ( dabt.size != DABT_WORD ) goto bad_width; rank = vgic_rank_offset(v, 2, gicd_reg - GICD_ICFGR, DABT_WORD); if ( rank == NULL) goto write_ignore; diff --git a/xen/include/asm-arm/gic.h b/xen/include/asm-arm/gic.h index 3064d1c..42a2eec 100644 --- a/xen/include/asm-arm/gic.h +++ b/xen/include/asm-arm/gic.h @@ -46,6 +46,8 @@ #define GICD_ITARGETSR8 (0x820) #define GICD_ITARGETSRN (0xBF8) #define GICD_ICFGR (0xC00) +#define GICD_ICFGR1 (0xC04) +#define GICD_ICFGR2 (0xC08) #define GICD_ICFGRN (0xCFC) #define GICD_NSACR (0xE00) #define GICD_NSACRN (0xEFC) -- 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 |