Asynchronous External abort

I am facing Data abort - Asynchronous External abort type. Our understanding about Asynchronous External abort, The exception is not generated as a result of direct execution or attempted execution of instruction that caused the exception.

Following register dump are collected during Exception handling:

  1. spsr_abt           : 0x6000001f
  2. DFSR               : 0x1406
  3. ADFSR             : 0x0
  4. AIFSR              : 0x0
  5. DFAR               : 0x4d033787
  6. sp_abt              : 0x43efdde8
  7. lr_abt                : 0x4000c1c0
  8. sp_sys              : 0x43ef3778
  9. lr_sys               : 0x4010ded0

DFSR contains -  0x1406

Exception type bit[12]    : External abort type

Fault status bit[10, 3:0]   : 0b10110 - Asynchronous external abort

 

Over Asynchronous exception DFAR become UNKNOWN. So We expected AxFSR should help in this case. Unfortunately, In all the reproduction AxFSR shows ‘0’.

 And Linker(lr) and Stack Pointer (sp) also points to be (very usual flow) normal SW execution.

 Problem observed in CR7 CPU.

  I want to know following thinks, could someone help.

  • Firstly, Is there any defined method to capture the source of Asynchronous External abort.
  • In specific to RCAR SOC, What are all the possible ways could lead to Asynchronous External abort.
  • Does masking Asynchronous exceptions makes any other invisible side effect.
  • Is it possible that wrong system behavior in CA5x CPU’s would cross effect or mislead CR7 CPU to Asynchronous External abort.
  • Does this could be related to something wrong with cache operation.
  • What will happen if the Asynchronous External abort ignored by returning from Exception  handler to normal operation 
Parents
  • Unfortunately, since the exception is asynchronous, it is very hard to find the cause precisely. LR and FSR usually does not help a lot. It could be related to memory access or cache operation.  SW could mask the async exception in CPSR.A bit (just ignoring it). 

    One way that you possibly can try is to use DMB/DSB instruction nearby the exception, which tries to force the exception to be reported early for debugging purpose. But this method does guarantee the cause can be identified.  

Reply
  • Unfortunately, since the exception is asynchronous, it is very hard to find the cause precisely. LR and FSR usually does not help a lot. It could be related to memory access or cache operation.  SW could mask the async exception in CPSR.A bit (just ignoring it). 

    One way that you possibly can try is to use DMB/DSB instruction nearby the exception, which tries to force the exception to be reported early for debugging purpose. But this method does guarantee the cause can be identified.  

Children
No data
More questions in this forum