In the thread https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/858377/3188037 TI (Iding) asserted that:
"The transmit channel is inactive when EOQ=1, TXHDP=0, and Ownership=0. Only when this inactive condition is met, can TXHDP be written with a new head descriptor."
In further testing using this guidance, the hardware still winds up in MACSTATUS ERROR.
I'm now, in addition to the states above, also checking MACSTATUS_IDLE==1 (bit 31) http://www.ti.com/lit/ug/spnu563a/spnu563a.pdf#page=1906
Ensuring MACSTATUS_IDLE==1 appears to work, but again, I'm looking for an authoritative statement as to how the host is to know the channel is INACTIVE before setting a new TXHDP.
The technical reference manual seems to indicate that this MACSTATUS_IDLE should latch to 1 after reset, while characterization demonstrates the bit toggles during EMAC operation. Is the MACSTATUS_IDLE check required?