Hello,
I'm porting a bootloader code from 5282 to 52259. I'm having some problems with TFTP driver implementation.
When I try to transmit a packet I receive a "transmit fifo underrun" error. I understood that the 5282 and 52259 fec are quite similar so I think that I have not to change the fec initialization I already have. I'm actually thinking to a problem on transceiver setting.
Could someone try to explain me which are the possible causes for this type of error? I already read a small paragraph on the datasheet but it didn't help me.
Thank you, regards
Danny
I have seen this type of problem on 5272 and 5282 type processors. My testing showed on these processors with the cache turned on a read of code from flash took long enough to cause a problem with the ethernet at 100M. The DMA engine could not interrupt the cache read. My solution was to copy the boot code to RAM. On these targets there was enough RAM to do this.
I had a quick look at DMA options but the copy to RAM and execute was simpler so I took that path.
What happens if you turn the cache off ?
Chris
Hello Chris, thank you for your reply.
It seems there isn't cache on M52259. I tried to run the code in RAM (debug mode) and also to rise the clock freq up to 80 MHz, but I haven't any success yet. The error is always the same: "transmit fifo underrun".
Do you have any other suggestions?
Thank you, regards
Danny