Comment found in actual u-boot driver:
================================================================
When only one BD is in
* use it must be marked with the WRAP bit to use it for every transmitt.
* This bit in combination with the READY bit results into double transmit
* of each data buffer. It seems the state machine checks READY earlier then
* resetting it after the first transfer.
* Using two BDs solves this issue.
========================================================
We observed similar problems on processing the last descriptor in a ringbuffer.....
What´s even more scary - is that is obvious race condition depends somehow on chip revisions.
Identical code failed on our board - but not on the evk. So be careful with the last descriptor ;-))