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

In Cortex-R5, the address of cache maintenance operations is not restricted by the MPU ?

Under Cortex-R5, the addresses for cache maintenance are not restricted by the MPU. For example, performing cache cleaning or invalidation operations on an address space without access permission will not cause any exceptions. For example, there are two contexts here called TaskA and TaskB, and during the task switching process, the OS is responsible for maintaining the memory permissions corresponding to each Task context; when TaskA is being executed on the CPU, if the CPU accesses the Memory Space of TaskB, it will be restricted by the MPU; however, at this time, it is allowed to perform a cache invalidation operation on address X belonging to TaskB while executing TaskA. Thus, if the address space corresponding to X is configured as Cacheable + write-back, incorrect cache maintenance behavior will cause Dirty Data in the cache to fail to be correctly written back to memory.

Parents
  • Thank you again for your reply. You mentioned a good point that inspired me. If the Task does not run at PL0, it means that the MPU configuration can be modified within the current task, and in this case, the MPU will still be unable to restrict the Right of access.
Reply
  • Thank you again for your reply. You mentioned a good point that inspired me. If the Task does not run at PL0, it means that the MPU configuration can be modified within the current task, and in this case, the MPU will still be unable to restrict the Right of access.
Children
No data