USB driver issues

Hi

Noticed very strange behavior... Fighting it for 2 months. So I'm here for an advice.

IXP4xx architecture device (yes, I know, it's quite old, but covers all my needs. After all, OWrt is exactly to give another lives to that oldies, right? )) ). Has 1.1 and 2.0 USB. OWrt 18.06.9
1.1 works OK under uhci driver.
2.0 initiates under usb2-pci package and ehci-pci driver.

Storage drives resetting all time under ehci-pci, even when make ext4 formatting, or copying extroot to it.
Without ehci-pci - drives work OK (under USB 1.1 and uhci), but I also need a modem, which requires USB 2.0.

I suppose, it's a ehci-pci driver issue. (Unfortunately, other USB 2.0 drivers don't recognize devices). May be there's a CONFLICT between uhci and ehci-pci drivers? But WITHOUT uhci, if I install USB 2.0 driver ONLY, no devices are recognized at all... So, I have to have BOTH (uhci and ehci-pci)

Easiest solution would be to "bind" a driver to the specific port? I would use 1.1 for storage, and 2.0 for modem. Is there any way to do it?
If not, I need correct USB 2 driver, but seems there's NO such (((

PS Resetting occurs during I/O operations. Changed MANY flash drives, SD-cards, used HDD as well - all the same, so most likely it's NOT a drives' hardware issue...

./etc/init.d/boot
./etc/init.d/cron
./etc/init.d/dnsmasq
[ 7763.075720] usb 3-1: reset high-speed USB device number 2 using ehci-pci    ]
[ 7794.435038] usb 3-1: reset high-speed USB device number 2 using ehci-pci
[ 7826.434374] usb 3-1: reset high-speed USB device number 2 using ehci-pci    ]
./etc/init.d/done99.4kiB/s] [            <=>                                   ]
./etc/init.d/dropbear
./etc/init.d/firewall

lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/4p, 480M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M

Have you tried an external powered hub or higher wattage power supply

All is powered externally. Either HUB, or HDD enclosure itself.

ALSO, I tried to limit write speed (used pv with pipe). No effect

BTW, there're only 2 USB plugs, why I get BUS #3??? BUS is NOT a logical device, am I right??

/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/4p, 480M
1 Like

Soooo annoying.... (this below is with journal on)

./
./bin/
./bin/ash
./bin/board_detect
./bin/busybox
[ 3445.684360] usb 1-1.3: reset high-speed USB device number 4 using ehci-pci  ]
[ 3445.895920] sd 0:0:0:0: [sda] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x08
[ 3445.904231] sd 0:0:0:0: [sda] tag#0 Sense Key : 0x6 [current]
[ 3445.910209] sd 0:0:0:0: [sda] tag#0 ASC=0x28 ASCQ=0x0
[ 3445.915502] sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x2a 2a 00 00 70 08 c0 00 00 28 00
[ 3445.923137] blk_update_request: I/O error, dev sda, sector 7342272
[ 3445.930953] Aborting journal on device sda3-8.
[ 3445.935853] JBD2: Error -5 detected when updating journal superblock for sda3-8.
[ 3445.944259] EXT4-fs error (device sda3) in ext4_symlink:3237: IO failure
[ 3445.952109] EXT4-fs (sda3): previous I/O error to superblock detected
[ 3445.958906] EXT4-fs error (device sda3): ext4_journal_check_start:56: Detected aborted journal
[ 3445.967672] EXT4-fs (sda3): Remounting filesystem read-only
[ 3445.973357] EXT4-fs (sda3): previous I/O error to superblock detected
tar: can't open './bin/board_detect': Read-only file system
  50kiB 0:00:31 [1.58kiB/s] [ <=>                                              ]
tar: write error: Broken pipe

OK, the main questions IS:

Is there any way to "bind" a driver to the specific port?
I would use 1.1 for storage, and 2.0 for modem.

If you are experiencing a bug, it has likely been fixed since then. Can you run the latest version on your device?

A hub will convert the speed. A 1.1 device plugged into a 2.0 hub will run at 2.0 speed to the host. So you should not need 1.1 support on the host port at all. Many SoC have a 1 port hub internally for speed conversion. I don't know if the 4019 is like that though.

Looks like the bug appeared somewhere between 18.06.2 (just rolled back to it AND ALL WORKS PERFECTLY! No 1.1 driver need, no errors) and 18.06.9 (which is the last supported version for IXP422, so I can't upgrade above 18.x.x - there are no images).
Obviously, bug appeared in newer revision...

Will 18.06.2 kmod-usb2-pci package work with 18.06.9?
(Actually I'd like to compare them, but don't know where to download, as there's no packages for IXP422 for whole 18.x.x revisions available on downloads section of OWrt portal).

Nope, kmods are tightly linked on the kernel version.

Well.... Conclusions were toooo early, sorry... Nothing "works perfectly", still have issues.

Seems the only way is to bind uhci driver to the specific bus/port, to which storage is attached, to force it working under USB1.1 mode.
It it possible at all?