FTDI USB2Serial failure in MangOH Red b/d

First of all, both FX30 3G and FX30 LTE works well.
The issue is seen only in MangOH Red b/d. The only issue in MangOH b/d is the USB2Serial data communication. Anything else works well - 1) bring-up, 2) flashing the latest FW, 3) AT command access through /dev/ttyAT, 4) LTE cellular connection with Zipit AT&T test SIM, 5) IP connection and operation over the underlying cellular connection

Let me share more about USB2Serial communication failure issue in MangOH b/d.

  1. Renfell USB Host IoT Expansion Card isn’t detected or recognized through MangOH IoT b/d slot.
    In FX30 LTE b/d,
    I could see the following kernel log when USB host card is inserted into FX30 LTE b/d

diag: USB channel diag connected
msm_otg 78d9000.usb : Avail curr from USB = 500
….
QTI : USB tethered modem SMD port opened
QTI : ECM mode
QTI : LINK_UP Processed
QTI : LINK_UP message_posted.

However no kernel log change when USB host card is inserted into MangOH b/d and doesn’t work at all.
2) The FTDI device connection/recognition through USB Host connector in MangOH b/d is OK. However the data communication through USB2Serial driver makes the communication error – TTY_BREAK is seen continuously at ftdi_sio driver level(FTDI_RS_BI). it generates NULL data report to the upper layer. It isn’t seen in FX30 LTE b/d. It is suspected that USB3503 Hub connection on MangOH b/d is different from the USB logic in FX30 LTE b/d. We’d like to compare the USB logic between MangOH b/d and FX30 LTE b/d.

Does anybody have the similar experience?
I also wonder if MangOH Red b/d specific device tree configuration(dts, dtsi etc.) and kernel configuration to load all the necessary drivers especially the external USB Hub chip(USB3503). I managed to load usb3503 driver by adding dts entry and kernel config but it seems it doesn’t work as well.

So basically you are saying the mangOH Red doesnt detect the Renfell card? Is that a correct understanding?
What is the firmware and legato version you are using on Red?

I’m using “FW : SWI9x06Y_02.16.06.000 7605a6 jenkins 2018/06/20 build”.
I’m not using Legato framwork. I made the python 3.5 application in FX30 LTE rootFS and run my python application on it. I want to port this application framework with the minimal change onto MangOH Red b/d.
If I can use the USB host in MangOH b/d, I prefer to do it instead of using Renfell USB Host expansion.
To do that, I need the full yocto which is correctly configured in kernel/driver for MangOH b/d. That will be definitely what I need.

So you want the above to work? And you are saying that the communication is not happening properly for the above?

Yes. What I need is the USB2Serial communication through MangOH b/d USB host connector works correctly.

Ok.
Can you provide failure message you see when it fails?
Just let you know, we dont see any failure. So not really sure what your failure mechanism is.

Reading the data from ftdi_sio gives the continuous “TTY_BREAK” errors as described previously. That makes NULL data stream. Did you describe your test setup/enviroment in detail? I used USB host port at MangOH b/d and the external device that has FT230x chip. Writing is OK but reading makes continuous “TTY_BREAK” errors. from USB control packet[1] - FTDI_RS_BI.

Please copy paste the error. I would like to see the actual messages.

FX30_LTE_Kerenl.log (85.7 KB) MangOH_Kernel.log (97.2 KB)

Could check the following:

  1. check status: stty –F /dev/ttyHSL1 –a
  2. Enable crtscts: Stty –F /dev/ttyHSL1 crtscts
  3. check status again: stty –F /dev/ttyHSL1 –a

My problem is not on ttyHSL1 but the newly attached FTDI device to USB as ttyUSB#

Here is the log on that port.

root@fx30:~# stty -F /dev/ttyUSB0 -a
speed 115200 baud;stty: /dev/ttyUSB0
line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = ;
eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
-ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop
-echoprt -echoctl -echoke
root@fx30:~# stty -F /dev/ttyUSB0 crtscts
root@fx30:~# stty -F /dev/ttyUSB0 -a
speed 115200 baud;stty: /dev/ttyUSB0
line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = ;
eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
-ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop
-echoprt -echoctl -echoke
root@fx30:~#

