On Tue, Jan 09, 2018 at 04:35:30PM +0000, Peter Maydell wrote: > On 9 January 2018 at 16:29, Laszlo Ersek <ler...@redhat.com> wrote: > > On 01/09/18 17:12, Peter Maydell wrote: > >> On 9 January 2018 at 15:58, Laszlo Ersek <ler...@redhat.com> wrote: > >>> Sorry, no clue about any of this -- where should I read up? > >> > >> I cc'd you mostly as a heads-up since the QEMU bug is UEFI affecting, > >> not because I wanted to make you read the GIC specs :-) > > > > Thanks (and, thanks :) ) -- from patch #2, looks like GICv2 is affected > > too, and the patch seems to be fixing commit a9d853533cc1 > > ("hw/intc/arm_gic: Switch to read/write callbacks with tx attributes", > > 2015-05-12). > > > > Is that right? That commit was released with v2.4.0. Should I have > > experienced the error? Is it KVM / hardware specific? What are the symptoms? > > Happens under TCG emulation only. The bug got introduced with > commit c79c0a314c43b78f6, which changed the effect of a device > returning MEMTX_ERROR/MEMTX_DECODE_ERROR from "RAZ/WI" to > "guest data abort". That's in general the right thing to do, > but in the case of these device models we were returning those > values for cases which aren't supposed to provoke aborts. > > The symptom is that if your guest code is poorly behaved and > tries to read or write offsets that don't correspond to documented > GIC registers, it will take an abort that it didn't before. > Linux is fine; this UEFI image I have lying around stopped working.
Thanks for pointing this out. I had just recently noticed that the 'gicv3-active' kvm-unit-tests test had stopped passing on TCG, getting DABTs when attempting to write GICD_ICACTIVER. I was just about to complain in this thread that that register is indeed documented, but now I see the implementation of the test was always wrong. It was using the wrong register base, RD vs. SGI... drew