Gianfar tx-babbling-errors

Scott Coulter scott.coulter at cyclone.com
Wed Feb 25 03:58:49 EST 2009


Dai,

>  I am not so sure about your PHY, but if you access to PHY while
packet
> transmission through MDIO bus, the packet might be corrupted. Do you
> have "phy_interrupt" in the /proc/interrupts? What is your dmesg
around
> the eTSEC look like (there is phy driver info surrounded).

With some printks, I did confirm that the kernel is polling the phy
every second or so.  So, I modified the routine which reads the phy
status to hardcode the link state, speed, and duplex without actually
performing any reads and the driver still bug checks with a truncated
packet.  I also dropped a printk in phy_read() and phy_write(), but
neither function is getting called with the hard-coded link information.

In gfar_clean_tx_ring() I printed out the tx descriptor data length
field when I detected that the descriptor had the TR bit set.  For 5 bug
checks in a row, the data length field was set to 1960 (which would
definitely cause the packet truncation).  I then went back into
gfar_start_xmit() and added some additional BUG_ON() checks of the data
length field before the descriptor is handed off to the TSEC and none of
them fire.  I am wondering if somehow the descriptor is getting
corrupted, perhaps by some code with an errant pointer.

Scott 



___________________________________________________________________

  Scott N. Coulter
  Senior Software Engineer
  
  Cyclone Microsystems          
  370 James Street              Phone:  203.786.5536 ext. 118
  New Haven, CT 06513-3051      Email:  scott.coulter at cyclone.com
  U.S.A.                        Web:    http://www.cyclone.com
___________________________________________________________________



More information about the Linuxppc-dev mailing list