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

Data abort, External abort.. How can i find cause????

Hi, experts

I'm developing Secure OS on A57/53 bit.LITTLE SoC. But as you know.. Cuz i'm really beginner..

I beg your wisdom...

Current situation is :

  • For making a TA. Bring the related data from REE and Mapping TEE side's NON-SECURE memory. (Data are information for executing file (Elf section info ... etc).
  • Copying that Mapping data on SECURE memory. and UnMapping former area.

Using above way the TA runs but ONLY 17 times.

at 18 times it occurs External Abort (DABT) and remain below information.

  • dfsr:0xc06, prev mode: SVC MODE

i have no idea why this happen...? Could you give me a your merciful answers and idea???

Thank you.....;

  • Hello,

    The Exception Syndrome Register (ESR_ELx) will describe the cause of the exception (replacing `_ELx' with the exception level that the exception was taken to, for example ESR_EL1).

    See §D7.2.27 of the ARMv8-A Architecture Reference Manual (ARM DDI 0487A.k_iss10775) for a full description of this register.

    Is that what you're looking for?

    Ash.

  • Are you using AArch32 or AArch64 state? It looks like that error message is generated by an AArch32 exception handler (DFSR is an AArch32 system register, and SVC is an AArch32 mode).

    If that is the case, look at section G6.2.41 of the Architecture Reference Manual for a description of the DFSR register. The value 0xC06 in this register would mean:
    * bit [9] is zero, so using the "Short-descriptor" format
    * bits [10,3:0] are 0b10110, so this is an asynchronous external abort (SError interrupt)

    Unfortunately because the abort is asynchronous, there isn't a lot of extra syndrome information (the processor doesn't record the exact instruction that generated the abort or the location that was accessed).

    But if this is happening repeatably (so it's not a random error) then it is likely that your code is accessing an illegal address.