X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cpu%2Fmicroblaze%2Firq.S;h=e1fc19046c721ee98e0c332c76506f7431ccef35;hb=ad9073211ca9e62162a39851e082b8d07a662fb6;hp=393d6e8dd42a32950174b6980ae510977cfb874a;hpb=792032baa7d625e34c981ab6df521911bd8dc861;p=oweals%2Fu-boot.git diff --git a/cpu/microblaze/irq.S b/cpu/microblaze/irq.S index 393d6e8dd4..e1fc19046c 100644 --- a/cpu/microblaze/irq.S +++ b/cpu/microblaze/irq.S @@ -23,6 +23,7 @@ */ #include +#include .text .global _interrupt_handler _interrupt_handler: @@ -151,7 +152,20 @@ _interrupt_handler: addi r1, r1, 4 /* enable_interrupt */ +#ifdef XILINX_USE_MSR_INSTR msrset r0, 2 +#else + /* FIXME unstable in stressed mode - two irqs */ + nop + addi r1, r1, -4 + swi r12, r1, 0 + mfs r12, rmsr + ori r12, r12, 2 + mts rmsr, r12 + lwi r12, r1, 0 + addi r1, r1, 4 + nop +#endif bra r14 nop nop