Coldfire mcf52254 FEC drops a Tx packet

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

Coldfire mcf52254 FEC drops a Tx packet

80,138 Views
jasonhaedt
Contributor III

Dear Freescale,

 

Our processor fails to send  a packet, and at about the same time, fails to receive a ethernet packet.  It seems to be timing related.  We checked the error flags all the way down to the hardware level, all indications are that there was no error.  The first packet goes out but the second sent very quickly thereafter does not go on the wire (according to WireShark).

 

The forums talk about sending duplicate packets, but I have not found anything discussing missing packets.  Is there anything you are aware of in an addendum somewhere?

 

-Jason

Labels (1)
0 Kudos
1 Reply

390 Views
TomE
Specialist II

Have you searched for an answer, you didn't say? Search for "FEC dropping" and see if any of the 50+ matches help.

This is unlikely to be your problem, but just in case...

I had a frustrating day a few months ago. I was trying to use Wireshark on a PC to monitor Ethernet packets going between two embedded boards.

Of course you can't do this now, as everything goes through switches and only broadcast packets are visible on other switch ports.

So I found an old non-switch HUB and started monitoring. And started losing lots of packets. Wireshark reported corrupted packets too.

The Ethernet/MII driver on one of the boards didn't have any code to reprogram the Ethernet controller TCR[FDEN] bit to Half Duplex when the PHY negotiated half-duplex with the hub.


As for your problem, receiving a packet while sending one probably needs double the memory bandwidth. Are you running the CPU at a high enough clock rate (50MHz minimum)? Are your Ethernet buffers big enough?


Whose FEC drivers are you using? I'd suggest trying it with a different driver/stack if you can (try FNET if it supports your chip and you're not using it). Compare other driver sources with your code in case you're doing something wrong to cause this problem. Here's a Linux FEC driver:

http://lxr.free-electrons.com/source/drivers/net/ethernet/freescale/fec_main.c?a=m68knommu

Tom

0 Kudos