Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 02 Apr 2019 08:22:48 +0200
From:      "Florian Schulze" <mail@florian-schulze.net>
To:        "Hans Petter Selasky" <hps@selasky.org>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: USB issues with 12.0
Message-ID:  <A06565BF-536A-4418-A01E-80D5F45D86B9@florian-schulze.net>
In-Reply-To: <f515fad2-7b43-70d7-4561-34b523751819@selasky.org>
References:  <74A35CD5-8D89-48B8-95AD-85108E98B39E@florian-schulze.net> <429667b1-a5af-bb05-9927-f51e0a936323@selasky.org> <730B2CAC-E43A-48B6-BE38-632944023C35@florian-schulze.net> <26abd10e-a98b-215a-3355-fa104f76efcf@selasky.org> <B0CEE860-DE36-447A-8C4F-8EE50B451125@florian-schulze.net> <bb5b90e5-5093-84db-01bd-bb3d2da43ccb@selasky.org> <A57BA68E-C962-40B0-9501-522DB9E46D18@florian-schulze.net> <f515fad2-7b43-70d7-4561-34b523751819@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 1 Apr 2019, at 16:31, Hans Petter Selasky wrote:

> On 4/1/19 4:01 PM, Florian Schulze wrote:
>>> What exact PCI models of xhci/ehci/ohci and uhci have you got?
>>> pciconf -lv
>>
>> The following all is with 10.3. Can't reboot at the moment to try 
>> with 12.0. Maybe tomorrow morning. This is a HP ProLiant Microserver 
>> Gen7 N54L.
>>
>> ohci0@pci0:0:18:0:    class=0x0c0310 card=0x1609103c 
>> chip=0x43971002 rev=0x00 hdr=0x00
>>      vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
>>      device     = 'SB7x0/SB8x0/SB9x0 USB OHCI0 Controller'
>>      class      = serial bus
>>      subclass   = USB
>> ehci0@pci0:0:18:2:    class=0x0c0320 card=0x1609103c 
>> chip=0x43961002 rev=0x00 hdr=0x00
>>      vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
>>      device     = 'SB7x0/SB8x0/SB9x0 USB EHCI Controller'
>>      class      = serial bus
>>      subclass   = USB
>> ohci1@pci0:0:19:0:    class=0x0c0310 card=0x1609103c 
>> chip=0x43971002 rev=0x00 hdr=0x00
>>      vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
>>      device     = 'SB7x0/SB8x0/SB9x0 USB OHCI0 Controller'
>>      class      = serial bus
>>      subclass   = USB
>> ehci1@pci0:0:19:2:    class=0x0c0320 card=0x1609103c 
>> chip=0x43961002 rev=0x00 hdr=0x00
>>      vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
>>      device     = 'SB7x0/SB8x0/SB9x0 USB EHCI Controller'
>>      class      = serial bus
>>      subclass   = USB
>> ohci2@pci0:0:22:0:    class=0x0c0310 card=0x1609103c 
>> chip=0x43971002 rev=0x00 hdr=0x00
>>      vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
>>      device     = 'SB7x0/SB8x0/SB9x0 USB OHCI0 Controller'
>>      class      = serial bus
>>      subclass   = USB
>> ehci2@pci0:0:22:2:    class=0x0c0320 card=0x1609103c 
>> chip=0x43961002 rev=0x00 hdr=0x00
>>      vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
>>      device     = 'SB7x0/SB8x0/SB9x0 USB EHCI Controller'
>>      class      = serial bus
>>      subclass   = USB

The above is exactly the same with 12.0.

>> ugen2.1: <OHCI root HUB ATI> at usbus2, cfg=0 md=HOST spd=FULL 
>> (12Mbps) pwr=SAVE (0mA)
>> ugen1.1: <EHCI root HUB ATI> at usbus1, cfg=0 md=HOST spd=HIGH 
>> (480Mbps) pwr=SAVE (0mA)
>> ugen0.1: <OHCI root HUB ATI> at usbus0, cfg=0 md=HOST spd=FULL 
>> (12Mbps) pwr=SAVE (0mA)
>> ugen5.1: <EHCI root HUB ATI> at usbus5, cfg=0 md=HOST spd=HIGH 
>> (480Mbps) pwr=SAVE (0mA)
>> ugen4.1: <OHCI root HUB ATI> at usbus4, cfg=0 md=HOST spd=FULL 
>> (12Mbps) pwr=SAVE (0mA)
>> ugen3.1: <EHCI root HUB ATI> at usbus3, cfg=0 md=HOST spd=HIGH 
>> (480Mbps) pwr=SAVE (0mA)
>> ugen3.2: <USB2.0 Hub Action Star> at usbus3, cfg=0 md=HOST spd=HIGH 
>> (480Mbps) pwr=SAVE (100mA)
>> ugen1.2: <RNDISEthernet Gadget Linux 2.6.31-rt11-lab126 with 
>> fsl-usb2-udc> at usbus1, cfg=1 md=HOST spd=HIGH (480Mbps) pwr=ON 
>> (2mA)
>> ugen3.3: <USB HID Action Star> at usbus3, cfg=0 md=HOST spd=HIGH 
>> (480Mbps) pwr=ON (20mA)
>> ugen3.4: <Arduino Leonardo Arduino LLC> at usbus3, cfg=0 md=HOST 
>> spd=FULL (12Mbps) pwr=ON (500mA)

