Hello,
Here is the reason why you are getting IVOR6.
7.7.7 Program interrupt (IVOR6)
e200z759n3 implements the Program interrupt as defined by PowerISA 2.06. A program interrupt occurs
when no higher priority exception exists and one or more of the following exception conditions defined in
PowerISA 2.06 occur:
-
Illegal Instruction exception
-
Privileged Instruction exception
-
Trap exception
-
Unimplemented Operation exception
e200z7 will invoke an Illegal Instruction program exception on attempted execution of the following instructions:
• Unimplemented instructions
• Instruction from the illegal instruction class
• mtspr and mfspr instructions with an undefined SPR specified
• mtdcr and mfdcr instructions with an undefined DCR specified
e200z7 will invoke a Privileged Instruction program exception on attempted execution of the following instructions when MSR[PR]=1 (user mode):
• A privileged instruction
• mtspr and mfspr instructions that specify a SPRN value with SPRN[5]=1 (even if the SPR is undefined).
e200z7 will invoke an Trap exception on execution of the tw and twi instructions if the trap conditions are met and the exception is not also enabled as a Debug interrupt.
e200z759n3 will invoke an Illegal instruction program exception on attempted execution of the instructions lswi, lswx, stswi, stswx, mfapidi, mfdcrx, mtdcrx, or on any PowerISA 2.06 floating point instruction when MSR FP=1. All other defined or allocated instructions that are not implemented by e200z7 will cause a illegal instruction program exception.
In my opinion you either executing instruction which is not supported (like illegal one) or you are accessing memory which is not available.
SRR0 should be set to the effective address of the excepting instruction.\
Save/Restore Register 0 (SRR0). The SRR0 register is used to save machine state on a
non-critical interrupt, and contains the address of the instruction at which execution resumes
when an rfi or se_rfi instruction is executed at the end of a non-critical class interrupt
handler routine.
If not then simply debug step by step your application and find the instruction where it crashes to see if it is executing properly or accessing some illegal/ not granted access memory.
Best regards,
Peter