I am writing a driver for the AM4376 Ethernet sub-system. My DMA engine stops sometimes with register CPSW_DMASTS == 0x00200000 = TX_HOST_ERR_CODE == 0010 = "Ownership bit not set in SOP buffer". I understand what this means and I am certain that I am setting the SOP and Ownership bits in the appropriate TX buffer descriptor. I am wondering if there are some timing issues between writing the descriptor and starting the DMA engine. Also are there any special timing issues recovering from a misqueued packet? Is there anything I can do or wait for to make sure the descriptor data I push out is actually visible to the DMA engine? The descriptors are in a part of memory that is not cached, so that should not be the problem.
Any advice would be appreciated.
Thanks
Cliff