mirror of https://github.com/xemu-project/xemu.git
hw/intc/arm_gicv3_its: Don't clear GITS_CWRITER on writes to GITS_CBASER
The ITS specification says that when the guest writes to GITS_CBASER this causes GITS_CREADR to be cleared. However it does not have an equivalent clause for GITS_CWRITER. (This is because GITS_CREADR is read-only, but GITS_CWRITER is writable and the guest can initialize it.) Remove the code that clears GITS_CWRITER on GITS_CBASER writes. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220122182444.724087-6-peter.maydell@linaro.org
This commit is contained in:
parent
1e794a3be1
commit
0cc38f359c
|
@ -866,7 +866,6 @@ static bool its_writel(GICv3ITSState *s, hwaddr offset,
|
|||
if (!(s->ctlr & R_GITS_CTLR_ENABLED_MASK)) {
|
||||
s->cbaser = deposit64(s->cbaser, 0, 32, value);
|
||||
s->creadr = 0;
|
||||
s->cwriter = s->creadr;
|
||||
}
|
||||
break;
|
||||
case GITS_CBASER + 4:
|
||||
|
@ -877,7 +876,6 @@ static bool its_writel(GICv3ITSState *s, hwaddr offset,
|
|||
if (!(s->ctlr & R_GITS_CTLR_ENABLED_MASK)) {
|
||||
s->cbaser = deposit64(s->cbaser, 32, 32, value);
|
||||
s->creadr = 0;
|
||||
s->cwriter = s->creadr;
|
||||
}
|
||||
break;
|
||||
case GITS_CWRITER:
|
||||
|
@ -1027,7 +1025,6 @@ static bool its_writell(GICv3ITSState *s, hwaddr offset,
|
|||
if (!(s->ctlr & R_GITS_CTLR_ENABLED_MASK)) {
|
||||
s->cbaser = value;
|
||||
s->creadr = 0;
|
||||
s->cwriter = s->creadr;
|
||||
}
|
||||
break;
|
||||
case GITS_CWRITER:
|
||||
|
|
Loading…
Reference in New Issue