Only difference is that the text for the Kindle is rearranged:
ugen1.2: <Linux 2.6.31-rt11-lab126 with fsl-usb2-udc RNDIS/Ethernet 
Gadget> at usbus1, cfg=1 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)

>>> It might be the host controller driver needs a quirk. See:
>>> sysctl -a hw.usb | grep hci
>>
>> hw.usb.xhci.dma32: 0
>> hw.usb.xhci.use_polling: 0
>> hw.usb.xhci.xhci_port_route: 0
>> hw.usb.xhci.debug: 0
>> hw.usb.xhci.streams: 0
>> hw.usb.uhci.loop: 0
>> hw.usb.uhci.debug: 0
>> hw.usb.ohci.debug: 0
>> hw.usb.ehci.lostintrbug: 0
>> hw.usb.ehci.iaadbug: 0
>> hw.usb.ehci.no_hs: 0
>> hw.usb.ehci.debug: 0

hw.usb.xhci.ctlstep: 0
hw.usb.xhci.dma32: 0
hw.usb.xhci.use_polling: 0
hw.usb.xhci.xhci_port_route: 0
hw.usb.xhci.debug: 0
hw.usb.xhci.streams: 0
hw.usb.uhci.loop: 0
hw.usb.uhci.debug: 0
hw.usb.ohci.debug: 0
hw.usb.ehci.lostintrbug: 0
hw.usb.ehci.iaadbug: 0
hw.usb.ehci.no_hs: 0
hw.usb.ehci.debug: 0

> Basically there are very few changes in the EHCI/OHCI drivers between 
> 10.3 and 12.0 . Does re-plugging the USB device make it appear again?

It creates messages via dmesg, but doesn't create ttyU0 and ue0:

First the Hub with the Arduino:

ugen3.2: <Action Star USB2.0 Hub> at usbus3 (disconnected)
uhub6: at uhub3, port 1, addr 2 (disconnected)
ugen3.3: <Action Star USB HID> at usbus3 (disconnected)
ukbd0: at uhub6, port 1, addr 3 (disconnected)
ukbd0: detached
ugen3.4: <Arduino LLC Arduino Leonardo> at usbus3 (disconnected)
uhub6: detached
ugen3.2: <Action Star USB2.0 Hub> at usbus3
uhub6 on uhub3
uhub6: <Action Star USB2.0 Hub, class 9/0, rev 2.00/1.06, addr 2> on 
usbus3
uhub6: MTT enabled
uhub6: 5 ports with 5 removable, self powered
ugen3.3: <Action Star USB HID> at usbus3
ukbd0 on uhub6
ukbd0: <Action Star USB HID, class 0/0, rev 2.00/6.05, addr 3> on usbus3
kbd2 at ukbd0
ugen3.4: <Arduino LLC Arduino Leonardo> at usbus3

Then the Kindle (directly attached to the NAS):

ugen1.2: <Linux 2.6.31-rt11-lab126 with fsl-usb2-udc RNDIS/Ethernet 
Gadget> at usbus1 (disconnected)
ugen1.2: <Linux 2.6.31-rt11-lab126 with fsl-usb2-udc RNDIS/Ethernet 
Gadget> at usbus1


> If you don't see any messages like "failed to enumerate" ... it means 
> the device is not visible at all to the USB host controller. Changing 
> values under:
>
> sysctl -a hw.usb.timings

Timings in 10.3:

hw.usb.timings.extra_power_up_time: 20
hw.usb.timings.resume_recovery: 50
hw.usb.timings.resume_wait: 50
hw.usb.timings.resume_delay: 250
hw.usb.timings.set_address_settle: 10
hw.usb.timings.port_resume_delay: 40
hw.usb.timings.port_powerup_delay: 300
hw.usb.timings.port_reset_recovery: 250
hw.usb.timings.port_root_reset_delay: 250
hw.usb.timings.port_reset_delay: 50

And in 12.0:

hw.usb.timings.extra_power_up_time: 20
hw.usb.timings.resume_recovery: 50
hw.usb.timings.resume_wait: 50
hw.usb.timings.resume_delay: 250
hw.usb.timings.set_address_settle: 10
hw.usb.timings.port_resume_delay: 40
hw.usb.timings.port_powerup_delay: 300
hw.usb.timings.port_reset_recovery: 250
hw.usb.timings.port_root_reset_delay: 200
hw.usb.timings.port_reset_delay: 50

I tried increasing the port_root_reset_delay to 250 as in 10.3, but that 
didn't change anything.

> Might affect the situation. In 12.0 there is a new system wide feature 
> called early AP startup, which kicks multithreading much earlier. 
> Maybe it affects the boot timing somehow.
>
> When FreeBSD 12.0 is booted, you might also want to try to do a reset 
> on the HUB, where I guess all devices are connected:
>
> usbconfig -d X.Y reset
>
> where X.Y are the numbers in ugenX.Y .

Didn't change anything.

Regards,
Florian Schulze



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A06565BF-536A-4418-A01E-80D5F45D86B9>