Re: [PATCH] hw/misc/mps2-scc.c: fix scc_partno() and cfg7 write
Peter Maydell <[email protected]> Fri, 24 Jul 2026 09:56:39 +0100
| Newsgroups | org.nongnu.qemu-arm,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <CAFEAcA-3iJyD1mUw_jz=0aE10Hp4qkoMZTNeZ4zMQqusjyfOgw@mail.gmail.com> |
On Thu, 23 Jul 2026 at 17:43, Simon Xu <[email protected]> wrote: > > Increase the extract32 length from 8 to 12. The Primary part number is > defined as bits[15:4] by the "SSE-310 with M85 and U55 FPGA" > documentation. For example for the mps3-an547, 0x547 is 12 bits but we > only return 8 bits right now. > > Change the CFG7 write function to modify the correct variable. > > Signed-off-by: Simon Xu <[email protected]> > --- > hw/misc/mps2-scc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/misc/mps2-scc.c b/hw/misc/mps2-scc.c > index 7877b31479..554b504c72 100644 > --- a/hw/misc/mps2-scc.c > +++ b/hw/misc/mps2-scc.c > @@ -57,7 +57,7 @@ REG32(ID, 0xFFC) > static int scc_partno(MPS2SCC *s) > { > /* Return the partno field of the SCC_ID (0x524, 0x511, etc) */ > - return extract32(s->id, 4, 8); > + return extract32(s->id, 4, 12); > } Whoops, this is in "how did this ever work?" territory. I guess most guests don't actually do enough with the part-specific bits of the device to notice... > > /* Is CFG_REG2 present? */ > @@ -299,7 +299,7 @@ static void mps2_scc_write(void *opaque, hwaddr offset, uint64_t value, > goto bad_offset; > } > /* AN536: Core 1 vector table base address */ > - s->cfg6 = value; > + s->cfg7 = value; > break; This is also an obvious cut-and-paste bug: writing to A_CFG7 should clearly write s->cfg7, not 6. However, these are two separate unrelated bugs. Could you send them as two separate patches, please? (You can put them in a 2-patch series with a cover letter.) thanks -- PMM