Other Parts Discussed in Thread: HALCOGEN
I have characterized the same EMAC hardware race condition seen in this thread.
If you use LwIP in your testing, you wouldn't see this issue, as the LwIP EMAC driver has implemented a workaround that it waits for EOQ before adding to the chain.
In practice this delay consumes a significant amount of time (too much for usage in our real-time system). The workaround we settled on is that when a new CPPI descriptor is being chained to the active CPPI descriptor, we enable the packet completion interrupt. Then, when the packet completes, the interrupt fires and the ISR restarts the EMAC if it has stalled.