Hi,
I'm using qemu-2.1.0 on a ppc440 target trying to run xilkernel v5.01.a on it.
This is definitely a newbee question but I'm a bit confused on what could be causing this behavior :
Interrupt function set in xilkernel such as critical_irq, kernel_irq and non_critical_irq, have this piece of code as function header :
mtsprg 0,r3
ori r3,16,r3
mtmsr r3
From what I understand it raises level of instruction and data to pass in system mode (r3 is 0x10).
The problem is that at each time the last instruction is reached (mtmsr r3), pc jump automatically to IVOR12 which appears to be the Watch Dog Interrupt if I understand clearly.
Since IVOR12 calls critical_irq, which in turn execute the piece of code shown above, the system enters a endless loop instead of executing interrupt handler instruction :
kernel_irq => ... mtmsr r3 => IVOR12 => ... b critical_irq =>
critical_irq => ... mtmsr r3 => IVOR12 => ... b critical_irq
...
Can anyone give me a clue on what is going on here and what do I do wrong ?
Thanks a lot for your advice,
Pierre