This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3358: USB bus problems with cellular modem

Part Number: AM3358


Tool/software:

Hello!

 

We are experiencing and issue with the TI AM3358 USB bus.

 

We are attaching a U-blox LARA-L6 cellular modem to the USB bus of our chip, however, we are experiencing issues where it seems the device drops out because the bus fails (driver crashes?).

There are a few mailing list threads that seem to be experiencing similar issues.

https://patchwork.kernel.org/project/linux-omap/patch/CAGm1_kuxCK16351uf0SiKz750hbc0955hz3k=y_tF0sHx76fXQ@mail.gmail.com/

and

https://lore.kernel.org/all/20190923174507.GW5610@atomide.com/T/

 

I’ve tried a few patches that have been posted but nothing seems to solve the problem.

 

We are currently using the mainline kernel version 6.1.52

Here are some log snippets

Apr 28 17:42:54 sdl-350-02 kernel: ------------[ cut here ]------------
Apr 28 17:42:54 sdl-350-02 kernel: WARNING: CPU: 0 PID: 252 at drivers/usb/musb/musb_host.c:113 musb_h_tx_flush_fifo+0x12c/0x134
Apr 28 17:42:54 sdl-350-02 kernel: musb-hdrc musb-hdrc.1: Could not flush host TX2 fifo: csr: 2003
Apr 28 17:42:54 sdl-350-02 kernel: Modules linked in: wl18xx wlcore mac80211 libarc4 cfg80211 bnep tag_ksz ksz9477_i2c ksz_switch snd_soc_simple_card snd_soc_simple_card_utils hci_uart snd_soc_adau1761_i2c sn>
Apr 28 17:42:54 sdl-350-02 kernel: CPU: 0 PID: 252 Comm: ModemManager Not tainted 6.1.52-skytrac+git9a3aa81176a25546bb0866ca5c0a0318e1953c7f #1
Apr 28 17:42:54 sdl-350-02 kernel: Hardware name: Generic AM33XX (Flattened Device Tree)
Apr 28 17:42:54 sdl-350-02 kernel:  unwind_backtrace from show_stack+0x10/0x14
Apr 28 17:42:54 sdl-350-02 kernel:  show_stack from dump_stack_lvl+0x40/0x4c
Apr 28 17:42:54 sdl-350-02 kernel:  dump_stack_lvl from __warn+0x7c/0x148
Apr 28 17:42:54 sdl-350-02 kernel:  __warn from warn_slowpath_fmt+0x128/0x1b4
Apr 28 17:42:54 sdl-350-02 kernel:  warn_slowpath_fmt from musb_h_tx_flush_fifo+0x12c/0x134
Apr 28 17:42:54 sdl-350-02 kernel:  musb_h_tx_flush_fifo from musb_cleanup_urb+0x78/0xd8
Apr 28 17:42:54 sdl-350-02 kernel:  musb_cleanup_urb from musb_urb_dequeue+0x15c/0x198
Apr 28 17:42:54 sdl-350-02 kernel:  musb_urb_dequeue from usb_hcd_unlink_urb+0x70/0xd0
Apr 28 17:42:54 sdl-350-02 kernel:  usb_hcd_unlink_urb from usb_kill_urb.part.0+0x40/0xcc
Apr 28 17:42:54 sdl-350-02 kernel:  usb_kill_urb.part.0 from usb_wwan_close+0xbc/0x2c0 [usb_wwan]
Apr 28 17:42:54 sdl-350-02 kernel:  usb_wwan_close [usb_wwan] from serial_port_shutdown+0x24/0x3c [usbserial]
Apr 28 17:42:54 sdl-350-02 kernel:  serial_port_shutdown [usbserial] from tty_port_shutdown+0x74/0xa0
Apr 28 17:42:54 sdl-350-02 kernel:  tty_port_shutdown from tty_port_close+0x3c/0x94
Apr 28 17:42:54 sdl-350-02 kernel:  tty_port_close from tty_release+0xf0/0x618
Apr 28 17:42:54 sdl-350-02 kernel:  tty_release from __fput+0x74/0x254
Apr 28 17:42:54 sdl-350-02 kernel:  __fput from task_work_run+0x84/0xac
Apr 28 17:42:54 sdl-350-02 kernel:  task_work_run from do_work_pending+0x428/0x50c
Apr 28 17:42:54 sdl-350-02 kernel:  do_work_pending from slow_work_pending+0xc/0x20
Apr 28 17:42:54 sdl-350-02 kernel: Exception stack(0xe0205fb0 to 0xe0205ff8)
Apr 28 17:42:54 sdl-350-02 kernel: 5fa0:                                     00000000 b6f300a4 00000000 00000000
Apr 28 17:42:54 sdl-350-02 kernel: 5fc0: 0000000a b6f305a0 00000000 00000006 00000000 01f2e618 b6d33260 00000000
Apr 28 17:42:54 sdl-350-02 kernel: 5fe0: b6f305a0 be804a18 00000000 b65dcef4 80010010 0000000a
Apr 28 17:42:54 sdl-350-02 kernel: ---[ end trace 0000000000000000 ]---

