I'm unable to see USB devices connected to the internal USB headers on
a PC Engines APU2c2 board. The same devices work as expected when
connected to the external USB ports.
I have a TinyCore Linux USB stick handy that I used to update the
board's firmware. If I boot it and run `lsusb` then I can see my
devices using all of the internal and external USB headers/ports.
So it would seem that the internal headers are wired up and working,
but for some reason I can't use them via ehci. Note that that the
external USB ports are USB3, so devices appear via xhci. It could
therefore be a wider issue with ehci on this board.
I've included as much detail as I know how to find below. If anyone
has any ideas for things I can try to make this work I'd be very
pleased to hear them.
Sam
Host: PC Engines APU2c2 running OpenBSD 6.0, then TinyCore Linux 6.4.
Test device: FTDI Basic USB to Serial board.
- - - - OpenBSD dmesg - - - -
$ dmesg | egrep -i 'hci|hub|usb'
xhci0 at pci0 dev 16 function 0 "AMD Bolton xHCI" rev 0x11: msi
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 "AMD xHCI root hub" rev 3.00/1.00 addr 1
ahci0 at pci0 dev 17 function 0 "AMD Hudson-2 SATA" rev 0x40: apic 4 int 19,
AHCI 1.3
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
ehci0 at pci0 dev 19 function 0 "AMD Hudson-2 USB2" rev 0x39: apic 4 int 18
usb1 at ehci0: USB revision 2.0
uhub1 at usb1 "AMD EHCI root hub" rev 2.00/1.00 addr 1
uhub2 at uhub1 port 1 "Advanced Micro Devices product 0x7900" rev 2.00/0.18
addr 2
- - - - OpenBSD, FTDI on internal J11 USB header (EHCI) - - - -
$ usbdevs -vd
Controller /dev/usb0:
addr 1: super speed, self powered, config 1, xHCI root hub(0x),
AMD(0x1022), rev 1.00
uhub0
port 1 disabled
port 2 disabled
port 3 disabled
port 4 disabled
Controller /dev/usb1:
addr 1: high speed, self powered, config 1, EHCI root hub(0x),
AMD(0x1022), rev 1.00
uhub1
port 1 addr 2: high speed, self powered, config 1, product 0x7900(0x7900),
Advanced Micro Devices(0x0438), rev 0.18
uhub2
port 1 powered
port 2 powered
port 3 powered
port 4 powered
port 2 powered
- - - - OpenBSD, FTDI on external USB port (xHCI) - - - -
$ usbdevs -vd
Controller /dev/usb0:
addr 1: super speed, self powered, config 1, xHCI root hub(0x),
AMD(0x1022), rev 1.00
uhub0
port 1 disabled
port 2 disabled
port 3 addr 2: full speed, power 90 mA, config 1, FT232R USB UART(0x6001),
FTDI(0x0403), rev 6.00, iSerialNumber A8004w2k
uftdi0
port 4 disabled
Controller /dev/usb1:
addr 1: high speed, self powered, config 1, EHCI root hub(0x),
AMD(0x1022), rev 1.00
uhub1
port 1 addr 2: high speed, self powered, config 1, product 0x7900(0x7900),
Advanced Micro Devices(0x0438), rev 0.18
uhub2
port 1 powered
port 2 powered
port 3 powered
port 4 powered
port 2 powered
- - - - OpenBSD pcidumps - - - -
$ doas pcidump -v 0:16:0
0:16:0: AMD Bolton xHCI
0x: Vendor ID: 1022 Product ID: 7814
0x0004: Command: 0006 Status: 0010
0x0008: Class: 0c Subclass: 03 Interface: 30 Revision: 11
0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size:
10
0x0010: BAR mem 64bit addr: 0xfeb22000/0x2000
0x0018: BAR empty ()
0x001c: BAR empty ()
0x0020: BAR empty ()
0x0024: BAR empty ()
0x0028: Cardbus CIS:
0x002c: Subsystem Vendor ID: 1022 Product ID: 1410
0x0030: Expansion ROM Base Address:
0x0038:
0x003c: Interrupt Pin: 01 Line: 00 Min Gnt: 00 Max Lat: 00
0x0050: Capability 0x01: Power Management
State: D0
0x0070: Capability 0x05: Message Signaled Interrupts (MSI)
0x0090: Capability 0x11: Extended Message Signaled Interrupts (MSI-X)
0x00a0: Capability 0x10: PCI Express
$ doas pcidump -v 0:19:0
0:19:0: AMD Hudson-2 USB2
0x: Vendor ID: 1022 Product ID: 7808
0x0004: Command: 0006 Status: 02b0
0x0008: Class: 0c Subclass: 03 Interface: 20 Revision: 39
0x000c: BIST: 00 Header Type: 00 Latency Timer: 40 Cache Line Size:
10
0x0010: BAR mem 32bit addr: 0xfeb25400/0x0100
0x0014: BAR empty ()
0x0018: BAR empty ()
0x001c: BAR empty ()
0x0020: BAR empty ()
0x0024: BAR empty ()
0x0028: Cardbus CIS:
0x002c: Subsystem Vendor ID: 1022 Product ID: 7808
0x0030: Expansion ROM Base Address:
0x0038:
0x003c: Interrupt Pin: 01 Line: 00 Min Gnt: 00 Max Lat: 00
0x00c0: Capability 0x01: Power Management
State: D0
0x00e4: Capability 0x0a: Debug Port
- - - - Linux dmesg - - - -
# dmesg | egrep -i 'hci|hub|usb' | cut -c16-
pci :00:11.0: set SATA to AHCI mode
ACPI: bus type USB registered
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: