qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] sam460ex: Fix PCI interrupt connections


From: Sebastian Bauer
Subject: Re: [Qemu-devel] [PATCH] sam460ex: Fix PCI interrupt connections
Date: Tue, 31 Jul 2018 06:57:31 +0200
User-agent: Roundcube Webmail/1.3.6

Am 2018-07-31 02:18, schrieb David Gibson:
David, can you please drop this patch, we'll come up with a different fix.
Done.  Should have looked at that patch a bit closer.

I created a follow up patch, unfortunately, based on the previous patch, as I did not spot your mail earlier than now. Note that the previous patch was an improvement over the old behaviour and under normal conditions the difference was not visible (as the OS serves both interrupts in the same run and at least on AmigaOS the interrupt handling is deferred but IRQs are acked quickly; it is still not correct though). The old implementation was not correct at all, i.e., all interrupts were missed. So it was technical an improvement (and the easiest to come up without deep understanding QEMU) ;)

Anyway, I don't know if that follow up patch is the right approach. But building the logical or gate seems also be very much code, especially as in pci.c the case of multiple irqs sources are seems to be already handled (if I understand that code correctly). The follow up patch most likely does not model the hardware correctly, but the behaviour should be the same. The logical or gate would model the hardware more closely.

Let me know if I should rebase to the state before my initial patch (I just looked and the previous patch was still not dropped) if you think that the change is fine.

There is also the possibility to make the special (num-irqs == 1) the common case, as the Sam460ex platform is the only user of this bus so far (and probably stays the only one). I'm not sure if it is worth all the hassle. Also note that the entire ppc440_pcix.c source file seems to be created for the sam board. I have no idea why that mapping function based on slots was chosen in the first place so I kept it. I would also be fine to remove that, which would simplify things a lot.

Let me know how to proceed.

Bye
Sebastian



reply via email to

[Prev in Thread] Current Thread [Next in Thread]