imx6q: fec_stop : Graceful transmit stop did not complete !

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

imx6q: fec_stop : Graceful transmit stop did not complete !

2,006 Views
pj0585
Contributor III

Hi,

I'm using a third party board that has imx6q (design based on imxsabresd). The root filesystem is based on yocto Jethro release but as my third party board does not support the new kernel I'm using kernel 3.0.35 (its really old but I have no choice).

I'm facing network problem with imx6q when the router (to which imx6q is connected) is powered down, I see a kernel dump on the serial lines:

[ 149.372684] PHY: 1:00 - Link is Down
[ 158.372729] PHY: 1:00 - Link is Up - 100/Full
[ 166.712331] ------------[ cut here ]------------
[ 166.721605] WARNING: at /kernel-source/net/sched/sch_generic.c:255 dev_watchdog+0x2ac/0x2b8()
[ 166.751542] NETDEV WATCHDOG: eth0 (fec): transmit queue 0 timed out
[ 166.764099] Modules linked in: pwm_beeper ov5640_camera_mipi adv7180_tvin camera_sensor_clock
[ 166.781362] [<c0044f68>] (unwind_backtrace+0x0/0xec) from [<c0072100>] (warn_slowpath_common+0x54/0x64)
[ 166.800186] [<c0072100>] (warn_slowpath_common+0x54/0x64) from [<c0072140>] (warn_slowpath_fmt+0x30/0x40)
[ 166.819356] [<c0072140>] (warn_slowpath_fmt+0x30/0x40) from [<c04657bc>] (dev_watchdog+0x2ac/0x2b8)
[ 166.837475] [<c04657bc>] (dev_watchdog+0x2ac/0x2b8) from [<c007e704>] (run_timer_softirq+0x124/0x234)
[ 166.855924] [<c007e704>] (run_timer_softirq+0x124/0x234) from [<c0077df8>] (__do_softirq+0xe8/0x180)
[ 166.874190] [<c0077df8>] (__do_softirq+0xe8/0x180) from [<c007836c>] (irq_exit+0xa4/0xa8)
[ 166.890553] [<c007836c>] (irq_exit+0xa4/0xa8) from [<c0038304>] (do_IPI+0x110/0x154)
[ 166.906046] [<c0038304>] (do_IPI+0x110/0x154) from [<c003da0c>] (__irq_svc+0x4c/0xe8)
[ 166.921700] Exception stack(0xe9fadf90 to 0xe9fadfd8)
[ 166.931799] df80: c0ec2700 800f0093 00000001 00000000
[ 166.948151] dfa0: e9fac000 c0ebb104 c0b1bc84 c057d6f0 1000406a 412fc09a 00000000 00000000
[ 166.964503] dfc0: 00000000 e9fadfd8 c004d198 c003eba4 400f0013 ffffffff
[ 166.977735] [<c003da0c>] (__irq_svc+0x4c/0xe8) from [<c003eba4>] (default_idle+0x24/0x28)
[ 166.994111] [<c003eba4>] (default_idle+0x24/0x28) from [<c003ecfc>] (cpu_idle+0xa0/0x104)
[ 167.010488] [<c003ecfc>] (cpu_idle+0xa0/0x104) from [<10571094>] (0x10571094)
[ 167.024760] ---[ end trace a30913308129ea19 ]---
[ 167.034004] fec_stop : Graceful transmit stop did not complete !
[ 170.372734] PHY: 1:00 - Link is Up - 100/Full
[ 176.372655] PHY: 1:00 - Link is Up - 100/Full

I keep seeing "PHY: 1:00 - Link is Up - 100/Full" these messages and I cannot connect to imx6q using ssh.

I'm using DLink DIR-600M wireless router with DHCP disabled (imx6q has static ip).

The only way network is back if restart the network subsystem (using the serial console):

   /etc/init.d/networking stop

   /etc/init.d/networking start

My board uses "Micrel KSZ9031 Gigabit PHY".

This issue does not happen if I remove the network cable and re-plug it. It happens only when I restart the router.

1) Is this a known issue? (Is it specific to 3.0.35 kernel or does it apply to new kernels as well..)

2) Is there any work around this issue?

Any inputs on this topic will be of great help to me!

Regards, Pj

Labels (4)
Tags (3)
0 Kudos
Reply
1 Reply

1,301 Views
Carlos_Musich
NXP Employee
NXP Employee

Hi Prasant,

the iMX device should reestablish connection automatically when the router is reset. However, you can poll the Ethernet link status and reestablish it manually through command line or with an application.

To check the status of the ling you may use any of the following commands, which must return these outputs if link is up.

$ cat /sys/class/net/eth0/operstate
up
$ ip addr show dev eth0
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000

To reset the connection you may use following commands.

$ ifconfig eth0 down
$ ifconfig eth0 up

To do it through an application you may use

system("COMMAND");

On the other hand you should also check that is not the router which is not preventing the device to reconnect after it is reset.


Regads,
Carlos

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply