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