The GIC ID registers cover an area 0x30 bytes in size
(12 registers, 4 bytes each). We were incorrectly decoding
only the first 0x20 bytes.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/intc/arm_gicv3_dist.c | 2 +-
hw/intc/arm_gicv3_redist.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/intc/arm_gicv3_dist.c b/hw/intc/arm_gicv3_dist.c
index 53c55c57291..335386ff3ac 100644
--- a/hw/intc/arm_gicv3_dist.c
+++ b/hw/intc/arm_gicv3_dist.c
@@ -533,7 +533,7 @@ static MemTxResult gicd_readl(GICv3State *s, hwaddr offset,
}
return MEMTX_OK;
}
- case GICD_IDREGS ... GICD_IDREGS + 0x1f:
+ case GICD_IDREGS ... GICD_IDREGS + 0x2f:
/* ID registers */
*data = gicv3_idreg(offset - GICD_IDREGS);
return MEMTX_OK;
diff --git a/hw/intc/arm_gicv3_redist.c b/hw/intc/arm_gicv3_redist.c
index 3b0ba6de1ab..9bb11423382 100644
--- a/hw/intc/arm_gicv3_redist.c
+++ b/hw/intc/arm_gicv3_redist.c
@@ -233,7 +233,7 @@ static MemTxResult gicr_readl(GICv3CPUState *cs, hwaddr offset,
}
*data = cs->gicr_nsacr;
return MEMTX_OK;
- case GICR_IDREGS ... GICR_IDREGS + 0x1f:
+ case GICR_IDREGS ... GICR_IDREGS + 0x2f:
*data = gicv3_idreg(offset - GICR_IDREGS);
return MEMTX_OK;
default:
--
2.20.1
On 5/20/19 6:28 PM, Peter Maydell wrote: > The GIC ID registers cover an area 0x30 bytes in size > (12 registers, 4 bytes each). We were incorrectly decoding > only the first 0x20 bytes. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> "8.1.13 Identification registers" OK. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > hw/intc/arm_gicv3_dist.c | 2 +- > hw/intc/arm_gicv3_redist.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/intc/arm_gicv3_dist.c b/hw/intc/arm_gicv3_dist.c > index 53c55c57291..335386ff3ac 100644 > --- a/hw/intc/arm_gicv3_dist.c > +++ b/hw/intc/arm_gicv3_dist.c > @@ -533,7 +533,7 @@ static MemTxResult gicd_readl(GICv3State *s, hwaddr offset, > } > return MEMTX_OK; > } > - case GICD_IDREGS ... GICD_IDREGS + 0x1f: > + case GICD_IDREGS ... GICD_IDREGS + 0x2f: > /* ID registers */ > *data = gicv3_idreg(offset - GICD_IDREGS); > return MEMTX_OK; > diff --git a/hw/intc/arm_gicv3_redist.c b/hw/intc/arm_gicv3_redist.c > index 3b0ba6de1ab..9bb11423382 100644 > --- a/hw/intc/arm_gicv3_redist.c > +++ b/hw/intc/arm_gicv3_redist.c > @@ -233,7 +233,7 @@ static MemTxResult gicr_readl(GICv3CPUState *cs, hwaddr offset, > } > *data = cs->gicr_nsacr; > return MEMTX_OK; > - case GICR_IDREGS ... GICR_IDREGS + 0x1f: > + case GICR_IDREGS ... GICR_IDREGS + 0x2f: > *data = gicv3_idreg(offset - GICR_IDREGS); > return MEMTX_OK; > default: >
On Mon, 20 May 2019 at 17:28, Peter Maydell <peter.maydell@linaro.org> wrote: > > The GIC ID registers cover an area 0x30 bytes in size > (12 registers, 4 bytes each). We were incorrectly decoding > only the first 0x20 bytes. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > hw/intc/arm_gicv3_dist.c | 2 +- > hw/intc/arm_gicv3_redist.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/intc/arm_gicv3_dist.c b/hw/intc/arm_gicv3_dist.c > index 53c55c57291..335386ff3ac 100644 > --- a/hw/intc/arm_gicv3_dist.c > +++ b/hw/intc/arm_gicv3_dist.c > @@ -533,7 +533,7 @@ static MemTxResult gicd_readl(GICv3State *s, hwaddr offset, > } > return MEMTX_OK; > } > - case GICD_IDREGS ... GICD_IDREGS + 0x1f: > + case GICD_IDREGS ... GICD_IDREGS + 0x2f: > /* ID registers */ > *data = gicv3_idreg(offset - GICD_IDREGS); > return MEMTX_OK; > diff --git a/hw/intc/arm_gicv3_redist.c b/hw/intc/arm_gicv3_redist.c > index 3b0ba6de1ab..9bb11423382 100644 > --- a/hw/intc/arm_gicv3_redist.c > +++ b/hw/intc/arm_gicv3_redist.c > @@ -233,7 +233,7 @@ static MemTxResult gicr_readl(GICv3CPUState *cs, hwaddr offset, > } > *data = cs->gicr_nsacr; > return MEMTX_OK; > - case GICR_IDREGS ... GICR_IDREGS + 0x1f: > + case GICR_IDREGS ... GICR_IDREGS + 0x2f: > *data = gicv3_idreg(offset - GICR_IDREGS); > return MEMTX_OK; > default: Just noticed that I forgot to also update the case statements in the *writel functions :-( thanks -- PMM
© 2016 - 2026 Red Hat, Inc.