From 93fb8797961f602ea70ac5b846a066b05db44b18 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Fri, 6 May 2016 17:55:29 +1000 Subject: i386/pc386: Fix interrupt support. Fix the interrupt and stop the spurious interrupt from happening. The fix moves the EOI to C code and cleans that functionality out of the asm part of the ISR handler. The code checks the ISR and IRR registers on the enable. Only ack the master for a slave IRQ if the slave has no other pending requests. --- c/src/lib/libbsp/i386/shared/irq/irq_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'c/src/lib/libbsp/i386/shared/irq/irq_init.c') diff --git a/c/src/lib/libbsp/i386/shared/irq/irq_init.c b/c/src/lib/libbsp/i386/shared/irq/irq_init.c index fe8d7e7f9f..c401f29b71 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq_init.c +++ b/c/src/lib/libbsp/i386/shared/irq/irq_init.c @@ -66,7 +66,7 @@ static int raw_not_connected( static rtems_raw_irq_connect_data idtHdl[IDT_SIZE]; -static rtems_raw_irq_hdl rtemsIrq[BSP_IRQ_LINES_NUMBER] = { +static rtems_raw_irq_hdl rtemsIrq[BSP_IRQ_VECTOR_NUMBER] = { rtems_irq_prologue_0, rtems_irq_prologue_1, rtems_irq_prologue_2, @@ -149,7 +149,7 @@ void rtems_irq_mngt_init(void) * Patch the entry that will be used by RTEMS for interrupt management * with RTEMS prologue. */ - for (i = 0; i < BSP_IRQ_LINES_NUMBER; i++) { + for (i = 0; i < BSP_IRQ_VECTOR_NUMBER; i++) { create_interrupt_gate_descriptor(&idtEntry, rtemsIrq[i]); idt_entry_tbl[i + BSP_ASM_IRQ_VECTOR_BASE] = idtEntry; } -- cgit v1.2.3