We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi,
I have R5F core with ARMv7 architecture. I want the memory to be shared across the multiple R5F CPUs in AM2732 TI device.
I am confused what happens if -
How does the CPU distinguishes between the same ?
Best Regards,Aakash
PS. I suppose #2 should be sharable across CPUs and #4 should be done via software coherency. But what about the others really ?
First lets take a step back:
The Shareable attribute is how software tells the processor who accesses this location. Setting a location as non-shared means that software is saying that either no other observer (e.g. a DMA or other processor) will access this location, or it if does that software will deal with ensuring a coherent view. Setting a location as shared means software is saying that some other observers might access the location AND that the processor needs to ensure a coherent view of that location.
The Cacheable attribute is software telling the processor whether is it permitted to cache a location - I know, kind of stating the obvious. But note, it's not a command that the location MUST be cached. Rather that it is allowed to be cached.
Now lets apply that to the Cortex-R5F:
Hi Martin Weidmann,
So it is okay to say that if user sets the Cacheable = 1 and Shareable = 1, then Shareable will take precedence and the processor will be provided a coherent view and the location will not be allowed to be cached.