This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5718: shared region DDR not cacheable and invalidation

Part Number: AM5718

Hi TI experts!

We are sharing a region of DDR where IPU1 (TI-RTOS) writes some positions and some linux binaries (A15) read from it. This region of DDR was originally declared as CMEM into the DTB but we are not using it as CMEM because multiple binaries will need to have access to the very same region in our application, so these binaries actually use open + mmap with MAP_SHARED flag.

We've seen that, sometimes, Linux-A15 cache prefetchs memory positions that haven't been written yet so when the proper time to read these positions arrives, the binary gets the information from the cache with incorrect data (checked with a pattern of invalid data) instead of reading it directly from memory (Yes, we are using volatile variables, but cache goes beyond them).

Could you provide us with a way to tell the kernel that a specific region of memory is not cacheable? Additionally, any way to invalidate cache for a specific buffer? We are using Processor SDK 8.02.01

Thank you in advance

Best regards
Roberto