Like I believe others have reported before: There is something fishy with the USB support on Mamba. The xhci pci driver is loaded and have bound to the USB3 controller:
root@wrt1900ac-1:/# lspci -vvvnns 1: 01:00.0 USB controller [0c03]: Etron Technology, Inc. EJ168 USB 3.0 Host Controller [1b6f:7023] (rev 01) (prog-if 30 [XHCI]) Subsystem: Etron Technology, Inc. EJ168 USB 3.0 Host Controller [1b6f:7023] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 43 Region 0: Memory at f8000000 (64-bit, non-prefetchable) [size=32K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [70] MSI: Enable+ Count=1/4 Maskable+ 64bit+ Address: 00000000f1020a04 Data: 0f10 Masking: 0000000e Pending: 00000000 Capabilities: [a0] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 1024 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <64us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s (ok), Width x1 (ok) TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled AtomicOpsCtl: ReqEn- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v1] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ AERCap: First Error Pointer: 14, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 00000000 00000000 00000000 00000000 Capabilities: [190 v1] Device Serial Number 01-01-01-01-01-01-01-01 Kernel driver in use: xhci_hcd lspci: Unable to load libkmod resources: error -12 The USB buses are looking fine, and the interface driver has bound: [ 11.282205] usbcore: registered new interface driver io_edgeport [ 11.288286] usbserial: USB Serial support registered for Edgeport 2 port adapter [ 11.295782] usbserial: USB Serial support registered for Edgeport 4 port adapter [ 11.303272] usbserial: USB Serial support registered for Edgeport 8 port adapter [ 11.310756] usbserial: USB Serial support registered for EPiC device [ 11.317228] io_edgeport 2-2:1.0: Edgeport 4 port adapter converter detected [ 11.341676] usb 2-2: Inside Out Networks Edgeport/4 detected [ 12.959959] random: fast init done [ 14.373450] usb 2-2: Edgeport 4 port adapter converter now attached to ttyUSB0 [ 14.380967] usb 2-2: Edgeport 4 port adapter converter now attached to ttyUSB1 [ 14.388500] usb 2-2: Edgeport 4 port adapter converter now attached to ttyUSB2 [ 14.396022] usb 2-2: Edgeport 4 port adapter converter now attached to ttyUSB3 root@wrt1900ac-1:/# lsusb -t /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M |__ Port 2: Dev 2, If 0, Class=Vendor Specific Class, Driver=io_edgeport, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=orion-ehci/1p, 480M The interface driver has even loaded firmware over USB, That worked fine, using control requests: root@wrt1900ac-1:~# cat /sys/kernel/debug/usb/usbmon/2t ceeb4780 909460090 S Ci:002:00 s 80 06 0301 0409 00ff 255 < ceeb4780 909467282 C Ci:002:00 0 40 = 28034900 6e007300 69006400 65002000 4f007500 74002000 4e006500 74007700 ceeb4780 909467514 S Ci:002:00 s 80 06 0302 0409 00ff 255 < ceeb4780 909472280 C Ci:002:00 0 22 = 16034500 64006700 65007000 6f007200 74002f00 3400 ceeb4780 909478225 S Ci:002:00 s c0 01 0000 0000 0018 24 < ceeb4780 909479289 C Ci:002:00 -32 0 ceeb4780 909479489 S Ci:002:00 s c0 05 7c00 00ff 0040 64 < ceeb4780 909489282 C Ci:002:00 0 64 = 00180001 001c0001 00200001 00240009 00000000 00000000 0300ffff 0048ffff ceeb4780 909489511 S Ci:002:00 s c0 05 7c40 00ff 0040 64 < ceeb4780 909499282 C Ci:002:00 0 64 = 0344ffff 0362ffff 12010001 ff00ff08 08160100 00010102 05010902 27000101 ceeb4780 909499559 S Ci:002:00 s c0 05 7c80 00ff 0040 64 < ceeb4780 909509285 C Ci:002:00 0 64 = 02040309 04280349 006e0073 00690064 00650020 004f0075 00740020 004e0065 ceeb4780 909509526 S Ci:002:00 s c0 05 7cc0 00ff 0040 64 < ceeb4780 909519285 C Ci:002:00 0 64 = 0034002a 0343006f 006e0066 00690067 00750072 00610074 0069006f 006e0020 ceeb4780 909519535 S Ci:002:00 s c0 05 7d00 00ff 0040 64 < ceeb4780 909529285 C Ci:002:00 0 64 = 00200023 00310000 00000000 00000000 00000000 00000000 00000000 00000000 ceeb4780 909529523 S Ci:002:00 s c0 05 7d40 00ff 0040 64 < ceeb4780 909539285 C Ci:002:00 0 64 = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ceeb4780 909539536 S Ci:002:00 s c0 05 7d80 00ff 0040 64 < ceeb4780 909549286 C Ci:002:00 0 64 = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ceeb4780 909549525 S Ci:002:00 s c0 05 7dc0 00ff 0040 64 < ceeb4780 909559285 C Ci:002:00 0 64 = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ceeb4780 909559521 S Ci:002:00 s c0 05 7e00 00ff 0040 64 < [deleted lots of boring control requests] ceeb4680 911221291 S Co:002:00 s 40 04 5e00 00ff 0040 64 = 2701bd28 047e2701 bd7e3701 9d9d327d 022e0556 7a05567a 37019d7e 37017d7d ceeb4680 911231270 C Co:002:00 0 64 > ceeb4680 912439283 S Co:002:00 s 40 04 7c55 00ff 0040 64 = fa7ff689 e4ca6b5e d4003f68 207e8400 409d8dda 6bbd8738 16ca797d 78127c84 ceeb4680 912449260 C Co:002:00 0 64 > ceeb4680 912449283 S Co:002:00 s 40 04 7c95 00ff 0040 64 = 39b55555 7e040040 9d705006 2d707d07 6d777c31 7e7b007a 6b000b7c 0b6ca5d9 ceeb4680 912459260 C Co:002:00 0 64 > ceeb4680 912459282 S Co:002:00 s 40 04 7cd5 00ff 0040 64 = 9f207e2b 007e1b10 bc017816 0b2c0b1c a5dbef7c b620e003 6390304d 777893c2 ceeb4680 912469260 C Co:002:00 0 64 > ceeb4680 912469288 S Co:002:00 s 40 04 7d15 00ff 0040 64 = 02020402 08100210 04020800 01010800 01000200 02020802 0420047e 187fbd7a ceeb4680 912479260 C Co:002:00 0 64 > ceeb4680 912479285 S Co:002:00 s 40 04 7d55 00ff 000a 10 = a5b80203 4ea00822 80fe ceeb4680 912483260 C Co:002:00 0 10 > ceeb4680 912483281 S Co:002:00 s 40 07 4000 0001 0000 0 ceeb4680 912489260 C Co:002:00 0 0 But bulk requests just don't work, which is kind of a show stopper for USB serial and most other USB devices. All I see is EINPROGRESS when attempting to write to the ttys: ceeb4800 948650421 S Ii:002:02 -115 32 < ce0b9480 948650447 S Bo:002:01 -115 3 = cb0000 ce0b9100 953670634 S Bo:002:01 -115 3 = ca0000 ce0b9780 958710599 S Bo:002:01 -115 3 = c90000 ce0b9d00 963750691 S Bo:002:01 -115 3 = c80000 ce0b9f00 973667062 S Bo:002:01 -115 3 = c80000 Any ideas? It's not as simple as some missing driver or gpio setting since this actually works up to and including USB control requests. Why are the bulk requests failing? Bjørn _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel