forked from Imagelibrary/rtems
Allow single spurious FPGA interrupt.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
2006-05-15 Eric Norum <norume@aps.anl.gov>
|
2006-05-15 Eric Norum <norume@aps.anl.gov>
|
||||||
|
|
||||||
* startup/bspstart.c: Add checks for FPGA interrupt request overflow.
|
* startup/bspstart.c: Add checks for FPGA interrupt request overflow.
|
||||||
|
Allow single spurious FPGA interrupt.
|
||||||
|
|
||||||
2006-04-11 Eric Norum <norume@aps.anl.gov>
|
2006-04-11 Eric Norum <norume@aps.anl.gov>
|
||||||
|
|
||||||
|
|||||||
@@ -476,7 +476,7 @@ trampoline (rtems_vector_number v)
|
|||||||
if (++loopcount >= 50) {
|
if (++loopcount >= 50) {
|
||||||
rtems_interrupt_level level;
|
rtems_interrupt_level level;
|
||||||
rtems_interrupt_disable(level);
|
rtems_interrupt_disable(level);
|
||||||
printk("\nTOO MANY FPGA INTERRUPTS (LAST WAS 0x%x) -- DISABLING ALL FPGA INTERRUPTS.\n", v);
|
printk("\nTOO MANY FPGA INTERRUPTS (LAST WAS 0x%x) -- DISABLING ALL FPGA INTERRUPTS.\n", v & 0x3f);
|
||||||
MCF5282_INTC0_IMRL |= MCF5282_INTC_IMRL_INT1;
|
MCF5282_INTC0_IMRL |= MCF5282_INTC_IMRL_INT1;
|
||||||
rtems_interrupt_enable(level);
|
rtems_interrupt_enable(level);
|
||||||
return;
|
return;
|
||||||
@@ -486,9 +486,14 @@ trampoline (rtems_vector_number v)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rtems_interrupt_level level;
|
rtems_interrupt_level level;
|
||||||
|
rtems_vector_number nv;
|
||||||
rtems_interrupt_disable(level);
|
rtems_interrupt_disable(level);
|
||||||
printk("\nINVALID FPGA INTERRUPT (0x%x) -- DISABLING ALL FPGA INTERRUPTS.\n", v);
|
printk("\nSPURIOUS FPGA INTERRUPT (0x%x).\n", v & 0x3f);
|
||||||
MCF5282_INTC0_IMRL |= MCF5282_INTC_IMRL_INT1;
|
if ((((nv = FPGA_IRQ_INFO) & 0x80) != 0)
|
||||||
|
&& ((nv & 0x3f) == (v & 0x3f))) {
|
||||||
|
printk("DISABLING ALL FPGA INTERRUPTS.\n");
|
||||||
|
MCF5282_INTC0_IMRL |= MCF5282_INTC_IMRL_INT1;
|
||||||
|
}
|
||||||
rtems_interrupt_enable(level);
|
rtems_interrupt_enable(level);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user