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.
This commit is contained in:
Jennifer Averett
2011-07-14 17:30:28 +00:00
parent 1d007c60ee
commit ad2cefe0c0
4 changed files with 16 additions and 7 deletions

View File

@@ -1,3 +1,8 @@
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> 2011-07-14 Jennifer Averett <Jennifer.Averett@OARcorp.com>
* shared/irq/apic.h, shared/smp/README, shared/smp/smp-imps.c, * shared/irq/apic.h, shared/smp/README, shared/smp/smp-imps.c,

View File

@@ -73,7 +73,7 @@ int BSP_irq_disable_at_i8259s (const rtems_irq_number irqLine)
rtems_interrupt_level level; rtems_interrupt_level level;
if ( ((int)irqLine < BSP_LOWEST_OFFSET) || if ( ((int)irqLine < BSP_LOWEST_OFFSET) ||
((int)irqLine > BSP_MAX_OFFSET ) ((int)irqLine > BSP_MAX_ON_i8259S )
) )
return 1; return 1;
@@ -108,7 +108,7 @@ int BSP_irq_enable_at_i8259s (const rtems_irq_number irqLine)
rtems_interrupt_level level; rtems_interrupt_level level;
if ( ((int)irqLine < BSP_LOWEST_OFFSET) || if ( ((int)irqLine < BSP_LOWEST_OFFSET) ||
((int)irqLine > BSP_MAX_OFFSET ) ((int)irqLine > BSP_MAX_ON_i8259S )
) )
return 1; return 1;
@@ -135,7 +135,7 @@ int BSP_irq_enabled_at_i8259s (const rtems_irq_number irqLine)
unsigned short mask; unsigned short mask;
if ( ((int)irqLine < BSP_LOWEST_OFFSET) || if ( ((int)irqLine < BSP_LOWEST_OFFSET) ||
((int)irqLine > BSP_MAX_OFFSET ) ((int)irqLine > BSP_MAX_ON_i8259S )
) )
return 1; 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) int BSP_irq_ack_at_i8259s (const rtems_irq_number irqLine)
{ {
if ( ((int)irqLine < BSP_LOWEST_OFFSET) || if ( ((int)irqLine < BSP_LOWEST_OFFSET) ||
((int)irqLine > BSP_MAX_OFFSET ) ((int)irqLine > BSP_MAX_ON_i8259S )
) )
return 1; return 1;
@@ -190,7 +190,7 @@ static void compute_i8259_masks_from_prio (void)
unsigned int i; unsigned int i;
unsigned int j; unsigned int j;
rtems_interrupt_disable(level); /* XXX */ rtems_interrupt_disable(level);
/* /*
* Always mask at least current interrupt to prevent re-entrance * Always mask at least current interrupt to prevent re-entrance

View File

@@ -41,8 +41,9 @@ extern "C" {
/* Base vector for our IRQ handlers. */ /* Base vector for our IRQ handlers. */
#define BSP_IRQ_VECTOR_BASE BSP_ASM_IRQ_VECTOR_BASE #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_LOWEST_OFFSET 0
#define BSP_MAX_ON_i8259S (BSP_IRQ_LINES_NUMBER - 2)
#define BSP_MAX_OFFSET (BSP_IRQ_LINES_NUMBER - 1) #define BSP_MAX_OFFSET (BSP_IRQ_LINES_NUMBER - 1)
/* /*
* Interrupt offset in comparison to BSP_ASM_IRQ_VECTOR_BASE * Interrupt offset in comparison to BSP_ASM_IRQ_VECTOR_BASE
@@ -56,6 +57,7 @@ extern "C" {
#define BSP_UART_COM1_IRQ 4 #define BSP_UART_COM1_IRQ 4
#define BSP_RT_TIMER1 8 #define BSP_RT_TIMER1 8
#define BSP_RT_TIMER3 10 #define BSP_RT_TIMER3 10
#define BSP_SMP_IPI 16
#define BSP_INTERRUPT_VECTOR_MIN BSP_LOWEST_OFFSET #define BSP_INTERRUPT_VECTOR_MIN BSP_LOWEST_OFFSET
#define BSP_INTERRUPT_VECTOR_MAX BSP_MAX_OFFSET #define BSP_INTERRUPT_VECTOR_MAX BSP_MAX_OFFSET

View File

@@ -40,6 +40,7 @@ extern void rtems_irq_prologue_12(void);
extern void rtems_irq_prologue_13(void); extern void rtems_irq_prologue_13(void);
extern void rtems_irq_prologue_14(void); extern void rtems_irq_prologue_14(void);
extern void rtems_irq_prologue_15(void); extern void rtems_irq_prologue_15(void);
extern void rtems_irq_prologue_16(void);
/* /*
* default vectors * default vectors
*/ */
@@ -80,7 +81,8 @@ static rtems_raw_irq_hdl rtemsIrq[BSP_IRQ_LINES_NUMBER] = {
rtems_irq_prologue_12, rtems_irq_prologue_12,
rtems_irq_prologue_13, rtems_irq_prologue_13,
rtems_irq_prologue_14, rtems_irq_prologue_14,
rtems_irq_prologue_15 rtems_irq_prologue_15,
rtems_irq_prologue_16,
}; };
static rtems_raw_irq_connect_data defaultRawIrq = { static rtems_raw_irq_connect_data defaultRawIrq = {