iMX287 eth0: tx queue full!

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

iMX287 eth0: tx queue full!

1,580 Views
f43067
Contributor II

Hello everyone,

    I'm using the fec0 of the iMX287 with 10M/Half duplex mode,but sometimes the fec0 will enter error state with the error message is "eth0: tx queue full!",and this state will keep on until I send "ifconfig eth0 down" and "ifconfig eth0 up".After these two commands,the fec0 will word correctly.I find the location of the error message "eth0: tx queue full!" is in the function of fec_enet_start_xmit in /drivers/net/fec.c, the resaon is the status bit BD_ENET_TX_READY is set. What's this bit mean? and in what condition this bit will be set? and when this bit is set, where and how to reset it?

    Best Regards.


Labels (2)
Tags (4)
0 Kudos
3 Replies

776 Views
Yuri
NXP Employee
NXP Employee

  The following may be helpful.

eth0: tx queue full

Have a great day,
Yuri

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

0 Kudos

776 Views
f43067
Contributor II

Thanks very much! But this article don't solve my problem,it seems no effect. After testing, I find when enter to the error state, the driver can't get in the "fec_timeout" function, so the way to modify the  "fec_timeout" function doesn't work.

0 Kudos

776 Views
Yuri
NXP Employee
NXP Employee

   The status bit BD_ENET_TX_READY means, that current Tx buffer cannot be
send in time. If there are no hardware errors, it is needed just wait the Tx buffer transmitting.

Looks like the current BSP implementation is not optimal for 10M half duplex mode.


~Yuri.



 

0 Kudos