From: "Gabriel L. Somlo" <gsomlo@gmail.com>
To: Laszlo Ersek <lersek@redhat.com>
Cc: edk2-devel@lists.sourceforge.net, agraf@suse.de,
qemu-devel@nongnu.org, Gerd Hoffmann <kraxel@redhat.com>,
reza.jelveh@tuhh.de, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] OVMF, Q35 and USB keyboard/mouse
Date: Sun, 21 Sep 2014 18:10:56 -0400 [thread overview]
Message-ID: <20140921221055.GB1695@ERROL.INI.CMU.EDU> (raw)
In-Reply-To: <5417299C.7020107@redhat.com>
On Mon, Sep 15, 2014 at 08:02:04PM +0200, Laszlo Ersek wrote:
> Here's an example from my i440fx Fedora 20 VM.
>
> (1) The dmesg says first
>
> ACPI: PCI Interrupt Link [LNKA] (IRQs 5 10 *11)
> ACPI: PCI Interrupt Link [LNKB] (IRQs 5 10 *11)
> ACPI: PCI Interrupt Link [LNKC] (IRQs 5 *10 11)
> ACPI: PCI Interrupt Link [LNKD] (IRQs 5 *10 11)
> ACPI: PCI Interrupt Link [LNKS] (IRQs *9)
>
> This displays what IRQs the _PRT in the DSDT allows for each of the LNKx
> links, and the asterisks show (IIRC) what elements of those sets are
> selected (programmed) when Linux inherits the hardware.
>
> (2) Later it logs
>
> ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
> ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11
> ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
> ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
>
> Let's call this mapping LNK_IRQ().
>
> (3) Then look for the uchi controllers:
>
> uhci_hcd 0000:00:07.0: irq 10, io base 0x0000c0c0
> uhci_hcd 0000:00:07.1: irq 11, io base 0x0000c0a0
> uhci_hcd 0000:00:07.2: irq 11, io base 0x0000c080
>
> And /proc/interrupts is consistent with that:
>
> CPU0 CPU1
> 10: 6 25 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2
> 11: 0 0 IO-APIC-fasteoi uhci_hcd:usb3, uhci_hcd:usb4, virtio2
>
> These last two blocks are *results*.
Using F20-live on Q35 with SeaBIOS vs. OVMF, I get:
$> grep LNK dmsg*.log
dmsg_bios.log: ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
dmsg_bios.log: ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
dmsg_bios.log: ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
dmsg_bios.log: ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
dmsg_bios.log: ACPI: PCI Interrupt Link [LNKE] (IRQs 5 *10 11)
dmsg_bios.log: ACPI: PCI Interrupt Link [LNKF] (IRQs 5 *10 11)
dmsg_bios.log: ACPI: PCI Interrupt Link [LNKG] (IRQs 5 10 *11)
dmsg_bios.log: ACPI: PCI Interrupt Link [LNKH] (IRQs 5 10 *11)
dmsg_ovmf.log: ACPI: PCI Interrupt Link [LNKA] (IRQs 5 10 11) *0, disabled.
dmsg_ovmf.log: ACPI: PCI Interrupt Link [LNKB] (IRQs 5 10 11) *0, disabled.
dmsg_ovmf.log: ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 11) *0, disabled.
dmsg_ovmf.log: ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 11) *0, disabled.
dmsg_ovmf.log: ACPI: PCI Interrupt Link [LNKE] (IRQs 5 10 11) *0, disabled.
dmsg_ovmf.log: ACPI: PCI Interrupt Link [LNKF] (IRQs 5 10 11) *0, disabled.
dmsg_ovmf.log: ACPI: PCI Interrupt Link [LNKG] (IRQs 5 10 11) *0, disabled.
dmsg_ovmf.log: ACPI: PCI Interrupt Link [LNKH] (IRQs 5 10 11) *0, disabled.
Neither logs any "Link enabled at IRQ X" messages (at least not for
LNKX; they both do for GSIX, though). Wonder why it says "disabled"
on OVMF... This is the only suspicious (to me) difference between
SeaBIOS and OVMF with q35 and fedora.
$> grep uhci_hcd dmsg*.log
dmsg_bios.log: uhci_hcd: USB Universal Host Controller Interface driver
dmsg_bios.log: uhci_hcd 0000:00:1d.0: setting latency timer to 64
dmsg_bios.log: uhci_hcd 0000:00:1d.0: UHCI Host Controller
dmsg_bios.log: uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus # 2
dmsg_bios.log: uhci_hcd 0000:00:1d.0: irq 16, io base 0x0000c080
dmsg_bios.log: usb usb2: Manufacturer: Linux 3.11.10-301.fc20.x86_64 uhci_hcd
dmsg_bios.log: uhci_hcd 0000:00:1d.1: setting latency timer to 64
dmsg_bios.log: uhci_hcd 0000:00:1d.1: UHCI Host Controller
dmsg_bios.log: uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus # 3
dmsg_bios.log: uhci_hcd 0000:00:1d.1: irq 17, io base 0x0000c0a0
dmsg_bios.log: usb usb3: Manufacturer: Linux 3.11.10-301.fc20.x86_64 uhci_hcd
dmsg_bios.log: uhci_hcd 0000:00:1d.2: setting latency timer to 64
dmsg_bios.log: uhci_hcd 0000:00:1d.2: UHCI Host Controller
dmsg_bios.log: uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus # 4
dmsg_bios.log: uhci_hcd 0000:00:1d.2: irq 18, io base 0x0000c0c0
dmsg_bios.log: usb usb4: Manufacturer: Linux 3.11.10-301.fc20.x86_64 uhci_hcd
dmsg_ovmf.log: uhci_hcd: USB Universal Host Controller Interface driver
dmsg_ovmf.log: uhci_hcd 0000:00:1d.0: setting latency timer to 64
dmsg_ovmf.log: uhci_hcd 0000:00:1d.0: UHCI Host Controller
dmsg_ovmf.log: uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus # 2
dmsg_ovmf.log: uhci_hcd 0000:00:1d.0: irq 16, io base 0x0000c0e0
dmsg_ovmf.log: usb usb2: Manufacturer: Linux 3.11.10-301.fc20.x86_64 uhci_hcd
dmsg_ovmf.log: uhci_hcd 0000:00:1d.1: setting latency timer to 64
dmsg_ovmf.log: uhci_hcd 0000:00:1d.1: UHCI Host Controller
dmsg_ovmf.log: uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus # 3
dmsg_ovmf.log: uhci_hcd 0000:00:1d.1: irq 17, io base 0x0000c0c0
dmsg_ovmf.log: usb usb3: Manufacturer: Linux 3.11.10-301.fc20.x86_64 uhci_hcd
dmsg_ovmf.log: uhci_hcd 0000:00:1d.2: setting latency timer to 64
dmsg_ovmf.log: uhci_hcd 0000:00:1d.2: UHCI Host Controller
dmsg_ovmf.log: uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus # 4
dmsg_ovmf.log: uhci_hcd 0000:00:1d.2: irq 18, io base 0x0000c0a0
dmsg_ovmf.log: usb usb4: Manufacturer: Linux 3.11.10-301.fc20.x86_64 uhci_hcd
The IO base addresses are the only difference, not sure if this matters:
pci io_base_addr
device bios ovmf
---------------------
1d.0 c080 c0e0
1d.1 c0a0 c0c0
1d.2 c0c0 c0a0
Finally, the relevant bits from /proc/interrupts:
with SeaBIOS:
16: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb2, i801_smbus
17: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb3
18: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb4
19: 55 0 341 0 IO-APIC-fasteoi ehci_hcd:usb1
and with OVMF:
16: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb2, i801_smbus
17: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb3
18: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb4
19: 55 0 131 0 IO-APIC-fasteoi ehci_hcd:usb1
So, basically, no difference.
I'm off studying "pci_slot_get_irq" functions in SeaBIOS per Gerd's
suggestion, hopefully I can locate the equivalent functionality in
OVMF and spot some problem with it I can fix.
That might take me a while... :)
Thanks,
--Gabriel
next prev parent reply other threads:[~2014-09-21 22:11 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-09 22:00 [Qemu-devel] OVMF, Q35 and USB keyboard/mouse Gabriel L. Somlo
2014-09-10 0:40 ` Laszlo Ersek
2014-09-10 6:31 ` Gerd Hoffmann
2014-09-10 7:59 ` Laszlo Ersek
2014-09-10 14:06 ` Gabriel L. Somlo
2014-09-10 23:08 ` [Qemu-devel] [edk2] " Paolo Bonzini
2014-09-11 15:42 ` [Qemu-devel] " Gabriel L. Somlo
2014-09-11 15:49 ` Paolo Bonzini
2014-09-11 16:35 ` Gabriel L. Somlo
2014-09-11 16:40 ` Paolo Bonzini
2014-09-11 17:11 ` Gabriel L. Somlo
2014-09-11 17:15 ` [Qemu-devel] [edk2] " Paolo Bonzini
2014-09-11 20:16 ` [Qemu-devel] " Gabriel L. Somlo
2014-09-11 20:46 ` Laszlo Ersek
2014-09-11 21:34 ` Alexander Graf
2014-09-11 23:21 ` Gabriel L. Somlo
2014-09-12 9:17 ` BALATON Zoltan
2014-09-12 17:58 ` Gabriel L. Somlo
2014-09-12 6:46 ` Gerd Hoffmann
2014-09-12 18:18 ` Gabriel L. Somlo
2014-09-12 18:26 ` Paolo Bonzini
2014-09-12 19:59 ` Gabriel L. Somlo
2014-09-13 5:06 ` Laszlo Ersek
2014-09-15 14:50 ` Gabriel L. Somlo
2014-09-15 15:01 ` Laszlo Ersek
2014-09-15 15:07 ` Gabriel L. Somlo
2014-09-15 18:02 ` Laszlo Ersek
2014-09-15 19:23 ` Gabriel L. Somlo
2014-09-15 19:56 ` BALATON Zoltan
2014-09-16 8:15 ` Gerd Hoffmann
2014-09-21 20:00 ` Gabriel L. Somlo
2014-09-21 22:10 ` Gabriel L. Somlo [this message]
2014-09-21 22:43 ` Laszlo Ersek
2014-09-22 16:44 ` [Qemu-devel] [edk2] " Paolo Bonzini
2014-09-22 16:59 ` Gabriel L. Somlo
2014-09-22 20:40 ` Laszlo Ersek
2014-09-24 22:03 ` Gabriel L. Somlo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140921221055.GB1695@ERROL.INI.CMU.EDU \
--to=gsomlo@gmail.com \
--cc=agraf@suse.de \
--cc=edk2-devel@lists.sourceforge.net \
--cc=kraxel@redhat.com \
--cc=lersek@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=reza.jelveh@tuhh.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.