zephyr/drivers/interrupt_controller
Andrew Boie 88808f1247 quark_se: apic: work around EOI forwarding issue
Quark SE Lakemont core has a hardware bug where the LOAPIC does
not properly notify the IOAPIC to clear the IRR bit for level-
triggered interrupts.

This patch introduces a workaround where the vector ID of the
in-service interrupt is manually written to the IOAPIC_EOI
register, resulting in the bit being cleared.

Unfortunately, in the context where EOI happens it's very difficult
to identify which IRQ line is being serviced, so this is done
unconditionally for all interrupts vectors whether they are registered
in the IOAPIC RTE table or not.

Change-Id: I639cd258dec4f50934e17eadbb821e6a7112e636
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:05 -05:00
..
arcv2_irq_unit.c Fixed file description and applied doxygen style 2016-02-05 20:24:58 -05:00
i8259.c i8259: move init code into driver 2016-02-05 20:25:03 -05:00
ioapic_intr.c quark_se: apic: work around EOI forwarding issue 2016-02-05 20:25:05 -05:00
ioapic_priv.h quark_se: apic: work around EOI forwarding issue 2016-02-05 20:25:05 -05:00
Kconfig loapic: handle spurious interrupts 2016-02-05 20:25:04 -05:00
loapic_intr.c loapic: handle spurious interrupts 2016-02-05 20:25:04 -05:00
loapic_spurious.S loapic: handle spurious interrupts 2016-02-05 20:25:04 -05:00
Makefile loapic: handle spurious interrupts 2016-02-05 20:25:04 -05:00
mvic.c x86: remove loapic_int_vec_trigger() 2016-02-05 20:25:04 -05:00
system_apic.c Fixed file description and applied doxygen style 2016-02-05 20:24:58 -05:00