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
_______________________________________________
freebsd-usb@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to