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(0x0000), 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(0x0000), 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(0x0000), 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(0x0000), 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 0x0000: 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: 0x00000000feb22000/0x00002000 0x0018: BAR empty (00000000) 0x001c: BAR empty (00000000) 0x0020: BAR empty (00000000) 0x0024: BAR empty (00000000) 0x0028: Cardbus CIS: 00000000 0x002c: Subsystem Vendor ID: 1022 Product ID: 1410 0x0030: Expansion ROM Base Address: 00000000 0x0038: 00000000 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 0x0000: 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/0x00000100 0x0014: BAR empty (00000000) 0x0018: BAR empty (00000000) 0x001c: BAR empty (00000000) 0x0020: BAR empty (00000000) 0x0024: BAR empty (00000000) 0x0028: Cardbus CIS: 00000000 0x002c: Subsystem Vendor ID: 1022 Product ID: 7808 0x0030: Expansion ROM Base Address: 00000000 0x0038: 00000000 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 0000: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: registered new device driver usb ahci 0000:00:11.0: version 3.0 ahci 0000:00:11.0: AHCI 0001.0300 32 slots 2 ports 6 Gbps 0x3 impl SATA mode ahci 0000:00:11.0: flags: 64bit ncq sntf ilck pm led clo pmp fbs pio slum part scsi0 : ahci scsi1 : ahci ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-pci: EHCI PCI platform driver ehci-pci 0000:00:13.0: EHCI Host Controller ehci-pci 0000:00:13.0: new USB bus registered, assigned bus number 1 ehci-pci 0000:00:13.0: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround ehci-pci 0000:00:13.0: debug port 2 ehci-pci 0000:00:13.0: irq 18, io mem 0xfeb25400 ehci-pci 0000:00:13.0: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver ohci-pci: OHCI PCI platform driver uhci_hcd: USB Universal Host Controller Interface driver usbcore: registered new interface driver uas usbcore: registered new interface driver usb-storage usbcore: registered new interface driver ums-alauda usbcore: registered new interface driver ums-cypress usbcore: registered new interface driver ums-datafab usbcore: registered new interface driver ums_eneub6250 usbcore: registered new interface driver ums-freecom usbcore: registered new interface driver ums-isd200 usbcore: registered new interface driver ums-jumpshot usbcore: registered new interface driver ums-karma usbcore: registered new interface driver ums-onetouch usbcore: registered new interface driver ums-sddr09 usbcore: registered new interface driver ums-sddr55 usbcore: registered new interface driver ums-usbat usbcore: registered new interface driver appletouch usbcore: registered new interface driver bcm5974 usbcore: registered new interface driver synaptics_usb usbcore: registered new interface driver usbhid usbhid: USB HID core driver usb 1-1: new high-speed USB device number 2 using ehci-pci hub 1-1:1.0: USB hub found hub 1-1:1.0: 4 ports detected xhci_hcd 0000:00:10.0: xHCI Host Controller xhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 2 xhci_hcd 0000:00:10.0: irq 77 for MSI/MSI-X xhci_hcd 0000:00:10.0: irq 78 for MSI/MSI-X xhci_hcd 0000:00:10.0: irq 79 for MSI/MSI-X xhci_hcd 0000:00:10.0: irq 80 for MSI/MSI-X xhci_hcd 0000:00:10.0: irq 81 for MSI/MSI-X hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected xhci_hcd 0000:00:10.0: xHCI Host Controller xhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 3 hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman sdhci-pci 0000:00:14.7: SDHCI controller found [1022:7813] (rev 1) mmc0: SDHCI controller on PCI [0000:00:14.7] using ADMA usb 2-1: new high-speed USB device number 2 using xhci_hcd usb-storage 2-1:1.0: USB Mass Storage device detected scsi4 : usb-storage 2-1:1.0 - - - - Linux, FTDI on internal J11 USB header (EHCI) - - - - usb 1-1.1: new full-speed USB device number 3 using ehci-pci # lsusb Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC Bus 001 Device 002: ID 0438:7900 Advanced Micro Devices, Inc. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 002: ID 0781:5571 SanDisk Corp. Cruzer Fit Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub # lsusb -v -s 1:3 Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0403 Future Technology Devices International, Ltd idProduct 0x6001 FT232 USB-Serial (UART) IC bcdDevice 6.00 iManufacturer 1 FTDI iProduct 2 FT232R USB UART iSerial 3 A8004w2k bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 90mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 2 FT232R USB UART Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered) - - - -