Bug #2688
open67613368bdda7 Fix wrong checks for U4B presence Asrock Z77M difficulty detecting USB keyboard
0%
Description
For an Asrock Z77M motherboard, Intel Core i3-3225 CPU PC, detection of a USB keyboard was already somewhat erratic, but following 67613368bdda7 Fix wrong checks for U4B presence it has become almost impossible. The motherboard is UEFI, but I am using legacy support modes for hard drives and USB to emulate older booting using BIOS. The following summarizes the differences I can see between two verbose dmesg's, one asrock_z77m_verbose_good.txt with 67613368bdda7 reverted, the other asrock_z77m_verbose_bad.txt with current master. The USB keyboard and USB mouse are attached using a USB hub but similar behavior has been observed not using a hub. Nothing similar has been noticed with the same system using other OSes such as FreeBSD i386 current, FreeBSD 10 stable, FreeBSD 10 releng, NetBSD 6.99.x, OpenBSD 5.5-current, etc.
Both have
kbd: new array size 4
kbd1 at kbdmux0
Both have
pci0: <serial bus, USB> (vendor 0x8086, dev 0x1e31) at device 20.0 irq 16
pci0: <simple comms> (vendor 0x8086, dev 0x1e3a) at device 22.0 irq 16
ehci0.pci0.pcib0.acpi0.nexus0.root0
ehci0: <Intel Panther Point USB 2.0 controller> [tentative] mem 0xf7f18000-0xf7f183ff irq 16 at device 26.0 on pci0
Only the reverted good boot has:
ehci0: <Intel Panther Point USB 2.0 controller> [tentative] mem 0xf7f18000-0xf7f183ff irq 16 at device 26.0 on pci0
ehci0: Reserved 0x400 bytes for rid 0x10 type 3 at 0xf7f18000
usbus0: waiting for BIOS to give up control
Then both have:
usbus0: EHCI version 1.0
usbus0.ehci0.pci0.pcib0.acpi0.nexus0.root0
usbus0: <Intel Panther Point USB 2.0 controller> [tentative] on ehci0
usbus0: <Intel Panther Point USB 2.0 controller> [attached!] on ehci0
ehci0: <Intel Panther Point USB 2.0 controller> [attached!] mem 0xf7f18000-0xf7f183ff irq 16 at device 26.0 on pci0
Later both dmesgs have:
ehci1.pci0.pcib0.acpi0.nexus0.root0
ehci1: <Intel Panther Point USB 2.0 controller> [tentative] mem 0xf7f17000-0xf7f173ff irq 23 at device 29.0 on pci0
Only the reverted good dmesg has:
ehci1: Reserved 0x400 bytes for rid 0x10 type 3 at 0xf7f17000
Both have:
ugen0.1: <Intel> at usbus0
uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus
Only the reverted good dmesg has:
usbus1: waiting for BIOS to give up control
Then both have:
usbus1: EHCI version 1.0
usbus1.ehci1.pci0.pcib0.acpi0.nexus0.root0
usbus1: <Intel Panther Point USB 2.0 controller> [tentative] on ehci1
usbus1: <Intel Panther Point USB 2.0 controller> [attached!] on ehci1
ehci1: <Intel Panther Point USB 2.0 controller> [attached!] mem 0xf7f17000-0xf7f173ff irq 23 at device 29.0 on pci0
Later both have:
usbus1: 480Mbps High Speed USB v2.0
ugen1.1: <Intel> at usbus1
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
ugen0.2: <vendor 0x8087> at usbus0
uhub2: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus0
...
ugen1.2: <vendor 0x8087> at usbus1
uhub3: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus1
uhub2: 6 ports with 6 removable, self powered
But then only the reverted good dmesg has:
uhub3: 8 ports with 8 removable, self powered
ugen1.3: <vendor 0x1a40> at usbus1
uhub4: <vendor 0x1a40 USB 2.0 Hub MTT, class 9/0, rev 2.00/1.00, addr 3> on usbus1
uhub4: MTT enabled
uhub4: 7 ports with 7 removable, self powered
...
ugen1.4: <vendor 0x04d9> at usbus1
ukbd0: <vendor 0x04d9 USB Keyboard, class 0/0, rev 1.10/1.01, addr 4> on usbus1
kbd2 at ukbd0
kbd2: ukbd0, generic (0), config:0x0, flags:0x3d0000
uhid0: <vendor 0x04d9 USB Keyboard, class 0/0, rev 1.10/1.01, addr 4> on usbus1
...
ugen1.5: <Logitech> at usbus1
...
ums0: <Logitech USB Laser Mouse, class 0/0, rev 2.00/31.00, addr 5> on usbus1
ums0: 8 buttons and [XYZT] coordinates ID=0
Files