All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Gabriel L. Somlo" <gsomlo@gmail.com>
To: qemu-devel@nongnu.org
Cc: agraf@suse.de, edk2-devel@lists.sourceforge.net,
	lersek@redhat.com, kraxel@redhat.com, reza.jelveh@tuhh.de
Subject: [Qemu-devel] OVMF, Q35 and USB keyboard/mouse
Date: Tue, 9 Sep 2014 18:00:37 -0400	[thread overview]
Message-ID: <20140909220036.GJ1675@ERROL.INI.CMU.EDU> (raw)

Executive summary: OS X (10.9.4) works on Q35 with usb keyboard+mouse when
booted on SeaBIOS with Chameleon , but not on OVMF [1].

[1] Recently patched acpi pm timer to boot on Q35, plus a bunch of pending
    sata patches by Reza, cc-ed.

Command lines used to test using Fedora 20 live and OS X 10.9
(with or without OVMF for Fedora, with OVMF or Chameleon for OS X):

bin/qemu-system-x86_64 -enable-kvm -m 2048 -machine q35 \
  -device ide-drive,bus=ide.2,drive=CD \
  -drive id=CD,if=none,snapshot=on,file=./Fed-Live-Desktop-x86_64-20-1.iso \
  -usb -device usb-kbd -device usb-mouse \
  [ -bios OVMF.fd ]

bin/qemu-system-x86_64 -enable-kvm -m 2048 -cpu core2duo -machine q35 \
  -device isa-applesmc,osk="our...Inc" \
  -netdev user,id=usr0 -device e1000-82545em,netdev=usr0,id=vnet0 \
  -device ide-drive,bus=ide.2,drive=MacHDD \
  -drive id=MacHDD,if=none,snapshot=on,file=./mac_10.9.img \
  -usb -device usb-kbd -device usb-mouse \
  [ -kernel ./chameleon_boot | -bios OVMF.fd ]

In all cases, we get this from "info qtree":

      dev: ich9-usb-uhci3, id ""
        masterbus = "usb-bus.0"
        firstport = 4 (0x4)
        bandwidth = 1280 (0x500)
        maxframes = 128 (0x80)
        addr = 1d.2
        romfile = ""
        rombar = 1 (0x1)
        multifunction = true
        command_serr_enable = true
        class USB controller, addr 00:1d.2, pci id 8086:2936 (sub 1af4:1100)
        bar 4: i/o at 0xc0a0 [0xc0bf]
      dev: ich9-usb-uhci2, id ""
        masterbus = "usb-bus.0"
        firstport = 2 (0x2)
        bandwidth = 1280 (0x500)
        maxframes = 128 (0x80)
        addr = 1d.1
        romfile = ""
        rombar = 1 (0x1)
        multifunction = true
        command_serr_enable = true
        class USB controller, addr 00:1d.1, pci id 8086:2935 (sub 1af4:1100)
        bar 4: i/o at 0xc0c0 [0xc0df]
      dev: ich9-usb-uhci1, id ""
        masterbus = "usb-bus.0"
        firstport = 0 (0x0)
        bandwidth = 1280 (0x500)
        maxframes = 128 (0x80)
        addr = 1d.0
        romfile = ""
        rombar = 1 (0x1)
        multifunction = true
        command_serr_enable = true
        class USB controller, addr 00:1d.0, pci id 8086:2934 (sub 1af4:1100)
        bar 4: i/o at 0xc0e0 [0xc0ff]
      dev: ich9-usb-ehci1, id ""
        maxframes = 128 (0x80)
        addr = 1d.7
        romfile = ""
        rombar = 1 (0x1)
        multifunction = true
        command_serr_enable = true
        class USB controller, addr 00:1d.7, pci id 8086:293a (sub 1af4:1100)
        bar 0: mem at 0x82021000 [0x82021fff]
        bus: usb-bus.0
          type usb-bus
          dev: usb-mouse, id ""
            port = ""
            serial = ""
            full-path = true
            msos-desc = true
            addr 0.2, port 2, speed 12, name QEMU USB Mouse, attached
          dev: usb-kbd, id ""
            display = ""
            port = ""
            serial = ""
            full-path = true
            msos-desc = true
            addr 0.1, port 1, speed 12, name QEMU USB Keyboard, attached


In all *working* cases (all except OSX+OVMF) the guest os (mac or linux)
reports the keyboard and mouse as connected to ich9-usb-uhci1 (dev. id 0x2934),
contradicting the qtree output. On linux I got this out of 'dmesg':

input: QEMU QEMU USB Keyboard as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input3
hid-generic 0003:0627:0001.0001: input,hidraw0: USB HID v1.11 Keyboard [QEMU QEMU USB Keyboard] on usb-0000:00:1d.0-1/input0
input: QEMU QEMU USB Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/input/input4
hid-generic 0003:0627:0001.0002: input,hidraw1: USB HID v0.01 Mouse [QEMU QEMU USB Mouse] on usb-0000:00:1d.0-2/input0

On OS X (with Chameleon), I get the same results using System Profiler.


So at this point I'm wondering why guests and "info qtree" are contradictory,
and whether the combination of OVMF and OS X tickle some qemu usb emulation
bug differently than all other (working) combinations ?


BTW, doing something like:

  -usb -device ich9-usb-uhci1,id=uhci1 -device usb-kbd,bus=uhci1.0 \
       -device ich9-usb-uhci2,id=uhci2 -device usb-mouse,bus=uhci2.0

to completely override uhci1 and uhci2, and force the keyboard and mouse
to connect there causes OS X to start working on OVMF.


Not sure how I'd force the keyboard and mouse onto the default uhci1 and/or
uhci2 (from the qtree perspective), since they're given empty IDs by default
(and my qemu command line kung-fu is weak in this area).


Any thoughts or comments (or tips for further debugging) much appreciated.

Thanks,
--Gabriel

             reply	other threads:[~2014-09-09 22:01 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-09 22:00 Gabriel L. Somlo [this message]
2014-09-10  0:40 ` [Qemu-devel] OVMF, Q35 and USB keyboard/mouse 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
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=20140909220036.GJ1675@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=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.