Hi,
I am having some strange behavior with Ethernet in MPC5748G. i have successfully configured and perform transmission and reception from controller but in TXF interrupt after transmission if i read the status of any transmission buffer descriptor then that specific buffer descriptor somehow becomes locked and status bit (Ready) is never reset to 0 in that buffer descriptor for successive transmission calls even though frame is transmitted successfully on bus.
here is a sample code which causes issue,
if ((TxBufDesc[i].ControlWord0 & 0x80000000u) == 1) // Ready bit
{
transmission_flag = 1;
}
now if i remove the above given check then successive transmissions are successful and buffer descriptor's Ready bit is reset to 0 by ENET controller.
Solved! Go to Solution.
Hi Danish,
This could be caused by cache. So try to disable the cache at all, or disable caching of the memory areas where TX/RX Buffer descriptors and TX/RX buffers are placed.
BR, Petr
Hi Danish,
This could be caused by cache. So try to disable the cache at all, or disable caching of the memory areas where TX/RX Buffer descriptors and TX/RX buffers are placed.
BR, Petr
Thanks, disabling Data Cache for region containing Buffers fixed the issue.
Hi Danish,
I'm having the same issue. Could you please tell me how to disable Data Cache for region containing Buffers?
Thanks.