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.
Hello,
I'm currently trying to generate a flash time-out error.
Therefore following the documentation I branch to a non flash region, then change the flash threshold count to a very small value (I tried 0 and 2).
Then I branch to a flash region and expecting a data prefetch abort yet nothing happens.
I did not found more information in the TRM about this exception. Am I missing something ?
Thanks,
Regards
It stands for Performance Monitor Control.
The bit X is necessary in order to trig ECC error.
Hi,
Here is more information. We have enabled the PMU counter on event 0x62 "Processor livelock because of hard errors or exception at exception vector." (EVNTBUSm bit position [35]) just before getting the Flash access time-out exception. To get the exception, we set L2FMC ACC_THRESHOLD to 0x1 and then we run to execute and instruction in Flash. We then hit the Prefetch Abort handler (this is expected). Then, we reverted back ACC_THRESHOLD to 0x5FF via the debugger (to allow further code execution...). With all that, we noticed that the PMU had counted 2 events! We also restarted the same steps, but with another PMU event just to make sure our measurement was good (event 0x71 "All fatal bus faults") and we got a PMU counter to 0, as expected.
It is logic to see 0x62 counter increment since the L2FMC corruption we had introduced produces a Prefetch Abort each time the Flash is accessed, including when attempting to execute the Prefetch Abort handler itself ... which is located in Flash :) So we get into an infinite loop of Pretech Abort exceptions, exactly what describes PMU event type 0x62.
So this means the ESM sets 2.16 when it receives EVNTBUSm bit position [35] from core. Doesn't TI engineering team confirm there is that connection in the design? If not, then to what is connected EVNTBUSm[35]?
Note: PMCR[X] needs to be set to 1 for the PMU event to be exported to the ESM.
Thanks.
We tried on different silicon and same results happens.
When you perform your tests, did you set the PMCR bit X to 1 ?
We performed a different test which is another mean to get the ESM 2.16:
- In you handlers source code, change the undefined handler instruction to :"udf #0". Recompile and download.
- Reset the CPU, set PMCR bit X to 1, set the PC to 0x4 (Undefined handler).
- Look at ESM ESR registers (should all be zero)
- Then do a step in or run and stop.
- ESM 2.16 is now set! (ESMSR2[16]=1)
Hi Étienne,
I repeated the test, but could not set the bit of ESM2.16. I set PMCR[x] bit and enable the event of 0x62, and configured the ACC threshold to 0x1, and read the flash location of 0x0000_0004.
1. PMU configuration:
2. Flash Error Status: access timeout bit is set as expected
3. ESM3.13 is set as expected