We upgraded our device from TI BSP 6.13 to 6.15 recently. We did not see this data abort when using 6.13.
The processor is TI AM3715 ES1.2 @ 800MHz (and OMAP3530 / DM3730 as well).
The data abort happened when resuming, and ramdomly happened when accessing the INTC register in OEMInterruptHandler():
Exception 'Data Abort'(4) Thread-Id=00db0002(pth=ffffc360) PC=81a11418 BVA=a1100040, dwInfo = 00001008
R0=81a2f404 R1=60000113 R2=a1100000 R3=86209e98
R4=00000000 R5=8620a584 R6=8620df20 R7=81a2f404
R8=00000001 R9=00000002 R10=8620b248 R11=8620b248
R12=81a34f98 SP=ffffc4b0 Lr=81a34fb0 Psr=60000193
Logical Address 0xa110,0040 was mapped to the hysical address 0x4820,0040 (INTC_SIR_IRQ), according to the MMU translation table (TTBR1).
The PC Address 0x81a1,1418 (-8) is exactly the instruction which reading the INTC_SIR_IRQ register.
The MMU fault status register (MMU-C5) reported 0x0000,1008 which is "precise external abort, nontranslation".
It has been noticed, in resuming, the very first INTC register reading is always success. This data abort happened ramdomly sometime later in the middle of resuming.
I implemented the ERRATA 1.105 but not help (MPU Leaves MSTANDBY State Before IDLEREQ of Interrupt Controller is Released).
My question is:
1. Does it possible the Interrupt Controller Register becoming unavailable while the MPU are running?
2. What's the possible bad PRCM machine-state which may result in this trouble?
I appreciate your help, thanks
Hans