USB3 Ports not always recognized correctly

Oliver Fromme olli at lurza.secnetix.de
Sat Jan 26 16:11:03 UTC 2013


I've got a mainboard with two USB3 ports (and a whole bunch
of USB2 ports).  But only the first USB3 port is recognized
correctly.  When I connect a USB3 device to that port, it
works.  It also works (albeit slower, of course) when using
one of the USB2 ports.  But when I connect the same device
to the second USB3 port, it fails.

The board is an "ASUS M4A88TD-V EVO/USB3", and I'm using
FreeBSD stable/9 that's just a few days old (2013-01-22),
including r245734.

This is how the controllers and ports are probed:

xhci0: <NEC uPD720200 USB 3.0 controller> mem 0xfe9fe000-0xfe9fffff irq 18 at device 0.0 on pci2
xhci0: 32 byte context size.
usbus0 on xhci0
ohci0: <AMD SB7x0/SB8x0/SB9x0 USB controller> mem 0xfe6fe000-0xfe6fefff irq 18 at device 18.0 on pci0
usbus1 on ohci0
ehci0: <AMD SB7x0/SB8x0/SB9x0 USB 2.0 controller> mem 0xfe6ff800-0xfe6ff8ff irq 17 at device 18.2 on pci0
usbus2: EHCI version 1.0
usbus2 on ehci0
ohci1: <AMD SB7x0/SB8x0/SB9x0 USB controller> mem 0xfe6fd000-0xfe6fdfff irq 18 at device 19.0 on pci0
usbus3 on ohci1
ehci1: <AMD SB7x0/SB8x0/SB9x0 USB 2.0 controller> mem 0xfe6ff400-0xfe6ff4ff irq 17 at device 19.2 on pci0
usbus4: EHCI version 1.0
usbus4 on ehci1
ohci2: <AMD SB7x0/SB8x0/SB9x0 USB controller> mem 0xfe6fc000-0xfe6fcfff irq 18 at device 20.5 on pci0
usbus5 on ohci2
ohci3: <AMD SB7x0/SB8x0/SB9x0 USB controller> mem 0xfe6f3000-0xfe6f3fff irq 18 at device 22.0 on pci0
usbus6 on ohci3
ehci2: <AMD SB7x0/SB8x0/SB9x0 USB 2.0 controller> mem 0xfe6ff000-0xfe6ff0ff irq 17 at device 22.2 on pci0
usbus7: EHCI version 1.0
usbus7 on ehci2
usbus0: 5.0Gbps Super Speed USB v3.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 480Mbps High Speed USB v2.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 480Mbps High Speed USB v2.0
usbus5: 12Mbps Full Speed USB v1.0
usbus6: 12Mbps Full Speed USB v1.0
usbus7: 480Mbps High Speed USB v2.0
ugen0.1: <0x1033> at usbus0
uhub0: <0x1033 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
ugen1.1: <ATI> at usbus1
uhub1: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <ATI> at usbus2
uhub2: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen3.1: <ATI> at usbus3
uhub3: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
ugen4.1: <ATI> at usbus4
uhub4: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus4
ugen5.1: <ATI> at usbus5
uhub5: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus5
ugen6.1: <ATI> at usbus6
uhub6: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus6
ugen7.1: <ATI> at usbus7
uhub7: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus7
unknown: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01
uhub5: 2 ports with 2 removable, self powered
uhub6: 4 ports with 4 removable, self powered
uhub1: 5 ports with 5 removable, self powered
uhub3: 5 ports with 5 removable, self powered
uhub0: 4 ports with 4 removable, self powered
uhub7: 4 ports with 4 removable, self powered
uhub2: 5 ports with 5 removable, self powered
uhub4: 5 ports with 5 removable, self powered

For testing I'm using an external HDD ("HGST/Hitachi Touro
Desk DX3 4TB").  On the first USB3 port it works fine with
80 MB/s sequential speed.  It probes like this:

15:54:24 ugen0.2: <HitachiGST> at usbus0
15:54:24 umass0: <HitachiGST Touro Desk 3.0, class 0/0, rev 3.00/0.00, addr 1> on usbus0
15:54:24 umass0:  SCSI over Bulk-Only; quirks = 0x4101
15:54:24 umass0:8:0:-1: Attached to scbus8
<6 seconds pause>
15:54:30 (probe0:umass-sim0:0:0:0): REPORT LUNS. CDB: a0 0 0 0 0 0 0 0 0 10 0 0 
15:54:30 (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
15:54:30 (probe0:umass-sim0:0:0:0): SCSI status: Check Condition
15:54:30 (probe0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
15:54:30 (probe0:umass-sim0:0:0:0): Error 22, Unretryable error
<4 seconds pause>
15:54:34 da0 at umass-sim0 bus 0 scbus8 target 0 lun 0
15:54:34 da0: <HitachiG ST 0000> Fixed Direct Access SCSI-6 device 
15:54:34 da0: 400.000MB/s transfers
15:54:34 da0: 3815446MB (976754431 4096 byte sectors: 255H 63S/T 60800C)

When connecting the same disk to the second USB3 ports,
it fails in this way:

15:12:04 ugen2.3: <HitachiGST> at usbus2
15:12:04 umass0: <MSC Bulk-Only Transport> on usbus2
15:12:04 umass0:  SCSI over Bulk-Only; quirks = 0x4101
15:12:04 umass0:8:0:-1: Attached to scbus8
<73 seconds pause>
15:13:17 (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
15:13:17 (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
15:13:17 (probe0:umass-sim0:0:0:0): Retrying command
<74 seconds pause>
15:14:31 (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
15:14:31 (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
15:14:31 (probe0:umass-sim0:0:0:0): Retrying command
<74 seconds pause>
15:15:45 (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
15:15:45 (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
15:15:45 (probe0:umass-sim0:0:0:0): Retrying command
<74 seconds pause>
15:16:59 (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
15:16:59 (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
15:16:59 (probe0:umass-sim0:0:0:0): Retrying command
<74 seconds pause>
15:18:13 (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 
15:18:13 (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
15:18:13 (probe0:umass-sim0:0:0:0): Error 5, Retries exhausted

Of course, no device appears.  I notice that it attaches to
usbus2 that is only probed as "480Mbps High Speed USB v2.0"
according to the boot messages above, even though this is
a USB3 port.

Just for comparison, when I connect the same disk to a "real"
USB2 port, it is detected correctly with the following output:

15:20:47 ugen4.2: <HitachiGST> at usbus4
15:20:47 umass0: <MSC Bulk-Only Transport> on usbus4
15:20:47 umass0:  SCSI over Bulk-Only; quirks = 0x4101
15:20:47 umass0:8:0:-1: Attached to scbus8
<10 seconds pause>
15:20:57 (probe0:umass-sim0:0:0:0): REPORT LUNS. CDB: a0 0 0 0 0 0 0 0 0 10 0 0 
15:20:57 (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
15:20:57 (probe0:umass-sim0:0:0:0): SCSI status: Check Condition
15:20:57 (probe0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
15:20:57 (probe0:umass-sim0:0:0:0): Error 22, Unretryable error
15:20:57 da0 at umass-sim0 bus 0 scbus8 target 0 lun 0
15:20:57 da0: <HitachiG ST 0000> Fixed Direct Access SCSI-6 device 
15:20:57 da0: 40.000MB/s transfers
15:20:57 da0: 3815446MB (976754431 4096 byte sectors: 255H 63S/T 60800C)

By the way:  This disk uses 4096 bytes per sector, so you
cannot use fdisk, and my mainboard would probably be unable
to boot from this disk (which is not a problem for me,
because I don't intend to use this particular disk as a
boot device).

Best regards
   Oliver

-- 
Oliver Fromme,  secnetix GmbH & Co. KG,  Marktplatz 29, 85567 Grafing
Handelsregister:  Amtsgericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsreg.: Amtsgericht München,
HRB 125758, Geschäftsführer:  Maik Bachmann,  Olaf Erb,  Ralf Gebhart

FreeBSD-Dienstleistungen/-Produkte + mehr: http://www.secnetix.de/bsd

"The worst thing about Perl jokes is that next morning you can't understand
why they seemed so funny."  (from #protolol)


More information about the freebsd-usb mailing list