USB issues with 12.0
Florian Schulze
mail at florian-schulze.net
Tue Apr 2 06:22:55 UTC 2019
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 at 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 at 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 at 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 at 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 at 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 at 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
More information about the freebsd-usb
mailing list