iMX6 ENET module not calculating CRC

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

iMX6 ENET module not calculating CRC

815 Views
MikeJones
Contributor III

I am reusing an ENET driver that worked on Kinetis on iMX6Q. It uses enhanced transmit buffer descriptors. The descriptor have the  PINS bit set, but an iCMP frame as seen by Wireshark has 0xFFFF for the CRC. When I turn off PINS and calculate my own CRC, I have no frame problems and a full working network stack.

I have looked at all the bits in the descriptor and can't find anything unusual. As I said, this code has worked fine on Kinetis for lots of people. The only changes I made to the code was to enable RGMII and deal with pin mixing and enabling, etc.

Note that the frame is more than 64 bytes, so there should not be a problem related to padding. Note that the buffers used by the driver are all in OCRAM, nonchached.

Can someone tell me if there is a known problem or what might cause the CRC not to calculate?

Labels (1)
0 Kudos
4 Replies

632 Views
jamesbone
NXP TechSupport
NXP TechSupport

I really recommend, if you need a bareboard driver for the FEC of the i.MX6Q you use the  one available in the SDK software package available in the official web page of the i.Mx6Q .

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6Q&fpsp=1&tab=Design_Tools_Tab#

0 Kudos

632 Views
MikeJones
Contributor III

I am aware of the SDK and have used large portions of it. In this case the driver I started with was converted to support RGMII and has worked flawlessly for over a month. Therefore, I am asking for help getting CRC to work, not for a substitute solution.

Can you please give some insights as to what might prevent the CRC from calculating?

0 Kudos

632 Views
jamesbone
NXP TechSupport
NXP TechSupport

Can you share the configuration registers of the ENET that you are using?? or the modified code?

0 Kudos

632 Views
MikeJones
Contributor III

http://sourceforge.net/p/ecosfreescale/code/HEAD/tree/trunk/packages/devs/eth/freescale/enet/current...

This link takes you to the source code. There are only a couple of files. Note that I use it in RGMII mode.

0 Kudos