Hi Raymond
I have never seen a BABT error (if such errors do occur the FEC needs to be reset to continue). I also ported Coldfire FEC drivers from the uTasker Coldfire project to the Kinetis project and when the legacy Buffer Descriptor mode is used there weren't any compatibility issues. The extended mode is however of course advisable since it allows greater performance due to IP check sum offloading.
Do check the endianness of the buffer descriptors since this can be set to descriptor byte swapping mode to be natively big or little endian; be careful that the bits are in the correct locations.
When using the K64 with cache enabled it is necessary to apply the errata e6358 - this is not listed in the K64 errata but can be found in early K60s, for example. If not, the Tx will often stop sending - but only for one frame and will then be triggered again as soon as another frame has been prepared in any other buffer descriptor (but wouldn't explain why you have multiple BDs not sending).
Although unlikely, ensure that you never queue a BD with a frame length of zero because this will stop the complete chain from working.
Finally, check the ownership of the BDs to see how many have actually been sent and whether some are waiting for something (or have stalled due to an error).
If you don't find a solution there are Coldfire and Kintetis (ported as directly as directly as possible form the CF to K) for comparison at http://www.utasker.com/index.html
[including legacy and enhanced BD options].
Regards
Mark
Kinetis: µTasker Kinetis support
K64: µTasker Kinetis FRDM-K64F support / µTasker Kinetis TWR-K64F120M support
For the complete "out-of-the-box" Kinetis experience and faster time to market