I have a pcengines APU 3 system, which has both USB3 and USB2 ports: ehci0 at pci0 dev 18 function 0 "AMD Hudson-2 USB2" rev 0x39: apic 4 int 18 ehci1 at pci0 dev 19 function 0 "AMD Hudson-2 USB2" rev 0x39: apic 4 int 18
xhci0 at pci0 dev 16 function 0 "AMD Bolton xHCI" rev 0x11: msi The USB2 ports seem to be broken. I initially was having trouble getting an LTE modem to work, but then noticed more general underlying issues. If a USB device is connected when the system boots, it will find it; however, if you hot plug a USB device after the system is up, it doesn't notice. Further, if you unplug a device while the system is up, it doesn't notice it was removed. It appears that the system isn't receiving interrupts for the EHCI USB devices, the interrupt count from vmstat -i : irq101/ehci0 19 0 irq101/ehci1 46 0 does not change when I plug in or remove a device, and I think the reason the LTE modem is not working is because the cell modem driver never receives a response from the commands sent to the modem, presumably because the interrupt notifying the USB driver the data is ready to read is never seen/handled. The xhci usb3 ports work fine, they hot plug/remove devices correctly, the lte modem works when plugged into them, and the vmstat interrupt count for irq99/xhci0 increases when devices are using those ports. The EHCI ports seem to work fine under Linux, including the LTE modem when attached to them, so this seems to be an issue with openbsd, not faulty hardware per se. The Linux driver does have a couple of workarounds in their EHCI driver for AMD chipsets, I'm not sure if either of them are relevant for this; one involves disabling low power mode during transfers and the other says: "EHCI controller on AMD SB700/SB800/Hudson-2/3 platforms may read/write memory space which does not belong to it when there is NULL pointer with T-bit set to 1 in the frame list table. To avoid the issue, the frame list link pointer should always contain a valid pointer to a inactive qh" I don't see anything specifically discussing flaky interrupts. Any thoughts on what might be going on here with USB and how it fix it? Thanks...