Apr 28 18:38:09 sdl-350-02 ModemManager[224]: <info>  [modem131] state changed (disabled -> enabling)
Apr 28 18:38:09 sdl-350-02 ModemManager[224]: <info>  [modem131] power state updated: on
Apr 28 18:38:09 sdl-350-02 ModemManager[224]: <info>  [modem131] mobile equipment request to activate context (cid 1)
Apr 28 18:38:09 sdl-350-02 ModemManager[224]: <info>  [modem131] mobile equipment request to activate context (cid 1)
Apr 28 18:38:09 sdl-350-02 ModemManager[224]: <info>  [modem131] state changed (enabling -> enabled)
Apr 28 18:38:09 sdl-350-02 ModemManager[224]: <info>  [modem131] 3GPP registration state changed (unknown -> registering)
Apr 28 18:38:10 sdl-350-02 kernel: musb-hdrc musb-hdrc.1: ep2 RX three-strikes error
Apr 28 18:38:10 sdl-350-02 kernel: musb-hdrc musb-hdrc.1: ep3 RX three-strikes error
Apr 28 18:38:10 sdl-350-02 kernel: musb-hdrc musb-hdrc.1: ep4 RX three-strikes error
Apr 28 18:38:10 sdl-350-02 kernel: usb 1-1: USB disconnect, device number 7
Apr 28 18:38:10 sdl-350-02 kernel: option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
Apr 28 18:38:10 sdl-350-02 kernel: option 1-1:1.0: device disconnected
Apr 28 18:38:10 sdl-350-02 kernel: option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
Apr 28 18:38:10 sdl-350-02 kernel: option 1-1:1.1: device disconnected
Apr 28 18:38:10 sdl-350-02 kernel: option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
Apr 28 18:38:10 sdl-350-02 kernel: option 1-1:1.2: device disconnected
Apr 28 18:38:10 sdl-350-02 kernel: option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
Apr 28 18:38:10 sdl-350-02 kernel: option 1-1:1.3: device disconnected
Apr 28 18:38:10 sdl-350-02 kernel: cdc_ether 1-1:1.4 eth1: unregister 'cdc_ether' usb-musb-hdrc.1-1, CDC Ethernet Device

Any help would be appreciated thanks!

  • Hi Lucas

    The expert assigned to this thread is out of office for the next two weeks. Please expect some delay in responses on this one.

    Regards

    Karan

  • Hi Lucas,

    > Apr 28 17:42:54 sdl-350-02 kernel: WARNING: CPU: 0 PID: 252 at drivers/usb/musb/musb_host.c:113 musb_h_tx_flush_fifo+0x12c/0x134

    This warning message in the first log can be ignored. It doesn't affect any USB functionality.

    > Apr 28 18:38:10 sdl-350-02 kernel: musb-hdrc musb-hdrc.1: ep2 RX three-strikes error
    > Apr 28 18:38:10 sdl-350-02 kernel: musb-hdrc musb-hdrc.1: ep3 RX three-strikes error
    > Apr 28 18:38:10 sdl-350-02 kernel: musb-hdrc musb-hdrc.1: ep4 RX three-strikes error

    The error is commonly happened due to signal integrity problem. Please check your board USB design and layout. You might also want want to measure the USB EyeDiagram.