IVOR6 exception after execution of IVOR1

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IVOR6 exception after execution of IVOR1

393 Views
Othmane1
Contributor II

Hi,

I was trying to a do RAM ECC fault injection test on the MPC5777C, the idea is that i try to inject 2 bit flips using the EIM and then i suppose to jump the IVOR1.

my code does everything correctly excepty that when i try to go back from the exception (IVOR1) i end up in another one (IVOR6)!!

Othmane1_0-1703053260819.png

 

Can someone guide me?

0 Kudos
4 Replies

379 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

IVOR6 on e200z759 may be caused by one fo following reason:
• Illegal Instruction exception
• Privileged Instruction exception
• Trap exception
• Unimplemented Operation exception

Details you may find in e200z759n3 Core Reference Manual, Rev. 2
section 7.7.7 Program interrupt (IVOR6)

For RAM ECC injection I made example code here:
https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/Error-Correction-Codes-Implemented-on-MPC5777C/t...

Hope it helps

0 Kudos

371 Views
Othmane1
Contributor II

Yes i actually did inspire from that SW.

I tryied to check that register (ESR) it it says that it is an illegal instruction, but i don't know exactly what instruction is causing that, below is the file stl_sram_ecc.c that i'm using if you check it and help me (i'm using GCC )

 

0 Kudos

356 Views
Othmane1
Contributor II

it seems that i have an illegal instruction in the code below but i don't know where exactly:

 

#if VLE_IS_ON // for VLE code
void Increment_MCSRR0_to_next_instruction(void)
{
__asm(

"mfmcsrr0 %r5;"

/* determine opcode @ MCSRR0 */
"se_lhz %r4,0(%r5);"

/* check bit 31,28 only*/
"e_andi. %r3,%r4,0x9000;"
"e_cmpli 0x0,%r3,0x1000;"

"e_bne __machine_check_adjust_for_16bit_opcode;"

/* 0xx1 => 32 bit*/
"se_addi %r5,2;"

"__machine_check_adjust_for_16bit_opcode:;"

/* all others just 16 bit long*/
"se_addi %r5,2;"

/* save adjusted return address*/
"mtmcsrr0 %r5;"
);
}

 

Othmane1_0-1703146397345.png

 

0 Kudos

322 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

I would recommend to see assembler code in the debugger and find fault instruction/access causing IVOR6 fault.

0 Kudos