diff options
author | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2011-07-14 17:30:28 +0000 |
---|---|---|
committer | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2011-07-14 17:30:28 +0000 |
commit | ad2cefe0c01cac68c40e61733fc0ec82747bd228 (patch) | |
tree | 33216daa22aa09f29139e46d1401718221426e43 /c/src/lib | |
parent | 2011-07-14 Jennifer Averett <Jennifer.Averett@OARcorp.com> (diff) | |
download | rtems-ad2cefe0c01cac68c40e61733fc0ec82747bd228.tar.bz2 |
2011-07-14 Jennifer Averett <Jennifer.Averett@OARcorp.com>
* shared/irq/irq.c, shared/irq/irq.h, shared/irq/irq_init.c: Add
initial support for APIC.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/i386/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/irq/irq.c | 10 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/irq/irq.h | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/irq/irq_init.c | 4 |
4 files changed, 16 insertions, 7 deletions
diff --git a/c/src/lib/libbsp/i386/ChangeLog b/c/src/lib/libbsp/i386/ChangeLog index 63aea10156..3bba056a4a 100644 --- a/c/src/lib/libbsp/i386/ChangeLog +++ b/c/src/lib/libbsp/i386/ChangeLog @@ -1,5 +1,10 @@ 2011-07-14 Jennifer Averett <Jennifer.Averett@OARcorp.com> + * shared/irq/irq.c, shared/irq/irq.h, shared/irq/irq_init.c: Add + initial support for APIC. + +2011-07-14 Jennifer Averett <Jennifer.Averett@OARcorp.com> + * shared/irq/apic.h, shared/smp/README, shared/smp/smp-imps.c, shared/smp/smp-imps.h: New files. diff --git a/c/src/lib/libbsp/i386/shared/irq/irq.c b/c/src/lib/libbsp/i386/shared/irq/irq.c index 4e41789791..e04f14f424 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq.c +++ b/c/src/lib/libbsp/i386/shared/irq/irq.c @@ -73,7 +73,7 @@ int BSP_irq_disable_at_i8259s (const rtems_irq_number irqLine) rtems_interrupt_level level; if ( ((int)irqLine < BSP_LOWEST_OFFSET) || - ((int)irqLine > BSP_MAX_OFFSET ) + ((int)irqLine > BSP_MAX_ON_i8259S ) ) return 1; @@ -108,7 +108,7 @@ int BSP_irq_enable_at_i8259s (const rtems_irq_number irqLine) rtems_interrupt_level level; if ( ((int)irqLine < BSP_LOWEST_OFFSET) || - ((int)irqLine > BSP_MAX_OFFSET ) + ((int)irqLine > BSP_MAX_ON_i8259S ) ) return 1; @@ -135,7 +135,7 @@ int BSP_irq_enabled_at_i8259s (const rtems_irq_number irqLine) unsigned short mask; if ( ((int)irqLine < BSP_LOWEST_OFFSET) || - ((int)irqLine > BSP_MAX_OFFSET ) + ((int)irqLine > BSP_MAX_ON_i8259S ) ) return 1; @@ -153,7 +153,7 @@ int BSP_irq_enabled_at_i8259s (const rtems_irq_number irqLine) int BSP_irq_ack_at_i8259s (const rtems_irq_number irqLine) { if ( ((int)irqLine < BSP_LOWEST_OFFSET) || - ((int)irqLine > BSP_MAX_OFFSET ) + ((int)irqLine > BSP_MAX_ON_i8259S ) ) return 1; @@ -190,7 +190,7 @@ static void compute_i8259_masks_from_prio (void) unsigned int i; unsigned int j; - rtems_interrupt_disable(level); /* XXX */ + rtems_interrupt_disable(level); /* * Always mask at least current interrupt to prevent re-entrance diff --git a/c/src/lib/libbsp/i386/shared/irq/irq.h b/c/src/lib/libbsp/i386/shared/irq/irq.h index ff78ae71ad..a781799f37 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq.h +++ b/c/src/lib/libbsp/i386/shared/irq/irq.h @@ -41,8 +41,9 @@ extern "C" { /* Base vector for our IRQ handlers. */ #define BSP_IRQ_VECTOR_BASE BSP_ASM_IRQ_VECTOR_BASE -#define BSP_IRQ_LINES_NUMBER 16 +#define BSP_IRQ_LINES_NUMBER 17 #define BSP_LOWEST_OFFSET 0 +#define BSP_MAX_ON_i8259S (BSP_IRQ_LINES_NUMBER - 2) #define BSP_MAX_OFFSET (BSP_IRQ_LINES_NUMBER - 1) /* * Interrupt offset in comparison to BSP_ASM_IRQ_VECTOR_BASE @@ -56,6 +57,7 @@ extern "C" { #define BSP_UART_COM1_IRQ 4 #define BSP_RT_TIMER1 8 #define BSP_RT_TIMER3 10 +#define BSP_SMP_IPI 16 #define BSP_INTERRUPT_VECTOR_MIN BSP_LOWEST_OFFSET #define BSP_INTERRUPT_VECTOR_MAX BSP_MAX_OFFSET 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 b5057c4453..798d57a35b 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq_init.c +++ b/c/src/lib/libbsp/i386/shared/irq/irq_init.c @@ -40,6 +40,7 @@ extern void rtems_irq_prologue_12(void); extern void rtems_irq_prologue_13(void); extern void rtems_irq_prologue_14(void); extern void rtems_irq_prologue_15(void); +extern void rtems_irq_prologue_16(void); /* * default vectors */ @@ -80,7 +81,8 @@ static rtems_raw_irq_hdl rtemsIrq[BSP_IRQ_LINES_NUMBER] = { rtems_irq_prologue_12, rtems_irq_prologue_13, rtems_irq_prologue_14, - rtems_irq_prologue_15 + rtems_irq_prologue_15, + rtems_irq_prologue_16, }; static rtems_raw_irq_connect_data defaultRawIrq = { |