[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Qemu and Linux/i8259 interaction.
From: |
Jean-Christophe Dubois |
Subject: |
[Qemu-devel] Qemu and Linux/i8259 interaction. |
Date: |
Wed, 11 Jan 2006 15:58:51 +0100 |
User-agent: |
KMail/1.8.3 |
Hello,
I did some search on the list and didn't find the answer to a problem I am
experiencing. So sorry if this is a "known" issue.
Here is the deal:
I have added a custom PCI device to qemu (0.8.0) for some need I have. This
new device works great in qemu and I can access it from Windows or Linux
(running in Qemu). I can generate interrupts from the device and so forth so
everything seems to be good.
However I have one problem when running Linux inside Qemu. For some reason
Linux (2.6.13.4) resets the 8259 at init time and does not necessarily
reprogram it correctly thereafter. Therefore all the interrupts are falling
back to the default configuration of the Qemu 8259, and in particular they
are all falling back to edge triggered state.
Everything continues to work correctly but this is wrong for a PCI devices.
PCI devices are level triggered. So for example if I don't acknowledge my
interrupt in the interrupt handler I would expect to be called back
immediately by the kernel. But because all the 8259 interrupts are back to
the default state (edge triggered) I will never be called again.
I understand that this is more like a Linux problem and as a matter of fact
WindowsXP running in the same qemu is careful to reprogram the 8259 in level
sensitive mode (where needed) after it resets it and with XP I got the
expected result (being called again immediately if I forget to acknowledge my
interrupt).
I am just wondering if this is something that is known or if somebody could
have some hint/trick in the way to generate Linux to avoid this kind of
behavior. It doesn't seem logical to me that all the PCI boards (including
the ethernet realtek board) are handled in edge triggered mode. Do I miss
something?
For info I tried most boot line options on Linux ([no]lapic, [no]acpi, ...)
without much change in behavior in regards to the 8259 ("info pic" in the
monitor always shows both elcr to 0).
Thanks for any help/hint you might have.
Regards
JC
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] Qemu and Linux/i8259 interaction.,
Jean-Christophe Dubois <=