Query regarding extracting instruction which caused a data-abort exception
rijurekha at ...71...
rijurekha at ...71...
Mon Jun 26 13:35:54 CEST 2017
We get the correct instruction from *(unsigned
int*)(va_to_pa(_state->ip))=e5930080.
The issue was wrong instruction decoding at
http://armconverter.com/hextoarm/. e5930080 gave
(1) in ARMv7 ARM mode
ANDHI SB, R0, R5, ROR #7 , and
(2) in ARMv7 Thumb mode
0xE5930080: STR R3, [SP, #0x394]
0xE5930082: STRH R0, [R0]
Decoding by hand using encoding rules at "ARMĀ® Architecture Reference
Manual - ARMv7-A and ARMv7-R edition" gives
ldr r0, [r3,#128] in ARMv7 ARM mode.
This should be the mode as va_to_pa(_state->ip) is an even address.
r3(53fbc000)+128 exactly matches the DFAR(53fbc080) and ldr matches the
dfsr error that "read" gave "AXI Slave error" causing "precise external
abort, nontranslation".
https://github.com/jbremer/darm gives the correct decoding. We have ported
this to genode, to have inline decoding of faulting instruction and are
able to emulate the decoded instruction.
Thanks Stefan for your patient and constant help.
Riju
More information about the users
mailing list