Ok. I connected a FTDI converter to the USB host. Red can detect the FTDI chipset. What command are you running next and what is the failure?

Jan  6 00:09:38 swi-mdm9x28-wp user.info kernel: [  575.220326] usb 1-1.3: USB disconnect, device number 5
Jan  6 00:09:40 swi-mdm9x28-wp user.info kernel: [  577.760130] usb 1-1.3: new full-speed USB device number 7 using msm_hsic_host
Jan  6 00:09:40 swi-mdm9x28-wp user.info kernel: [  577.871694] usb 1-1.3: New USB device found, idVendor=067b, idProduct=2303
Jan  6 00:09:40 swi-mdm9x28-wp user.info kernel: [  577.871712] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jan  6 00:09:40 swi-mdm9x28-wp user.info kernel: [  577.871724] usb 1-1.3: Product: USB-Serial Controller D
Jan  6 00:09:40 swi-mdm9x28-wp user.info kernel: [  577.871736] usb 1-1.3: Manufacturer: Prolific Technology Inc.

Also on the IOT car, I inserted a FTDI IoT card and it was detected right away:

Jan  6 00:08:39 swi-mdm9x28-wp user.info kernel: [  516.321010] usb 1-1.2: new full-speed USB device number 6 using msm_hsic_host
Jan  6 00:08:39 swi-mdm9x28-wp user.info kernel: [  516.448415] usb 1-1.2: New USB device found, idVendor=0403, idProduct=6015
Jan  6 00:08:39 swi-mdm9x28-wp user.info kernel: [  516.448436] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jan  6 00:08:39 swi-mdm9x28-wp user.info kernel: [  516.448447] usb 1-1.2: Product: FT231X USB UART
Jan  6 00:08:39 swi-mdm9x28-wp user.info kernel: [  516.448458] usb 1-1.2: Manufacturer: FTDI
Jan  6 00:08:39 swi-mdm9x28-wp user.info kernel: [  516.448469] usb 1-1.2: SerialNumber: D306DV3B

In the first description of the issue, I already told the recognition of FTDI device via USB host port of MangOH b/d is OK. Again the data reading from ftdi_sio driver makes the continuous TTY break error. The data are being sent from the connected FTDI device through USB signal and USB driver of MangOH b/d packetized the USB signal and forward them to usbserial/ftdi_sio driver. Eventually usbserial/ftdi_sio driver copy the data to the user space buffer of the user space application who access TTYUSB# port.
Anyway based on our discussion over the call, I will investigate the different behavior of the loop between the console USB and USB host on MangOH b/d and try to use the battery power source instead.
Thanks!

Any updates on this?

We’ve already tested the different power source but it also showed the same result.

I’m now working on the programming ext. USB Hub IC - USB3503 by I2C through some kernel driver hack.

Weird enough, the loop back test of USB console that has FTDI chip and USB host port of the MangOH b/d and the same test with two MangOH b/d didn’t show the issue. The issue only happens between USB host port of the MangOH b/d and our wearable device FTDI USB. But the communication between FX30 with USB Host IoT card and our wearable device FTDI USB is OK. The only difference is 3 ports are connected to USB3503 IC in MangOH b/d and in FX30, only one port is connected to USB3503 IC. The other issue is, in MangOH b/d, Renfell USB host IoT card isn’t recognized.

It’s really not understandable yet and all the assumptions about the root cause have been verified false…

By the way, can you let me know how to program USB3503 Hub IC via I2C? what’s the compatible register address of mdm9607 of I2C1 of wp7702? Can you let me know to do it by the proper dts configuration and I2C mux - TCA9536A control?

About IoT card recognition by MangOH Red, can you test Renfell USB Host IoT card with FTDI device instead of FTDI IoT card?

try this
echo 2 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio2/direction
echo 1 > /sys/class/gpio/gpio2/value

It works! Now Renfell USB host card is recognized and announced correctly.
However I could see the same issue in reading data from ftdi_sio driver like as USB host connector on the MangOH b/d…

However I could see the same issue in reading data from ftdi_sio driver like as USB host connector on the MangOH b/d…

Is it causing issues?

Also what happens when you connect your proprietary hardware to the USB host of Renfell card on mangoh red?