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>