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.