This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

M7 data cache and Peripheral DMAs

I am using an Atmel/Microchip ATSAME70 Cortex M7 processor and was working on getting Ethernet GMAC driver working. The GMAC uses an internal DMA engine to transfer packets to SRAM.  I noticed that I was getting some HRESP errors with the DMA transferring data and the peripheral driver was not working.  I disabled the data cache and the driver works. 

The code polls the SRAM locations to see if a DMA has completed so I tried leaving data cache on and invalidating the cache before reading the SRAM but that did not fix problem. I was wondering if anyone knew of any problems using the data cache and DMAs in peripherals like this? 

Note every time I contact Microchip about such problems they inform me that they never test/run code with caching enabled, so they never see any problems. 

Thanks

Trampas

Parents
  • I would not recommend to poll the buffer or the ring-buffer descriptors. Rather poll the interrupt register of the GMAC.

    Regarding you below question: Today's chips are monsters, so there are thousands of pages to describe them. I have to deal with a lot of different vendors but I cannot say that one of them has the _best_ manual. Same goes for examples/driver libraries from the manufactures. None is complete, most are over-complicated and many have bugs.
    In short, you cannot pick a SoC because of the drivers/manuals.

Reply
  • I would not recommend to poll the buffer or the ring-buffer descriptors. Rather poll the interrupt register of the GMAC.

    Regarding you below question: Today's chips are monsters, so there are thousands of pages to describe them. I have to deal with a lot of different vendors but I cannot say that one of them has the _best_ manual. Same goes for examples/driver libraries from the manufactures. None is complete, most are over-complicated and many have bugs.
    In short, you cannot pick a SoC because of the drivers/manuals.

Children