[OpenWrt-Devel] [PATCH 1/2] mvebu: add kernel 4.19 support

Bjørn Mork bjorn at mork.no
Fri Jun 7 15:12:54 EDT 2019


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 at 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 at 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 at 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 at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list