Forum Discussion
Altera_Forum
Honored Contributor
16 years agoTSE or SGDMA related problem with concurrent tx and rx
Hi, Premise: I don't know if this problem is actually related to tse or sgdma; maybe even to Nios tse driver, although I don't think so. I'm sending and receiving Ethernet packets using t...
Altera_Forum
Honored Contributor
16 years agoThe SGDMA buffers in the descriptors can be up to 64k long. That said I faced a similar problem when improving/debugging the TSE drivers for eCOS. I had a bug in buffer allocation and some times a received packet would end up in a buffer used for transmit.
Are you using the standard altera TSE drivers with uCOS/Interniche? In that case, what version? You could add some debug messages displaying the buffer address and length used during each DMA transfer, just to check that you don't have any overlap. It could also be a cache coherency problem. Check that the driver properly flushes the cache before a DMA read and invalidates it after the DMA write (or uses the alt_remap_uncached() functions).