From 6e6886d5812e9824a7402bee7362ed5da80c452e Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 30 Apr 2010 14:48:52 +0000 Subject: 2010-04-30 Sebastian Huber * irq/bsp_irq_init.c: Removed file. * Makefile.am, preinstall.am: Reflect change above. Added generic interrupt support modules. * include/bsp.h: Define BSP_FEATURE_IRQ_EXTENSION. * startup/bspstart.c, irq/bsp_irq_asm.S, clock/clockdrv.c, network/network.c: Interrupt support changes. --- c/src/lib/libbsp/arm/edb7312/ChangeLog | 9 + c/src/lib/libbsp/arm/edb7312/Makefile.am | 16 +- c/src/lib/libbsp/arm/edb7312/clock/clockdrv.c | 2 +- c/src/lib/libbsp/arm/edb7312/include/bsp.h | 2 + c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S | 56 +++--- c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_init.c | 123 ------------- c/src/lib/libbsp/arm/edb7312/irq/irq.c | 230 ++++++++++++++---------- c/src/lib/libbsp/arm/edb7312/irq/irq.h | 42 +---- c/src/lib/libbsp/arm/edb7312/network/network.c | 2 +- c/src/lib/libbsp/arm/edb7312/preinstall.am | 14 +- c/src/lib/libbsp/arm/edb7312/startup/bspstart.c | 6 +- 11 files changed, 203 insertions(+), 299 deletions(-) delete mode 100644 c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_init.c (limited to 'c/src/lib/libbsp') diff --git a/c/src/lib/libbsp/arm/edb7312/ChangeLog b/c/src/lib/libbsp/arm/edb7312/ChangeLog index 5c2d8e7bfd..6bbd54379a 100644 --- a/c/src/lib/libbsp/arm/edb7312/ChangeLog +++ b/c/src/lib/libbsp/arm/edb7312/ChangeLog @@ -1,3 +1,12 @@ +2010-04-30 Sebastian Huber + + * irq/bsp_irq_init.c: Removed file. + * Makefile.am, preinstall.am: Reflect change above. Added generic + interrupt support modules. + * include/bsp.h: Define BSP_FEATURE_IRQ_EXTENSION. + * startup/bspstart.c, irq/bsp_irq_asm.S, clock/clockdrv.c, + network/network.c: Interrupt support changes. + 2010-04-30 Sebastian Huber * make/custom/edb7312.cfg: Use VFP floating point model. diff --git a/c/src/lib/libbsp/arm/edb7312/Makefile.am b/c/src/lib/libbsp/arm/edb7312/Makefile.am index 1723c2f362..a9f6ca2acf 100644 --- a/c/src/lib/libbsp/arm/edb7312/Makefile.am +++ b/c/src/lib/libbsp/arm/edb7312/Makefile.am @@ -13,6 +13,8 @@ dist_project_lib_DATA = bsp_specs include_HEADERS = include/bsp.h include_HEADERS += ../../shared/include/tm27.h +include_bsp_HEADERS = + nodist_include_HEADERS = include/bspopts.h nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h DISTCLEANFILES = include/bspopts.h @@ -47,11 +49,17 @@ libbsp_a_SOURCES += timer/timer.c # abort libbsp_a_SOURCES += ../shared/abort/abort.c -include_HEADERS += irq/irq.h # irq -libbsp_a_SOURCES += irq/irq.c irq/bsp_irq_init.c \ - ../../arm/shared/irq/irq_init.c irq/bsp_irq_asm.S \ - irq/irq.h +include_bsp_HEADERS += ../../shared/include/irq-generic.h \ + ../../shared/include/irq-info.h \ + irq/irq.h +libbsp_a_SOURCES += ../../shared/src/irq-generic.c \ + ../../shared/src/irq-legacy.c \ + ../../shared/src/irq-info.c \ + ../../shared/src/irq-shell.c \ + ../../shared/src/irq-server.c \ + irq/irq.c \ + irq/bsp_irq_asm.S if HAS_NETWORKING network_CPPFLAGS = -D__INSIDE_RTEMS_BSD_TCPIP_STACK__ diff --git a/c/src/lib/libbsp/arm/edb7312/clock/clockdrv.c b/c/src/lib/libbsp/arm/edb7312/clock/clockdrv.c index 32d185501d..29a8092abc 100644 --- a/c/src/lib/libbsp/arm/edb7312/clock/clockdrv.c +++ b/c/src/lib/libbsp/arm/edb7312/clock/clockdrv.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #if ON_SKYEYE==1 #define CLOCK_DRIVER_USE_FAST_IDLE diff --git a/c/src/lib/libbsp/arm/edb7312/include/bsp.h b/c/src/lib/libbsp/arm/edb7312/include/bsp.h index f3076747bf..3602dc37cd 100644 --- a/c/src/lib/libbsp/arm/edb7312/include/bsp.h +++ b/c/src/lib/libbsp/arm/edb7312/include/bsp.h @@ -25,6 +25,8 @@ extern "C" { #include #include +#define BSP_FEATURE_IRQ_EXTENSION + /* * Define the interrupt mechanism for Time Test 27 * diff --git a/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S b/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S index 4b8da4961f..7374f167e0 100644 --- a/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S +++ b/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S @@ -16,7 +16,7 @@ #define __asm__ #include "irq.h" -#define VECTOR_TABLE 0x40 + .extern edb7312_interrupt_dispatch /* * Function to obtain, execute an IT handler and acknowledge the IT @@ -45,7 +45,7 @@ check_dai: and r6, r4, r5 /* only look at interrupts which are enabled */ tst r6, #0x0001 beq check_extfiq - ldr r0, =(VECTOR_TABLE + (4 * 21)) /* load the vector number */ + mov r0, #BSP_DAIINT b get_handler /* @@ -57,7 +57,7 @@ check_extfiq: and r6, r4, r5 /* only look at interrupts which are enabled */ tst r6, #0x0001 beq check_bl - ldr r0, =(VECTOR_TABLE + (4 * 0)) /* load the vector number */ + mov r0, #BSP_EXTFIQ b get_handler check_bl: @@ -69,7 +69,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0002 beq check_we - ldr r0, =(VECTOR_TABLE + (4 * 1)) /* load the vector number */ + mov r0, #BSP_BLINT b get_handler check_we: @@ -81,7 +81,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0004 beq check_mc - ldr r0, =(VECTOR_TABLE + (4 * 2)) /* load the vector number */ + mov r0, #BSP_WEINT b get_handler check_mc: @@ -93,7 +93,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0008 beq check_cs - ldr r0, =(VECTOR_TABLE + (4 * 3)) /* load the vector number */ + mov r0, #BSP_MCINT b get_handler check_cs: @@ -105,7 +105,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0010 beq check_e1 - ldr r0, =(VECTOR_TABLE + (4 * 4)) /* load the vector number */ + mov r0, #BSP_CSINT b get_handler check_e1: @@ -117,7 +117,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0020 beq check_e2 - ldr r0, =(VECTOR_TABLE + (4 * 5)) /* load the vector number */ + mov r0, #BSP_EINT1 b get_handler check_e2: @@ -129,7 +129,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0040 beq check_e3 - ldr r0, =(VECTOR_TABLE + (4 * 6)) /* load the vector number */ + mov r0, #BSP_EINT2 b get_handler check_e3: @@ -141,7 +141,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0080 beq check_tc1 - ldr r0, =(VECTOR_TABLE + (4 * 7)) /* load the vector number */ + mov r0, #BSP_EINT3 b get_handler check_tc1: @@ -153,7 +153,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0100 beq check_tc2 - ldr r0, =(VECTOR_TABLE + (4 * 8)) /* load the vector number */ + mov r0, #BSP_TC1OI b get_handler check_tc2: @@ -165,7 +165,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0200 beq check_rtc - ldr r0, =(VECTOR_TABLE + (4 * 9)) /* load the vector number */ + mov r0, #BSP_TC2OI b get_handler check_rtc: @@ -177,7 +177,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0400 beq check_tick - ldr r0, =(VECTOR_TABLE + (4 * 10)) /* load the vector number */ + mov r0, #BSP_RTCMI b get_handler check_tick: @@ -189,7 +189,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0800 beq check_utx1 - ldr r0, =(VECTOR_TABLE + (4 * 11)) /* load the vector number */ + mov r0, #BSP_TINT b get_handler check_utx1: @@ -201,7 +201,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x1000 beq check_urx1 - ldr r0, =(VECTOR_TABLE + (4 * 12)) /* load the vector number */ + mov r0, #BSP_UTXINT1 b get_handler check_urx1: @@ -213,7 +213,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x2000 beq check_ums - ldr r0, =(VECTOR_TABLE + (4 * 13)) /* load the vector number */ + mov r0, #BSP_URXINT1 b get_handler check_ums: @@ -225,7 +225,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x4000 beq check_sse - ldr r0, =(VECTOR_TABLE + (4 * 14)) /* load the vector number */ + mov r0, #BSP_UMSINT b get_handler check_sse: @@ -237,7 +237,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x8000 beq check_kbd - ldr r0, =(VECTOR_TABLE + (4 * 15)) /* load the vector number */ + mov r0, #BSP_SSEOTI b get_handler /* @@ -249,7 +249,7 @@ check_kbd: and r6, r4, r5 /* only look at interrupts which are enabled */ tst r6, #0x0001 beq check_ss2rx - ldr r0, =(VECTOR_TABLE + (4 * 16)) /* load the vector number */ + mov r0, #BSP_KBDINT b get_handler check_ss2rx: @@ -261,7 +261,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0002 beq check_ss2tx - ldr r0, =(VECTOR_TABLE + (4 * 17)) /* load the vector number */ + mov r0, #BSP_SS2RX b get_handler check_ss2tx: @@ -273,7 +273,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x0004 beq check_utx2 - ldr r0, =(VECTOR_TABLE + (4 * 18)) /* load the vector number */ + mov r0, #BSP_SS2TX b get_handler check_utx2: @@ -285,7 +285,7 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x1000 beq check_urx2 - ldr r0, =(VECTOR_TABLE + (4 * 19)) /* load the vector number */ + mov r0, #BSP_UTXINT2 b get_handler check_urx2: @@ -297,15 +297,13 @@ MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES #endif tst r6, #0x2000 beq IRQ_NoInterrupt - ldr r0, =(VECTOR_TABLE + (4 * 20)) /* load the vector number */ + mov r0, #BSP_URXINT2 b get_handler get_handler: ldmia sp!,{r4, r5, r6} - ldr r0, [r0] /* extract the IT handler @ */ - /* * re-enable interrupts at processor level as the current * interrupt source is now masked via VEGA logic @@ -316,12 +314,8 @@ get_handler: msr cpsr, r1 */ - stmdb sp!,{lr} - ldr lr, =IRQ_return /* prepare the return from handler */ - - mov pc, r0 /* EXECUTE INT HANDLER */ - -IRQ_return: + stmdb sp!,{lr} + bl edb7312_interrupt_dispatch ldmia sp!,{lr} IRQ_NoInterrupt: diff --git a/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_init.c b/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_init.c deleted file mode 100644 index a9cc5f2171..0000000000 --- a/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_init.c +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Cirrus EP7312 Intererrupt handler - * - * Copyright (c) 2002 by Jay Monkman - * - * Copyright (c) 2002 by Charlie Steader - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.com/license/LICENSE. - * - * - * $Id$ -*/ -#include -#include -#include - -void BSP_rtems_irq_mngt_init(void) -{ - long int_stat; - long *vectorTable; - int i; - - vectorTable = (long *) VECTOR_TABLE; - - /* Initialize the vector table contents with default handler */ - for (i=0; i * * Copyright (c) 2002 by Charlie Steader @@ -13,141 +15,171 @@ * * $Id$ */ + #include -#include -#include -#include -#include +#include +#include -/* - * This function check that the value given for the irq line - * is valid. - */ +#include -static int isValidInterrupt(int irq) +void edb7312_interrupt_dispatch(rtems_vector_number vector) { - if ( (irq < 0) || (irq > BSP_MAX_INT)) - return 0; - return 1; + bsp_interrupt_handler_dispatch(vector); } -/* - * -------------------- RTEMS Single Irq Handler Mngt Routines ---------------- - */ - -int BSP_install_rtems_irq_handler (const rtems_irq_connect_data* irq) +rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) { - rtems_irq_hdl *HdlTable; - rtems_interrupt_level level; - - if (!isValidInterrupt(irq->name)) { - return 0; - } - /* - * Check if default handler is actually connected. If not issue an error. - */ - HdlTable = (rtems_irq_hdl *) VECTOR_TABLE; - if (*(HdlTable + irq->name) != default_int_handler) { - return 0; - } - - rtems_interrupt_disable(level); - - /* - * store the new handler - */ - *(HdlTable + irq->name) = irq->hdl; - - /* - * unmask interrupt - */ - if(irq->name >= BSP_EXTFIQ && irq->name <= BSP_SSEOTI) + if(vector >= BSP_EXTFIQ && vector <= BSP_SSEOTI) { /* interrupt managed by INTMR1 and INTSR1 */ - *EP7312_INTMR1 |= (1 << irq->name); + *EP7312_INTMR1 |= (1 << vector); } - else if(irq->name >= BSP_KBDINT && irq->name <= BSP_SS2TX) + else if(vector >= BSP_KBDINT && vector <= BSP_SS2TX) { /* interrupt managed by INTMR2 and INTSR2 */ - *EP7312_INTMR2 |= (1 << (irq->name - 16)); + *EP7312_INTMR2 |= (1 << (vector - 16)); } - else if(irq->name >= BSP_UTXINT2 && irq->name <= BSP_URXINT2) + else if(vector >= BSP_UTXINT2 && vector <= BSP_URXINT2) { /* interrupt managed by INTMR2 and INTSR2 */ - *EP7312_INTMR2 |= (1 << (irq->name - 7)); + *EP7312_INTMR2 |= (1 << (vector - 7)); } - else if(irq->name == BSP_DAIINT) + else if(vector == BSP_DAIINT) { /* interrupt managed by INTMR3 and INTSR3 */ - *EP7312_INTMR3 |= (1 << (irq->name - 21)); + *EP7312_INTMR3 |= (1 << (vector - 21)); } - /* - * Enable interrupt on device - */ - if(irq->on) - { - irq->on(irq); - } - - rtems_interrupt_enable(level); - - return 1; + return RTEMS_SUCCESSFUL; } -int BSP_remove_rtems_irq_handler (const rtems_irq_connect_data* irq) +rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) { - rtems_irq_hdl *HdlTable; - rtems_interrupt_level level; - - if (!isValidInterrupt(irq->name)) { - return 0; - } - /* - * Check if the handler is actually connected. If not issue an error. - */ - HdlTable = (rtems_irq_hdl *) VECTOR_TABLE; - if (*(HdlTable + irq->name) != irq->hdl) { - return 0; - } - rtems_interrupt_disable(level); - - /* - * mask interrupt - */ - if(irq->name >= BSP_EXTFIQ && irq->name <= BSP_SSEOTI) + if(vector >= BSP_EXTFIQ && vector <= BSP_SSEOTI) { /* interrupt managed by INTMR1 and INTSR1 */ - *EP7312_INTMR1 &= ~(1 << irq->name); + *EP7312_INTMR1 &= ~(1 << vector); } - else if(irq->name >= BSP_KBDINT && irq->name <= BSP_SS2TX) + else if(vector >= BSP_KBDINT && vector <= BSP_SS2TX) { /* interrupt managed by INTMR2 and INTSR2 */ - *EP7312_INTMR2 &= ~(1 << (irq->name - 16)); + *EP7312_INTMR2 &= ~(1 << (vector - 16)); } - else if(irq->name >= BSP_UTXINT2 && irq->name <= BSP_URXINT2) + else if(vector >= BSP_UTXINT2 && vector <= BSP_URXINT2) { /* interrupt managed by INTMR2 and INTSR2 */ - *EP7312_INTMR2 &= ~(1 << (irq->name - 7)); + *EP7312_INTMR2 &= ~(1 << (vector - 7)); } - else if(irq->name == BSP_DAIINT) + else if(vector == BSP_DAIINT) { /* interrupt managed by INTMR3 and INTSR3 */ - *EP7312_INTMR3 &= ~(1 << (irq->name - 21)); + *EP7312_INTMR3 &= ~(1 << (vector - 21)); } - /* - * Disable interrupt on device - */ - if(irq->off) - irq->off(irq); - - /* - * restore the default irq value - */ - *(HdlTable + irq->name) = default_int_handler; + return RTEMS_SUCCESSFUL; +} - rtems_interrupt_enable(level); +rtems_status_code bsp_interrupt_facility_initialize(void) +{ + uint32_t int_stat = 0; + + /* mask all interrupts */ + *EP7312_INTMR1 = 0x0; + *EP7312_INTMR2 = 0x0; + *EP7312_INTMR3 = 0x0; + + /* clear all pending interrupt status' */ + int_stat = *EP7312_INTSR1; + if(int_stat & EP7312_INTR1_EXTFIQ) + { + } + if(int_stat & EP7312_INTR1_BLINT) + { + *EP7312_BLEOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR1_WEINT) + { + *EP7312_TEOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR1_MCINT) + { + } + if(int_stat & EP7312_INTR1_CSINT) + { + *EP7312_COEOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR1_EINT1) + { + } + if(int_stat & EP7312_INTR1_EINT2) + { + } + if(int_stat & EP7312_INTR1_EINT3) + { + } + if(int_stat & EP7312_INTR1_TC1OI) + { + *EP7312_TC1EOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR1_TC2OI) + { + *EP7312_TC2EOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR1_RTCMI) + { + *EP7312_RTCEOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR1_TINT) + { + *EP7312_TEOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR1_URXINT1) + { + } + if(int_stat & EP7312_INTR1_UTXINT1) + { + } + if(int_stat & EP7312_INTR1_UMSINT) + { + *EP7312_UMSEOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR1_SSEOTI) + { + *EP7312_SYNCIO; + } + int_stat = *EP7312_INTSR1; + + int_stat = *EP7312_INTSR2; + if(int_stat & EP7312_INTR2_KBDINT) + { + *EP7312_KBDEOI = 0xFFFFFFFF; + } + if(int_stat & EP7312_INTR2_SS2RX) + { + } + if(int_stat & EP7312_INTR2_SS2TX) + { + } + if(int_stat & EP7312_INTR2_URXINT2) + { + } + if(int_stat & EP7312_INTR2_UTXINT2) + { + } + int_stat = *EP7312_INTSR2; + + int_stat = *EP7312_INTSR3; + if(int_stat & EP7312_INTR2_DAIINT) + { + } + int_stat = *EP7312_INTSR3; + + _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL); + + return RTEMS_SUCCESSFUL; +} - return 1; +void bsp_interrupt_handler_default(rtems_vector_number vector) +{ + printk("spurious interrupt: %u\n", vector); } diff --git a/c/src/lib/libbsp/arm/edb7312/irq/irq.h b/c/src/lib/libbsp/arm/edb7312/irq/irq.h index 8debeaee74..28ffd1a9a7 100644 --- a/c/src/lib/libbsp/arm/edb7312/irq/irq.h +++ b/c/src/lib/libbsp/arm/edb7312/irq/irq.h @@ -1,6 +1,8 @@ /* * Cirrus EP7312 Intererrupt handler * + * Copyright (c) 2010 embedded brains GmbH. + * * Copyright (c) 2002 by Jay Monkman * * Copyright (c) 2002 by Charlie Steader @@ -17,29 +19,14 @@ #ifndef __IRQ_H__ #define __IRQ_H__ -#ifdef __cplusplus -extern "C" { -#endif - - /* define that can be useful (the values are just examples) */ -#define VECTOR_TABLE 0x40 - #ifndef __asm__ -/* - * Include some preprocessor value also used by assember code - */ - -#include #include +#include +#include -extern void default_int_handler(rtems_irq_hdl_param unused); -/*-------------------------------------------------------------------------+ -| Constants -+--------------------------------------------------------------------------*/ +#endif /* __asm__ */ - /* enum of the possible interrupt sources */ -typedef unsigned int rtems_irq_number; /* int interrupt status/mask register 1 */ #define BSP_EXTFIQ 0 #define BSP_BLINT 1 @@ -67,23 +54,8 @@ typedef unsigned int rtems_irq_number; #define BSP_DAIINT 21 #define BSP_MAX_INT 22 -/*-------------------------------------------------------------------------+ -| Function Prototypes. -+--------------------------------------------------------------------------*/ -/* - * ------------------- RTEMS Single Irq Handler Mngt Routines ---------------- - */ - -/* - * function to initialize the interrupt for a specific BSP - */ -void BSP_rtems_irq_mngt_init(); - - -#endif /* __asm__ */ +#define BSP_INTERRUPT_VECTOR_MIN 0 -#ifdef __cplusplus -} -#endif +#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1) #endif /* __IRQ_H__ */ diff --git a/c/src/lib/libbsp/arm/edb7312/network/network.c b/c/src/lib/libbsp/arm/edb7312/network/network.c index 1ce1cae4ba..1db4d02dd2 100644 --- a/c/src/lib/libbsp/arm/edb7312/network/network.c +++ b/c/src/lib/libbsp/arm/edb7312/network/network.c @@ -1,6 +1,6 @@ #include #include -#include +#include #include #define CS8900_BASE 0x20000300 diff --git a/c/src/lib/libbsp/arm/edb7312/preinstall.am b/c/src/lib/libbsp/arm/edb7312/preinstall.am index f29fede048..59bd50a7f4 100644 --- a/c/src/lib/libbsp/arm/edb7312/preinstall.am +++ b/c/src/lib/libbsp/arm/edb7312/preinstall.am @@ -73,7 +73,15 @@ $(PROJECT_INCLUDE)/uart.h: ../../arm/shared/comm/uart.h $(PROJECT_INCLUDE)/$(dir $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/uart.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/uart.h -$(PROJECT_INCLUDE)/irq.h: irq/irq.h $(PROJECT_INCLUDE)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/irq.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/irq.h +$(PROJECT_INCLUDE)/bsp/irq-generic.h: ../../shared/include/irq-generic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-generic.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-generic.h + +$(PROJECT_INCLUDE)/bsp/irq-info.h: ../../shared/include/irq-info.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-info.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-info.h + +$(PROJECT_INCLUDE)/bsp/irq.h: irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h diff --git a/c/src/lib/libbsp/arm/edb7312/startup/bspstart.c b/c/src/lib/libbsp/arm/edb7312/startup/bspstart.c index 9189162d24..cfccaf3589 100644 --- a/c/src/lib/libbsp/arm/edb7312/startup/bspstart.c +++ b/c/src/lib/libbsp/arm/edb7312/startup/bspstart.c @@ -11,13 +11,13 @@ */ #include +#include #include #include /* * Function prototypes */ -extern void rtems_irq_mngt_init(void); extern void rtems_exception_init_mngt(void); /* @@ -45,7 +45,9 @@ void bsp_start_default( void ) /* * Init rtems interrupt management */ - rtems_irq_mngt_init(); + if (bsp_interrupt_initialize() != RTEMS_SUCCESSFUL) { + _CPU_Fatal_halt(0xe); + } } /* bsp_start */ /* -- cgit v1.2.3