NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Strange behaviour on PCEngines APU2



Staffan Thomén <duck%shangtai.net@localhost> writes:

>>> There was also a problem communicating with it when it attached using
>>> ehci, disabling ehci made it connect through an uhub attached to xhci
>>> and it started to work. Apparently something isn't working right
>>> though, but I don't know any knobs to twiddle here.
>> Are you sure you didn't get that backwards?  ehci is USB2, and xhci is
>> USB3.  Is the tellstick a USB3 device, or USB2, or ?
>
> The tellstick is probably a USB2 device (it's a bit hard to tell..),
> but somehow it still attached and worked on the xhci; this is from the
> dmesg in the first message in this thread:
>
> usb1 at xhci0: USB revision 2.0
>
> uhub1 at usb1: vendor 1022 (0x1022) xHCI Root Hub (0000), class 9/0,
> rev 2.00/1.00, addr 0
>
> ugen0 at uhub1 port 1
> ugen0: Telldus (0x1781) TellStick Duo (0xc31), rev 2.00/6.00, addr 1

I am 98% sure that the 'rev 2.00' means that it has attached as USB2,
and 80% sure that it is USB2.  (perhaps 2.10 implies 3 attached as 2)

> I just tried setting it up on my laptop running 8.1_STABLE from June
> 10th, and it works with either ehci or xhci, but with xhci it only
> works on one specific usb port. If I let it attach via ehci, it works
> on any of the three ports.
>
> On the lenovo x220:
>
> usb0 at xhci0: USB revision 3.0
> usb1 at xhci0: USB revision 2.0

That looks like one bus for 3 and one for 2, both via xhci.  The next
question is about how the physical ports correspond  to the ports on
those two hubs.  I have the impression they are switched depending on
the device.

> uhub1 at usb1: vendor 1033 (0x1033) xHCI Root Hub (0000), class 9/0,
> rev 2.00/1.00, addr 0
> uhub1: 2 ports with 2 removable, self powered
>
> ugen0 at uhub1 port 1
> ugen0: Telldus (0x1781) TellStick Duo (0cx31), rev 2.00/6.00, addr 1

So that is on the USB2 version of the xhci.

> The man page for xhci indicates that it is for 1.x, 2.0 and 3.0
> devices, and hints that the xhci driver is for some particular
> communication method between the OS and the controller.

That makes sense, that xhci is a new OS/controller interface as well as
supporting 3.  It was always odd the way there are uhci and ehci for
USB1/2, and I guess using xhci but still with multiple hubs is less odd.

What I am at a loss to understand is how the tellstick ever attached to
ehci0.  According to the apu2 manual
  https://pcengines.ch/pdf/apu2.pdf
J11 is two internal USB2 ports.  This shows up on mine as:

ehci0 at pci0 dev 19 function 0: vendor 1022 product 7808 (rev. 0x39)
ehci0: interrupting at ioapic0 pin 18
ehci0: EHCI version 1.0
usb2 at ehci0: USB revision 2.0
uhub2 at usb2: vendor 1022 (0x1022) EHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhub3 at uhub2 port 1: vendor 0438 (0x438) product 7900 (0x7900), class 9/0, rev 2.00/0.18, addr 2
uhub3: single transaction translator
uhub3: 4 ports with 4 removable, self powered

And I suspect that 2 of the four logical ports on uhub3 appear at J11
(internal USB2).  But on my system nothing is plugged in to that jack
and nothing attaches to the ehci hub.

uhub1 ports 1 and 2 appear to be the external connectors (as USB2) and
on mine show up as a disk and a 4-port powered hub.

Given that your tellstick is surely plugged into one of the external
ports (where it works as xhci) I am at a loss to understand how it is
apparently attaching to ehci.  (I believe you; but something is very odd
here.)


Home | Main Index | Thread Index | Old Index