Ignore:
Timestamp:
May 6, 2016, 7:55:29 AM (4 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
master
Children:
02ef5d9
Parents:
292dbff
git-author:
Chris Johns <chrisj@…> (05/06/16 07:55:29)
git-committer:
Chris Johns <chrisj@…> (05/11/16 01:45:01)
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/i386/shared/irq/irq_init.c

    r292dbff r93fb8797  
    6767static rtems_raw_irq_connect_data       idtHdl[IDT_SIZE];
    6868
    69 static rtems_raw_irq_hdl rtemsIrq[BSP_IRQ_LINES_NUMBER] = {
     69static rtems_raw_irq_hdl rtemsIrq[BSP_IRQ_VECTOR_NUMBER] = {
    7070  rtems_irq_prologue_0,
    7171  rtems_irq_prologue_1,
     
    150150     * with RTEMS prologue.
    151151     */
    152     for (i = 0; i < BSP_IRQ_LINES_NUMBER; i++) {
     152    for (i = 0; i < BSP_IRQ_VECTOR_NUMBER; i++) {
    153153      create_interrupt_gate_descriptor(&idtEntry, rtemsIrq[i]);
    154154      idt_entry_tbl[i + BSP_ASM_IRQ_VECTOR_BASE] = idtEntry;
Note: See TracChangeset for help on using the changeset viewer.