Hi *,
We would like to ask two questions:
1. Why does the core unexpectedly access address 0x001C18A0? Is it doing prefetch?
2. If it is prefetch, is there a way to disable this prefetch behavior in the core? Because the unexpected access to the reserved address causes errors in the system's error monitoring module.
For this type of question, you might want to also raise a query with the Arm support team - https://support.developer.arm.com/
jiahua_gong jiahua_gong said:1. Why does the core unexpectedly access address 0x001C18A0? Is it doing prefetch?
Some combination of prefetching/branch prediction seems like a likely explanation.
jiahua_gong jiahua_gong said:2. If it is prefetch, is there a way to disable this prefetch behavior in the core?
Software controls fetching via the execution never permission (XN). Marking a region as XN means that the processor cannot fetch from that region. You need to ensure that only regions that can be safely prefetched from have the execution permission.
Do you have the MPU enabled?
If no, then the processor is using the default region set (https://developer.arm.com/documentation/ddi0363/g/Memory-Protection-Unit/About-the-MPU?lang=en). That might be a problem for you as the default region set marks 0x0-0x7FFFFFFF as executable.
If yes, can you review which regions are defined and what their attributes are?