Nahlášení problému s USB FTDI převodníkem v Debianu

Dobré dopoledne,
obracím se na místní zkušené uživatele Debianu, potažmo jiných distribucí s dotazem. Mám problém s převodníkem "USB to serial" od FTDI typ FT232R na Debianu. Při vyčítání obsahu EEPROM dojde k chybovým výpisům do "kern.log" a nakonec pádu systému.
Abychom vyloučili problém v našem programu, využili jsme příklady čtení EEPROM v ovladačích FTDI a s nimi se to děje taky.

Detailní popis testu. Mám tuto konfiguraci:
1) Hardware
- základní desky s chipsetem AMD A320M - MSI A320M PRO-VD PLUS, ASUS PRIME A320M-K, GIGABYTE A320M-S2H
- poslední biosy, natáhnutá defaultní konfigurace
- CPU AMD Athlon 200GE nebo AMD Ryzen 3 2200G
- 4GB RAM, SSD disk Kingston A400 120GB
- USB to serial převodník s FT232R https://www.ftdichip.com/Products/ICs/FT232R.htm

2) Operační systém
- Debian Linux 9.6 64bit, instalován z Netinst bez grafického desktopu, výchozí konfigurace
- kernely 4.9.0.8-amd64, 4.18.0-0.bpo.1-amd64

3) Ovladače
- libftd2xx drivers verze 1.4.8, https://www.ftdichip.com/Drivers/D2XX.htm

4) Provedené testy na Debianu
- připojit FT232R do portu USB2.0 (ne do portu USB3!)
- použít příklad z adresáře: ...\libftd2xx-i386-1.4.8.tar\release\examples\
- přidat parametr "-m32" do proměnné "CFLAGS" v souboru "Rules.make"
- zkompilovat "\examples\EEPROM\user\read\"
- spustit "test.sh"
Debian Linux spadne po pár minutách.
Mezitím vypíše do "kern.log" mnoho chybových výpisů a postupně tuhne: https://paste.ee/p/xxIZ2

5) Důležité poznámky
- tento problém nastane pouze pokud je FT232R připojen do portu USB2.0, pokud je připojen do portu USB3, žádné chybové výpisy se nekonají a vše funguje bez problémů
- zkusili jsme Ubuntu server 19.04 - výchozí instalace, kernel 5.0.0 - stejný problém na USB2.0. jako s Debianem
- pokud na stejném hardwaru spustím Win10 + nejnovější ovladače, vše funguje bez problémů v USB2.0 i USB3
- pokud stejný test udělám s Debianem 9.6. na platformě Intel, deska MSI B250M PRO-VH, CPU Intel Pentium G4560, 4GB RAM, SSD drive Kingston A400 120GB, vše funguje bez problémů v USB2.0 i USB3


Řeším to asi 5 měsíců s podporu FTDI, ale nikam to nevede. Napřed se nic nedělo, pak nemají HW, pak nemají čas, na moje PC se nechtějí připojit, pořád nějaké výmluvy.

Nedokážu úplně určit, kde je problém, ale tipuji v ovladači xhci_hcd v kernelu. Dokáže mi někdo s tímto poradit? Případně kam se obrátit a problém nahlásit? Děkuji.
« Poslední změna: 25. 04. 2019, 10:30:55 od Petr Krčmář »


RDa

  • *****
  • 2 618
    • Zobrazit profil
    • E-mail
Re:Nahlášení problému s USB FTDI převodníkem v Debianu
« Odpověď #1 kdy: 25. 04. 2019, 16:23:01 »
Prejdi na kernel 5.x, prijde mi ze 4.9 je hooodne obstarozni a ty nove AMD muzou mit nejaky quirk v USB driveru - coz taky vysvetluje proc na Intel-u to chodi.

Btw v logu je videt co to zpusobuje:
Kód: [Vybrat]
xhci_hcd 0000:15:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0000 address=0x00000000fff50000 flags=0x0020]

Tj. USB driver (xhci_hcd) je napsan blbe, anebo hw dela neco co nema a IOMMU ti to odrazi. Takze jedna z moznosti je vypnout IOMMU, dalsi je opravit USB driver. Fakt zkus novejsi kernel.
« Poslední změna: 25. 04. 2019, 16:25:17 od RDa »

Re:Nahlášení problému s USB FTDI převodníkem v Debianu
« Odpověď #2 kdy: 07. 05. 2019, 08:52:19 »
Ještě se k tomu vracím, nemohl jsem se přihlásit do fóra.
Včera jsem to zkoušel na jádře 5.1 na Ubuntu serveru a problém je stejný, systém spadnul po několika sekundách.
Kernel log: https://paste.ee/p/EmLsw

Přihlásil jsem se do mailing listu linux-usb, tak snad to někam povede.

RDa

  • *****
  • 2 618
    • Zobrazit profil
    • E-mail

Re:Nahlášení problému s USB FTDI převodníkem v Debianu
« Odpověď #4 kdy: 09. 05. 2019, 12:04:50 »
Když jsi to řešil s podporou FTDI, tak přepokládám první co zjišovali bylo jestli nemáš nějaký fake chip. https://www.google.com/search?q=fake+FTDI

I když v Linuxu by to snad problém dělat nemuselo, ale třeba to "vylepšili" :-P


Re:Nahlášení problému s USB FTDI převodníkem v Debianu
« Odpověď #5 kdy: 13. 05. 2019, 09:11:48 »
Vypni v biosu IOMMU.
Zkoušel jsem, pád ihned po spuštění skriptu.

Když jsi to řešil s podporou FTDI, tak přepokládám první co zjišovali bylo jestli nemáš nějaký fake chip.
O tomhle vím, problém byl s ovladači ve Windows, v Linuxu ne. FTDi chipy používáme mnoho let, kupujeme je od oficiálních dodavatelů, v provozu máme stovky kusů. V tom to není. Na stejném AMD HW to s Windows funguje, na jiném Intel HW ten samý kus ve Win i Linuxu také. Je to asi něco v XHCI driveru v kernelu.