Hi Ti experts,
I learned from the AM65X TRM and the E2E post() that the MSMC can handle the cache coherent issue when doing DMA transfer, which means it's not necessary to care the cache coherency before and after DMA transfer.
It really brings great performance benefits.
But in my situation, I need to set some DDR regions to Non-sharable MMU attributes as not intending to share those regions with other CPU cores.
Once setting the DDR regions to Non-sharable, the core cannot read the correct data from the memory which DMA destine to.
The data is incorrect even after doing cache invalidation on the DMA region.
I knew the MEM_ATTR tables in North Bridge and DRU may impact the result, so all the MEM_ATTR table entries have been set to Non-sharable(0x40), the result is same.
My questions are, can the AM65x handle the cache coherency upon Non-sharable MMU attribute regions by hardware?
If yes, how to achieve that?
If no, what's the operating sequence to guarantee the cache coherency?
Thanks and Best Regards,
Guohu Xu