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?