[imx25] Linux kernel hangs when using nfs with ethernet dongle

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[imx25] Linux kernel hangs when using nfs with ethernet dongle

1,589 Views
CLI
Contributor I

Hi,

I am booting Linux through nfs via a USB Ethernet dongle on the USB host of imx253. But I get this warning and a hanging kernel very frequently, especially after USB device connection/disconnection on the USB hub.

[ 313.016083] ------------[ cut here ]------------

[ 313.020839] WARNING: at net/sched/sch_generic.c:254 dev_watchdog+0x1fc/0x284()

[ 313.028153] NETDEV WATCHDOG: eth0 (asix): transmit queue 0 timed out

[ 313.034580] Modules linked in: g_multi libcomposite

[ 313.039777] [<c000d654>] (unwind_backtrace+0x0/0x11c) from [<c0018b74>] (warn_slowpath_common+0x4c/0x64)

[ 313.049419] [<c0018b74>] (warn_slowpath_common+0x4c/0x64) from [<c0018bb8>] (warn_slowpath_fmt+0x2c/0x3c)

[ 313.059146] [<c0018bb8>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0304690>] (dev_watchdog+0x1fc/0x284)

[ 313.068328] [<c0304690>] (dev_watchdog+0x1fc/0x284) from [<c0026cec>] (call_timer_fn+0x98/0x174)

[ 313.077264] [<c0026cec>] (call_timer_fn+0x98/0x174) from [<c0027818>] (run_timer_softirq+0x254/0x2bc)

[ 313.086621] [<c0027818>] (run_timer_softirq+0x254/0x2bc) from [<c0020120>] (__do_softirq+0x13c/0x27c)

[ 313.095970] [<c0020120>] (__do_softirq+0x13c/0x27c) from [<c0020534>] (irq_exit+0x44/0x5c)

[ 313.104363] [<c0020534>] (irq_exit+0x44/0x5c) from [<c00096d0>] (handle_IRQ+0x64/0x80)

[ 313.112401] [<c00096d0>] (handle_IRQ+0x64/0x80) from [<c0008700>] (avic_handle_irq+0x34/0x40)

[ 313.121052] [<c0008700>] (avic_handle_irq+0x34/0x40) from [<c0373500>] (__irq_svc+0x40/0x6c)

[ 313.129579] Exception stack(0xc0503f68 to 0xc0503fb0)

[ 313.134731] 3f60: 00000000 0005317f 0005217f 60000013 c0502038 c0502000

[ 313.143012] 3f80: c053db88 c04d61c4 c05fe320 41069264 804d521c 00000000 600000d3 c0503fb0

[ 313.151278] 3fa0: c0009784 c0009790 60000013 ffffffff

[ 313.156450] [<c0373500>] (__irq_svc+0x40/0x6c) from [<c0009790>] (default_idle+0x2c/0x34)

[ 313.164756] [<c0009790>] (default_idle+0x2c/0x34) from [<c00098a4>] (cpu_idle+0x74/0xb8)

[ 313.172977] [<c00098a4>] (cpu_idle+0x74/0xb8) from [<c04b96f8>] (start_kernel+0x258/0x298)

[ 313.181358] ---[ end trace 438f9adb5e9de426 ]---

[ 424.936148] nfs: server 192.168.2.37 not responding, still trying

[ 737.633305] usb 1-1: USB disconnect, device number 2

While searching for the solution, I came across the errata for other iMX processors - http://cache.freescale.com/files/32bit/doc/errata/IMX6DQCE.pdf and http://www.freescale.com/docs/pcn_attachments/15760_IMX53CE_Rev4.pdf. They both mention a USB IC bug ERR006308 which can cause the controller to hang. I tried disabling SDIS of USBMODE, but the trick didn't seem to work for iMX25.

Can you please confirm if ERR006308 is an issue for iMX25 and how do I work around it?

Labels (4)
0 Kudos
10 Replies

1,233 Views
fabio_estevam
NXP Employee
NXP Employee

Can you try it with kernel 3.17?

0 Kudos

1,233 Views
CLI
Contributor I

Will try it when I have a chance. I am currently using 3.8.8.

0 Kudos

1,233 Views
fabio_estevam
NXP Employee
NXP Employee

I assume you are not using device tree, nor the chipidea usb driver, correct?

0 Kudos

1,233 Views
CLI
Contributor I

No, I am still using the mxc usb driver with a board set up file. This problem is only seen when booting from NFS with a USB Ethernet dongle which is connected to an external hub.

0 Kudos

1,233 Views
fabio_estevam
NXP Employee
NXP Employee

Ok, I think we do not see the issue with the chipidea usb driver. Please let us know when you have a chance.

0 Kudos

1,233 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hongliang

formally i.MX25 has not this erratum according to IMX25CE .

Errors may be caused by FIFO underrun, it can be reduced by

increasing the TXFIFOTHRES parameter in the TXFILLTUNING

register. Increasing this value will instruct the USB controller to

load more data in the FIFO, before starting the transmission.

This allows for more tolerance to bus access delays.

Best regards

igor

0 Kudos

1,233 Views
CLI
Contributor I

I still get the same error after setting the threshold to maximum.:smileyconfused:

0 Kudos

1,233 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hongliang

also it may be recommended to try connect

usb dongle through self powered high speed hub

and probably try other dongles.

Best regards

igor

0 Kudos

1,233 Views
CLI
Contributor I

Hi Igor

I am already using a self-powered HS hub.

I've also tried two different dongles from Apple (asix inside) and Kontron (DM9601 inside). But same problem...

0 Kudos

1,233 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hongliang

you can also try below

i.MX25 3stack usb issue and fix

I think also moving to newer kernel would be best option,

as suggested Fabio.

Best regards

igor

0 Kudos