[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v3 01/10] hw: arm_gic: Fix gic_set_irq handl
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [RFC PATCH v3 01/10] hw: arm_gic: Fix gic_set_irq handling |
Date: |
Thu, 28 Nov 2013 17:43:54 +0000 |
On 28 November 2013 16:17, Peter Maydell <address@hidden> wrote:
> On 19 November 2013 06:18, Christoffer Dall <address@hidden> wrote:
> So I think this is a correct change in the sense that
> it's fixing the behaviour of this function. However
> we seem to get our pending behaviour for level triggered
> interrupts wrong in several places:
> * here
> * gic_acknowledge_irq (which you fix in a later patch)
> * gic_complete_irq, which currently says "enabled
> level triggered still-raised interrupts should be
> remarked as pending"
>
> This feels to me like a cluster of errors which have come
> from somebody's misreading of the spec and which probably
> combine to produce a coherent not-too-far-from-correct
> result, and which we should therefore fix all at once rather
> than only partially.
The other possibility is that it's a correct implementation
of 11MPCore GIC semantics -- the documentation of the
11MPCore definitely says that level triggered interrupts
go from Pending to Active and can't be Active+Pending
unless software messes with the GIC state. So either
the docs are actively wrong for 11MPCore or it behaves
differently from GICv1 and v2 here (my guess would be
the latter, in which case we need to support both flavours).
thanks
-- PMM
- [Qemu-devel] [RFC PATCH v3 00/10] Support arm-gic-kvm save/restore, Christoffer Dall, 2013/11/19
- [Qemu-devel] [RFC PATCH v3 01/10] hw: arm_gic: Fix gic_set_irq handling, Christoffer Dall, 2013/11/19
- [Qemu-devel] [RFC PATCH v3 02/10] hw: arm_gic: Introduce gic_set_priority function, Christoffer Dall, 2013/11/19
- [Qemu-devel] [RFC PATCH v3 03/10] hw: arm_gic: Keep track of SGI sources, Christoffer Dall, 2013/11/19
- [Qemu-devel] [RFC PATCH v3 04/10] arm_gic: Support setting/getting binary point reg, Christoffer Dall, 2013/11/19
- [Qemu-devel] [RFC PATCH v3 05/10] arm_gic: Rename GIC_X_TRIGGER to GIC_X_EDGE_TRIGGER, Christoffer Dall, 2013/11/19
- [Qemu-devel] [RFC PATCH v3 06/10] arm_gic: Keep track of GICD_CPENDR and GICD_SPENDR, Christoffer Dall, 2013/11/19
- [Qemu-devel] [RFC PATCH v3 07/10] arm_gic: Fix gic_acknowledge_irq pending bit clear, Christoffer Dall, 2013/11/19
- [Qemu-devel] [RFC PATCH v3 08/10] vmstate: Add uint32 2D-array support, Christoffer Dall, 2013/11/19