Discussion:
Help: USB 3.0 xHCI driver does not support non-root hub
Ryo ONODERA
2014-09-15 14:46:24 UTC
Permalink
Hi,

Our xHCI USB 3.0 driver with Intel Lynx Point/Lynx Point-LP, Renesas uPD70202
and Fresco Logic 0x1b73/0x1100 xHCI chips does not support non-root hub
as following.
I believe our xHCI driver have no non-root hub support.

I have tested some USB 1.1/2.0/3.0 hubs, and gotten same results.
Address Device Command TRB execution just after Enable Slot Command TRB
execution fails with USB Transaction Error.

I have spent some weeks, but I cannot find why Address Device Command fails.
(If your want to use Intel Lynx Point/Lynx Point-LP xHC, please
apply a patch in http://gnats.netbsd.org/49076.)

Anyone have a clue for xHCI's non-root hub support?
I really need any clue for non-root hub support.

Thank you.

P.S.
I know our xHCI driver have other problems (some USB Ethernet adapter and
USB-Serial converter does not detected properly),
but non-root hub support is essential for me now.


With the hub that is advertised as USB 3.0 hub.
uhub3 at uhub0 port 8: VIA Labs, Inc. USB2.0 Hub, class 9/0, rev 2.00/90.30, addr 4
uhub3: single transaction translator
uhub3: 4 ports with 4 removable, self powered
xhci0: xhci_open addr 4 depth 1 port 8 speed 3
xhci0: xhci_configure_endpoint dci 3 (0x81)
xhci0: xhci_do_command input: 0x000000013b20d000 0x00000000 0x04003000
xhci0: xhci_do_command output: 0x000000013a6d50c0 0x01000000 0x04008400
xhci0: xhci_new_device up 0xfffffe88148b8358 portno 4
xhci0: xhci_new_device hub 0xfffffe881234fad0
xhci0: xhci_new_device hub 0xfffffe881234fc50
xhci0: xhci_new_device hub 0xfffffe813aebaf50
xhci0: xhci_new_device hub 0x0
xhci0: xhci_new_device rhport 4
xhci0: xhci_open addr 0 depth 2 port 4 speed 3
xhci0: xhci_do_command input: 0x0000000000000000 0x00000000 0x00002400
xhci0: xhci_do_command output: 0x000000013a6d50d0 0x01000000 0x05008400
xhci0: dcbaa 0xffff80023a25b028 dc 000000013b23f000 slot 5
xhci0: xhci_do_command input: 0x000000013b240000 0x00000000 0x05002c00
xhci0: command completion failure: 0x000000013a6d50e0 0x04000000 0x05008400
xhci0: xhci_do_command output: 0x000000013a6d50e0 0x04000000 0x05008400
uhub3: device problem, disabling port 4

With USB 3.0 hub.
uhub3 at uhub0 port 8: Genesys Logic product 0x0610, class 9/0, rev 2.10/41.15, addr 13
uhub3: multiple transaction translators
uhub3: 4 ports with 1 removable, self powered
xhci0: xhci_open addr 13 depth 1 port 8 speed 3
xhci0: xhci_configure_endpoint dci 3 (0x81)
xhci0: xhci_do_command input: 0x000000013b3e8000 0x00000000 0x0d003000
xhci0: xhci_do_command output: 0x000000013a6d5280 0x01000000 0x0d008400
xhci0: xhci_new_device up 0xfffffe88148b82f8 portno 1
xhci0: xhci_new_device hub 0xfffffe881234fad0
xhci0: xhci_new_device hub 0xfffffe881234fc50
xhci0: xhci_new_device hub 0xfffffe813aebaf50
xhci0: xhci_new_device hub 0x0
xhci0: xhci_new_device rhport 1
xhci0: xhci_open addr 0 depth 2 port 1 speed 3
xhci0: xhci_do_command input: 0x0000000000000000 0x00000000 0x00002400
xhci0: xhci_do_command output: 0x000000013a6d5290 0x01000000 0x0e008400
xhci0: dcbaa 0xffff80023a25b070 dc 000000013b41d000 slot 14
xhci0: xhci_do_command input: 0x000000013b41e000 0x00000000 0x0e002c00
xhci0: command completion failure: 0x000000013a6d52a0 0x04000000 0x0e008400
xhci0: xhci_do_command output: 0x000000013a6d52a0 0x04000000 0x0e008400
uhub3: device problem, disabling port 1

With USB 2.0 hub.
uhub3 at uhub0 port 8: Genesys Logic USB2.0 Hub, class 9/0, rev 2.00/32.98, addr 15
uhub3: multiple transaction translators
uhub3: 4 ports with 4 removable, self powered
xhci0: xhci_open addr 15 depth 1 port 8 speed 3
xhci0: xhci_configure_endpoint dci 3 (0x81)
xhci0: xhci_do_command input: 0x000000013b454000 0x00000000 0x0f003000
xhci0: xhci_do_command output: 0x000000013a6d52e0 0x01000000 0x0f008401
xhci0: xhci_new_device up 0xfffffe88148b8358 portno 4
xhci0: xhci_new_device hub 0xfffffe881234fad0
xhci0: xhci_new_device hub 0xfffffe881234fc50
xhci0: xhci_new_device hub 0xfffffe813aebaf50
xhci0: xhci_new_device hub 0x0
xhci0: xhci_new_device rhport 4
xhci0: xhci_open addr 0 depth 2 port 4 speed 3
xhci0: xhci_do_command input: 0x0000000000000000 0x00000000 0x00002400
xhci0: xhci_do_command output: 0x000000013a6d52f0 0x01000000 0x10008401
xhci0: dcbaa 0xffff80023a25b080 dc 000000013b486000 slot 16
xhci0: xhci_do_command input: 0x000000013b487000 0x00000000 0x10002c00
xhci0: command completion failure: 0x000000013a6d5300 0x04000000 0x10008401
xhci0: xhci_do_command output: 0x000000013a6d5300 0x04000000 0x10008401
uhub3: device problem, disabling port 4

With USB 1.1 hub.
uhub3 at uhub0 port 8: Atmel Standard USB Hub, class 9/0, rev 1.10/3.00, addr 17
uhub3: 4 ports with 4 removable, self powered
xhci0: xhci_open addr 17 depth 1 port 8 speed 2
xhci0: xhci_configure_endpoint dci 3 (0x81)
xhci0: xhci_do_command input: 0x000000013b4bd000 0x00000000 0x11003000
xhci0: xhci_do_command output: 0x000000013a6d5340 0x01000000 0x11008400
xhci0: xhci_new_device up 0xfffffe88148b82f8 portno 1
xhci0: xhci_new_device hub 0xfffffe881234fad0
xhci0: xhci_new_device hub 0xfffffe881234fc50
xhci0: xhci_new_device hub 0xfffffe813aebaf50
xhci0: xhci_new_device hub 0x0
xhci0: xhci_new_device rhport 1
xhci0: xhci_open addr 0 depth 2 port 1 speed 2
xhci0: xhci_do_command input: 0x0000000000000000 0x00000000 0x00002400
xhci0: xhci_do_command output: 0x000000013a6d5350 0x01000000 0x12008400
xhci0: dcbaa 0xffff80023a25b090 dc 000000013b4f5000 slot 18
xhci0: xhci_do_command input: 0x000000013b4f6000 0x00000000 0x12002c00
xhci0: command completion failure: 0x000000013a6d5360 0x04000000 0x12008400
xhci0: xhci_do_command output: 0x000000013a6d5360 0x04000000 0x12008400
uhub3: device problem, disabling port 1

--
Ryo ONODERA // ***@yk.rim.or.jp
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Jonathan A. Kollasch
2014-09-15 15:55:54 UTC
Permalink
Post by Ryo ONODERA
Hi,
Our xHCI USB 3.0 driver with Intel Lynx Point/Lynx Point-LP, Renesas uPD70202
and Fresco Logic 0x1b73/0x1100 xHCI chips does not support non-root hub
as following.
I believe our xHCI driver have no non-root hub support.
Correct, I never got around to implementing non-root hub support.

Jonathan Kollasch
Ryo ONODERA
2014-09-16 08:45:13 UTC
Permalink
Post by Jonathan A. Kollasch
Post by Ryo ONODERA
Hi,
Our xHCI USB 3.0 driver with Intel Lynx Point/Lynx Point-LP, Renesas uPD70202
and Fresco Logic 0x1b73/0x1100 xHCI chips does not support non-root hub
as following.
I believe our xHCI driver have no non-root hub support.
Correct, I never got around to implementing non-root hub support.
Thanks for your confirmation!

I am new to NetBSD kernel programming, so if you have any advice,
please post it to the lists.

Thank you.

--
Ryo ONODERA // ***@yk.rim.or.jp
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Takahiro HAYASHI
2014-10-04 01:32:17 UTC
Permalink
This post might be inappropriate. Click to display it.
Takahiro HAYASHI
2014-10-12 03:34:14 UTC
Permalink
This post might be inappropriate. Click to display it.
Takahiro HAYASHI
2014-10-13 18:08:17 UTC
Permalink
Post by Takahiro HAYASHI
- 3.0 hub should work, but either HS hub or SS hub in 3.0 hub
may not be recognised.
It looks one of these simultaneous interrupts is lost.
uhub_intr() drops latter interrupt while uhub is exploring
(sc_explorepending=1) for devices of former interrupt.

I tried to change root hub of xhci not to overlap SS and HS ports,
and add force rescan like roothub for ehci does in uhub.c.
Post by Takahiro HAYASHI
xhci0: SP: 03000402 20425355 00000201
xhci0: SP: 02000002 20425355 00000203
# usbdevs -dv -f /dev/usb5
Controller /dev/usb5:
addr 0: super speed, self powered, config 1, xHCI Root Hub(0x0000), NetBSD(0x000
0), rev 1.00
uhub0
port 1 addr 7: super speed, self powered, config 1, USB 3.0 HUB
(0x0812), VLI Labs, Inc.(0x2109), rev 85.71
uhub8
port 1 powered
port 2 powered
port 3 addr 8: super speed, self powered, config 1, USB3.0 Hub(0x0616), Genesy
sLogic(0x05e3), rev 4.01
uhub9
port 1 powered
port 2 powered
port 3 powered
port 4 powered
port 4 powered
port 2 powered
port 3 addr 5: high speed, self powered, config 1, USB 2.0 HUB
(0x2812), vendor 2109(0x2109), rev 85.70
uhub6
port 1 powered
port 2 powered
port 3 addr 6: high speed, self powered, config 1, USB2.0 Hub(0x0610), Genesys
Logic(0x05e3), rev 4.01
uhub7
port 1 powered
port 2 powered
port 3 powered
port 4 powered
port 4 powered
port 4 powered
#
Post by Takahiro HAYASHI
xhci0: SP: 02000802 20425355 30100601
xhci0: SP: 03000802 20425355 10000107
# usbdevs -dv
Controller /dev/usb0:
addr 0: super speed, self powered, config 1, xHCI Root Hub(0x0000), NetBSD(0x000
0), rev 1.00
uhub0
port 1 addr 3: high speed, self powered, config 1, USB 2.0 HUB
(0x2812), vendor 2109(0x2109), rev 85.70
uhub3
port 1 powered
port 2 powered
port 3 addr 4: high speed, self powered, config 1, USB2.0 Hub(0x0610), Genesys
Logic(0x05e3), rev 4.01
uhub4
port 1 powered
port 2 powered
port 3 powered
port 4 powered
port 4 powered
port 2 powered
port 3 powered
port 4 powered
port 5 powered
port 6 powered
port 7 addr 1: super speed, self powered, config 1, USB 3.0 HUB
(0x0812), VLI Labs, Inc.(0x2109), rev 85.71
uhub1
port 1 powered
port 2 powered
port 3 addr 2: super speed, self powered, config 1, USB3.0 Hub(0x0616), Genesy
sLogic(0x05e3), rev 4.01
uhub2
port 1 powered
port 2 powered
port 3 powered
port 4 powered
port 4 powered
#
--
t-hash
Loading...