Changeset 6e6886d5 in rtems


Ignore:
Timestamp:
Apr 30, 2010, 2:48:52 PM (9 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.10, 4.11, master
Children:
536f2d2b
Parents:
14cd67c
Message:

2010-04-30 Sebastian Huber <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.
Location:
c/src/lib/libbsp/arm/edb7312
Files:
1 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/arm/edb7312/ChangeLog

    r14cd67c r6e6886d5  
     12010-04-30      Sebastian Huber <sebastian.huber@embedded-brains.de>
     2
     3        * irq/bsp_irq_init.c: Removed file.
     4        * Makefile.am, preinstall.am: Reflect change above.  Added generic
     5        interrupt support modules.
     6        * include/bsp.h: Define BSP_FEATURE_IRQ_EXTENSION.
     7        * startup/bspstart.c, irq/bsp_irq_asm.S, clock/clockdrv.c,
     8        network/network.c: Interrupt support changes.
     9
    1102010-04-30      Sebastian Huber <sebastian.huber@embedded-brains.de>
    211
  • c/src/lib/libbsp/arm/edb7312/Makefile.am

    r14cd67c r6e6886d5  
    1313include_HEADERS = include/bsp.h
    1414include_HEADERS += ../../shared/include/tm27.h
     15
     16include_bsp_HEADERS =
    1517
    1618nodist_include_HEADERS = include/bspopts.h
     
    4850libbsp_a_SOURCES += ../shared/abort/abort.c
    4951
    50 include_HEADERS += irq/irq.h
    5152# irq
    52 libbsp_a_SOURCES += irq/irq.c irq/bsp_irq_init.c \
    53     ../../arm/shared/irq/irq_init.c irq/bsp_irq_asm.S \
    54     irq/irq.h
     53include_bsp_HEADERS += ../../shared/include/irq-generic.h \
     54        ../../shared/include/irq-info.h \
     55        irq/irq.h
     56libbsp_a_SOURCES += ../../shared/src/irq-generic.c \
     57        ../../shared/src/irq-legacy.c \
     58        ../../shared/src/irq-info.c \
     59        ../../shared/src/irq-shell.c \
     60        ../../shared/src/irq-server.c \
     61        irq/irq.c \
     62        irq/bsp_irq_asm.S
    5563
    5664if HAS_NETWORKING
  • c/src/lib/libbsp/arm/edb7312/clock/clockdrv.c

    r14cd67c r6e6886d5  
    1515#include <ep7312.h>
    1616#include <bsp.h>
    17 #include <irq.h>
     17#include <bsp/irq.h>
    1818
    1919#if ON_SKYEYE==1
  • c/src/lib/libbsp/arm/edb7312/include/bsp.h

    r14cd67c r6e6886d5  
    2626#include <rtems/clockdrv.h>
    2727
     28#define BSP_FEATURE_IRQ_EXTENSION
     29
    2830/*
    2931 *  Define the interrupt mechanism for Time Test 27
  • c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S

    r14cd67c r6e6886d5  
    1717#include "irq.h"
    1818
    19 #define VECTOR_TABLE 0x40
     19        .extern edb7312_interrupt_dispatch
    2020
    2121/*
     
    4646  tst   r6, #0x0001
    4747  beq   check_extfiq
    48   ldr   r0, =(VECTOR_TABLE + (4 * 21)) /* load the vector number */
     48  mov   r0, #BSP_DAIINT
    4949  b     get_handler
    5050
     
    5858  tst   r6, #0x0001
    5959  beq   check_bl
    60   ldr   r0, =(VECTOR_TABLE + (4 * 0)) /* load the vector number */
     60  mov   r0, #BSP_EXTFIQ
    6161  b     get_handler
    6262
     
    7070  tst   r6, #0x0002
    7171  beq   check_we
    72   ldr   r0, =(VECTOR_TABLE + (4 * 1)) /* load the vector number */
     72  mov   r0, #BSP_BLINT
    7373  b     get_handler
    7474
     
    8282  tst   r6, #0x0004
    8383  beq   check_mc
    84   ldr   r0, =(VECTOR_TABLE + (4 * 2)) /* load the vector number */
     84  mov   r0, #BSP_WEINT
    8585  b     get_handler
    8686
     
    9494  tst   r6, #0x0008
    9595  beq   check_cs
    96   ldr   r0, =(VECTOR_TABLE + (4 * 3)) /* load the vector number */
     96  mov   r0, #BSP_MCINT
    9797  b     get_handler
    9898
     
    106106  tst   r6, #0x0010
    107107  beq   check_e1
    108   ldr   r0, =(VECTOR_TABLE + (4 * 4)) /* load the vector number */
     108  mov   r0, #BSP_CSINT
    109109  b     get_handler
    110110
     
    118118  tst   r6, #0x0020
    119119  beq   check_e2
    120   ldr   r0, =(VECTOR_TABLE + (4 * 5)) /* load the vector number */
     120  mov   r0, #BSP_EINT1
    121121  b     get_handler
    122122
     
    130130  tst   r6, #0x0040
    131131  beq   check_e3
    132   ldr   r0, =(VECTOR_TABLE + (4 * 6)) /* load the vector number */
     132  mov   r0, #BSP_EINT2
    133133  b     get_handler
    134134
     
    142142  tst   r6, #0x0080
    143143  beq   check_tc1
    144   ldr   r0, =(VECTOR_TABLE + (4 * 7)) /* load the vector number */
     144  mov   r0, #BSP_EINT3
    145145  b     get_handler
    146146
     
    154154  tst   r6, #0x0100
    155155  beq   check_tc2
    156   ldr   r0, =(VECTOR_TABLE + (4 * 8)) /* load the vector number */
     156  mov   r0, #BSP_TC1OI
    157157  b     get_handler
    158158
     
    166166  tst   r6, #0x0200
    167167  beq   check_rtc
    168   ldr   r0, =(VECTOR_TABLE + (4 * 9)) /* load the vector number */
     168  mov   r0, #BSP_TC2OI
    169169  b     get_handler
    170170
     
    178178  tst   r6, #0x0400
    179179  beq   check_tick
    180   ldr   r0, =(VECTOR_TABLE + (4 * 10)) /* load the vector number */
     180  mov   r0, #BSP_RTCMI
    181181  b     get_handler
    182182
     
    190190  tst   r6, #0x0800
    191191  beq   check_utx1
    192   ldr   r0, =(VECTOR_TABLE + (4 * 11)) /* load the vector number */
     192  mov   r0, #BSP_TINT
    193193  b     get_handler
    194194
     
    202202  tst   r6, #0x1000
    203203  beq   check_urx1
    204   ldr   r0, =(VECTOR_TABLE + (4 * 12)) /* load the vector number */
     204  mov   r0, #BSP_UTXINT1
    205205  b     get_handler
    206206
     
    214214  tst   r6, #0x2000
    215215  beq   check_ums
    216   ldr   r0, =(VECTOR_TABLE + (4 * 13)) /* load the vector number */
     216  mov   r0, #BSP_URXINT1
    217217  b     get_handler
    218218
     
    226226  tst   r6, #0x4000
    227227  beq   check_sse
    228   ldr   r0, =(VECTOR_TABLE + (4 * 14)) /* load the vector number */
     228  mov   r0, #BSP_UMSINT
    229229  b     get_handler
    230230
     
    238238  tst   r6, #0x8000
    239239  beq   check_kbd
    240   ldr   r0, =(VECTOR_TABLE + (4 * 15)) /* load the vector number */
     240  mov   r0, #BSP_SSEOTI
    241241  b     get_handler
    242242
     
    250250  tst   r6, #0x0001
    251251  beq   check_ss2rx
    252   ldr   r0, =(VECTOR_TABLE + (4 * 16)) /* load the vector number */
     252  mov   r0, #BSP_KBDINT
    253253  b     get_handler
    254254
     
    262262  tst   r6, #0x0002
    263263  beq   check_ss2tx
    264   ldr   r0, =(VECTOR_TABLE + (4 * 17)) /* load the vector number */
     264  mov   r0, #BSP_SS2RX
    265265  b     get_handler
    266266
     
    274274  tst   r6, #0x0004
    275275  beq   check_utx2
    276   ldr   r0, =(VECTOR_TABLE + (4 * 18)) /* load the vector number */
     276  mov   r0, #BSP_SS2TX
    277277  b     get_handler
    278278
     
    286286  tst   r6, #0x1000
    287287  beq   check_urx2
    288   ldr   r0, =(VECTOR_TABLE + (4 * 19)) /* load the vector number */
     288  mov   r0, #BSP_UTXINT2
    289289  b     get_handler
    290290
     
    298298  tst   r6, #0x2000
    299299  beq   IRQ_NoInterrupt
    300   ldr   r0, =(VECTOR_TABLE + (4 * 20)) /* load the vector number */
     300  mov   r0, #BSP_URXINT2
    301301  b     get_handler
    302302
     
    304304
    305305  ldmia   sp!,{r4, r5, r6}
    306 
    307   ldr   r0, [r0]                /* extract the IT handler @ */
    308306
    309307  /*
     
    317315*/
    318316
    319   stmdb   sp!,{lr}
    320   ldr     lr, =IRQ_return         /* prepare the return from handler  */
    321 
    322   mov     pc, r0                        /* EXECUTE INT HANDLER */
    323 
    324 IRQ_return:
     317  stmdb sp!,{lr}
     318  bl    edb7312_interrupt_dispatch
    325319  ldmia sp!,{lr}
    326320
  • c/src/lib/libbsp/arm/edb7312/irq/irq.c

    r14cd67c r6e6886d5  
    11/*
    22 * Cirrus EP7312 Intererrupt handler
     3 *
     4 * Copyright (c) 2010 embedded brains GmbH.
    35 *
    46 * Copyright (c) 2002 by Jay Monkman <jtm@smoothsmoothie.com>
     
    1416 *  $Id$
    1517*/
     18
    1619#include <bsp.h>
    17 #include <irq.h>
    18 #include <rtems/score/thread.h>
    19 #include <rtems/score/apiext.h>
     20#include <bsp/irq.h>
     21#include <bsp/irq-generic.h>
     22
    2023#include <ep7312.h>
    2124
    22 /*
    23  * This function check that the value given for the irq line
    24  * is valid.
    25  */
    26 
    27 static int isValidInterrupt(int irq)
     25void edb7312_interrupt_dispatch(rtems_vector_number vector)
    2826{
    29   if ( (irq < 0) || (irq > BSP_MAX_INT))
    30     return 0;
    31   return 1;
     27  bsp_interrupt_handler_dispatch(vector);
    3228}
    3329
    34 /*
    35  * -------------------- RTEMS Single Irq Handler Mngt Routines ----------------
    36  */
    37 
    38 int BSP_install_rtems_irq_handler  (const rtems_irq_connect_data* irq)
     30rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
    3931{
    40     rtems_irq_hdl *HdlTable;
    41     rtems_interrupt_level level;
    42 
    43     if (!isValidInterrupt(irq->name)) {
    44       return 0;
     32    if(vector >= BSP_EXTFIQ && vector <= BSP_SSEOTI)
     33    {
     34        /* interrupt managed by INTMR1 and INTSR1 */
     35        *EP7312_INTMR1 |= (1 << vector);
    4536    }
    46     /*
    47      * Check if default handler is actually connected. If not issue an error.
    48      */
    49     HdlTable = (rtems_irq_hdl *) VECTOR_TABLE;
    50     if (*(HdlTable + irq->name) != default_int_handler) {
    51       return 0;
     37    else if(vector >= BSP_KBDINT && vector <= BSP_SS2TX)
     38    {
     39        /* interrupt managed by INTMR2 and INTSR2 */
     40        *EP7312_INTMR2 |= (1 << (vector - 16));
     41    }
     42    else if(vector >= BSP_UTXINT2 && vector <= BSP_URXINT2)
     43    {
     44        /* interrupt managed by INTMR2 and INTSR2 */
     45        *EP7312_INTMR2 |= (1 << (vector - 7));
     46    }
     47    else if(vector == BSP_DAIINT)
     48    {
     49        /* interrupt managed by INTMR3 and INTSR3 */
     50        *EP7312_INTMR3 |= (1 << (vector - 21));
    5251    }
    5352
    54     rtems_interrupt_disable(level);
     53  return RTEMS_SUCCESSFUL;
     54}
    5555
    56     /*
    57      * store the new handler
    58      */
    59     *(HdlTable + irq->name) = irq->hdl;
    60 
    61     /*
    62      * unmask interrupt
    63      */
    64     if(irq->name >= BSP_EXTFIQ && irq->name <= BSP_SSEOTI)
     56rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
     57{
     58    if(vector >= BSP_EXTFIQ && vector <= BSP_SSEOTI)
    6559    {
    6660        /* interrupt managed by INTMR1 and INTSR1 */
    67         *EP7312_INTMR1 |= (1 << irq->name);
     61        *EP7312_INTMR1 &= ~(1 << vector);
    6862    }
    69     else if(irq->name >= BSP_KBDINT && irq->name <= BSP_SS2TX)
     63    else if(vector >= BSP_KBDINT && vector <= BSP_SS2TX)
    7064    {
    7165        /* interrupt managed by INTMR2 and INTSR2 */
    72         *EP7312_INTMR2 |= (1 << (irq->name - 16));
     66        *EP7312_INTMR2 &= ~(1 << (vector - 16));
    7367    }
    74     else if(irq->name >= BSP_UTXINT2 && irq->name <= BSP_URXINT2)
     68    else if(vector >= BSP_UTXINT2 && vector <= BSP_URXINT2)
    7569    {
    7670        /* interrupt managed by INTMR2 and INTSR2 */
    77         *EP7312_INTMR2 |= (1 << (irq->name - 7));
     71        *EP7312_INTMR2 &= ~(1 << (vector - 7));
    7872    }
    79     else if(irq->name == BSP_DAIINT)
     73    else if(vector == BSP_DAIINT)
    8074    {
    8175        /* interrupt managed by INTMR3 and INTSR3 */
    82         *EP7312_INTMR3 |= (1 << (irq->name - 21));
     76        *EP7312_INTMR3 &= ~(1 << (vector - 21));
    8377    }
    8478
    85     /*
    86      * Enable interrupt on device
    87      */
    88     if(irq->on)
    89     {
    90         irq->on(irq);
    91     }
    92 
    93     rtems_interrupt_enable(level);
    94 
    95     return 1;
     79  return RTEMS_SUCCESSFUL;
    9680}
    9781
    98 int BSP_remove_rtems_irq_handler  (const rtems_irq_connect_data* irq)
     82rtems_status_code bsp_interrupt_facility_initialize(void)
    9983{
    100     rtems_irq_hdl *HdlTable;
    101     rtems_interrupt_level level;
     84  uint32_t int_stat = 0;
    10285
    103     if (!isValidInterrupt(irq->name)) {
    104       return 0;
    105     }
    106     /*
    107      * Check if the handler is actually connected. If not issue an error.
    108      */
    109     HdlTable = (rtems_irq_hdl *) VECTOR_TABLE;
    110     if (*(HdlTable + irq->name) != irq->hdl) {
    111       return 0;
    112     }
    113     rtems_interrupt_disable(level);
     86  /* mask all interrupts */
     87  *EP7312_INTMR1 = 0x0;
     88  *EP7312_INTMR2 = 0x0;
     89  *EP7312_INTMR3 = 0x0;
     90 
     91  /* clear all pending interrupt status' */
     92  int_stat = *EP7312_INTSR1;
     93  if(int_stat & EP7312_INTR1_EXTFIQ)
     94  {
     95  }
     96  if(int_stat & EP7312_INTR1_BLINT)
     97  {
     98      *EP7312_BLEOI = 0xFFFFFFFF;
     99  }
     100  if(int_stat & EP7312_INTR1_WEINT)
     101  {
     102      *EP7312_TEOI = 0xFFFFFFFF;
     103  }
     104  if(int_stat & EP7312_INTR1_MCINT)
     105  {
     106  }
     107  if(int_stat & EP7312_INTR1_CSINT)
     108  {
     109      *EP7312_COEOI = 0xFFFFFFFF;
     110  }
     111  if(int_stat & EP7312_INTR1_EINT1)
     112  {
     113  }
     114  if(int_stat & EP7312_INTR1_EINT2)
     115  {
     116  }
     117  if(int_stat & EP7312_INTR1_EINT3)
     118  {
     119  }
     120  if(int_stat & EP7312_INTR1_TC1OI)
     121  {
     122      *EP7312_TC1EOI = 0xFFFFFFFF;
     123  }
     124  if(int_stat & EP7312_INTR1_TC2OI)
     125  {
     126      *EP7312_TC2EOI = 0xFFFFFFFF;
     127  }
     128  if(int_stat & EP7312_INTR1_RTCMI)
     129  {
     130      *EP7312_RTCEOI = 0xFFFFFFFF;
     131  }
     132  if(int_stat & EP7312_INTR1_TINT)
     133  {
     134      *EP7312_TEOI = 0xFFFFFFFF;
     135  }
     136  if(int_stat & EP7312_INTR1_URXINT1)
     137  {
     138  }
     139  if(int_stat & EP7312_INTR1_UTXINT1)
     140  {
     141  }
     142  if(int_stat & EP7312_INTR1_UMSINT)
     143  {
     144      *EP7312_UMSEOI = 0xFFFFFFFF;
     145  }
     146  if(int_stat & EP7312_INTR1_SSEOTI)
     147  {
     148      *EP7312_SYNCIO;
     149  }
     150  int_stat = *EP7312_INTSR1;
     151 
     152  int_stat = *EP7312_INTSR2;
     153  if(int_stat & EP7312_INTR2_KBDINT)
     154  {
     155      *EP7312_KBDEOI = 0xFFFFFFFF;
     156  }
     157  if(int_stat & EP7312_INTR2_SS2RX)
     158  {
     159  }
     160  if(int_stat & EP7312_INTR2_SS2TX)
     161  {
     162  }
     163  if(int_stat & EP7312_INTR2_URXINT2)
     164  {
     165  }
     166  if(int_stat & EP7312_INTR2_UTXINT2)
     167  {
     168  }
     169  int_stat = *EP7312_INTSR2;
     170 
     171  int_stat = *EP7312_INTSR3;
     172  if(int_stat & EP7312_INTR2_DAIINT)
     173  {
     174  }
     175  int_stat = *EP7312_INTSR3;
    114176
    115     /*
    116      * mask interrupt
    117      */
    118     if(irq->name >= BSP_EXTFIQ && irq->name <= BSP_SSEOTI)
    119     {
    120         /* interrupt managed by INTMR1 and INTSR1 */
    121         *EP7312_INTMR1 &= ~(1 << irq->name);
    122     }
    123     else if(irq->name >= BSP_KBDINT && irq->name <= BSP_SS2TX)
    124     {
    125         /* interrupt managed by INTMR2 and INTSR2 */
    126         *EP7312_INTMR2 &= ~(1 << (irq->name - 16));
    127     }
    128     else if(irq->name >= BSP_UTXINT2 && irq->name <= BSP_URXINT2)
    129     {
    130         /* interrupt managed by INTMR2 and INTSR2 */
    131         *EP7312_INTMR2 &= ~(1 << (irq->name - 7));
    132     }
    133     else if(irq->name == BSP_DAIINT)
    134     {
    135         /* interrupt managed by INTMR3 and INTSR3 */
    136         *EP7312_INTMR3 &= ~(1 << (irq->name - 21));
    137     }
     177  _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
    138178
    139     /*
    140      * Disable interrupt on device
    141      */
    142     if(irq->off)
    143         irq->off(irq);
     179  return RTEMS_SUCCESSFUL;
     180}
    144181
    145     /*
    146      * restore the default irq value
    147      */
    148     *(HdlTable + irq->name) = default_int_handler;
    149 
    150     rtems_interrupt_enable(level);
    151 
    152     return 1;
     182void bsp_interrupt_handler_default(rtems_vector_number vector)
     183{
     184  printk("spurious interrupt: %u\n", vector);
    153185}
  • c/src/lib/libbsp/arm/edb7312/irq/irq.h

    r14cd67c r6e6886d5  
    11/*
    22 * Cirrus EP7312 Intererrupt handler
     3 *
     4 * Copyright (c) 2010 embedded brains GmbH.
    35 *
    46 * Copyright (c) 2002 by Jay Monkman <jtm@smoothsmoothie.com>
     
    1820#define __IRQ_H__
    1921
    20 #ifdef __cplusplus
    21 extern "C" {
    22 #endif
    23 
    24   /* define that can be useful (the values are just examples) */
    25 #define VECTOR_TABLE     0x40
    26 
    2722#ifndef __asm__
    2823
    29 /*
    30  * Include some preprocessor value also used by assember code
    31  */
     24#include <rtems.h>
     25#include <rtems/irq.h>
     26#include <rtems/irq-extension.h>
    3227
    33 #include <rtems/irq.h>
    34 #include <rtems.h>
     28#endif /* __asm__ */
    3529
    36 extern void default_int_handler(rtems_irq_hdl_param unused);
    37 /*-------------------------------------------------------------------------+
    38 | Constants
    39 +--------------------------------------------------------------------------*/
    40 
    41   /* enum of the possible interrupt sources */
    42 typedef unsigned int rtems_irq_number;
    4330  /* int interrupt status/mask register 1 */
    4431#define BSP_EXTFIQ     0
     
    6855#define BSP_MAX_INT   22
    6956
    70 /*-------------------------------------------------------------------------+
    71 | Function Prototypes.
    72 +--------------------------------------------------------------------------*/
    73 /*
    74  * ------------------- RTEMS Single Irq Handler Mngt Routines ----------------
    75  */
     57#define BSP_INTERRUPT_VECTOR_MIN 0
    7658
    77 /*
    78  * function to initialize the interrupt for a specific BSP
    79  */
    80 void BSP_rtems_irq_mngt_init();
    81 
    82 
    83 #endif /* __asm__ */
    84 
    85 #ifdef __cplusplus
    86 }
    87 #endif
     59#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
    8860
    8961#endif /* __IRQ_H__ */
  • c/src/lib/libbsp/arm/edb7312/network/network.c

    r14cd67c r6e6886d5  
    11#include <rtems.h>
    22#include <sys/mbuf.h>
    3 #include <irq.h>
     3#include <bsp/irq.h>
    44#include <libchip/cs8900.h>
    55
  • c/src/lib/libbsp/arm/edb7312/preinstall.am

    r14cd67c r6e6886d5  
    7474PREINSTALL_FILES += $(PROJECT_INCLUDE)/uart.h
    7575
    76 $(PROJECT_INCLUDE)/irq.h: irq/irq.h $(PROJECT_INCLUDE)/$(dirstamp)
    77         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/irq.h
    78 PREINSTALL_FILES += $(PROJECT_INCLUDE)/irq.h
     76$(PROJECT_INCLUDE)/bsp/irq-generic.h: ../../shared/include/irq-generic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     77        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-generic.h
     78PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-generic.h
    7979
     80$(PROJECT_INCLUDE)/bsp/irq-info.h: ../../shared/include/irq-info.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     81        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-info.h
     82PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-info.h
     83
     84$(PROJECT_INCLUDE)/bsp/irq.h: irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     85        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
     86PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
     87
  • c/src/lib/libbsp/arm/edb7312/startup/bspstart.c

    r14cd67c r6e6886d5  
    1212
    1313#include <bsp.h>
     14#include <bsp/irq-generic.h>
    1415#include <ep7312.h>
    1516#include <uart.h>
     
    1819 * Function prototypes
    1920 */
    20 extern void rtems_irq_mngt_init(void);
    2121extern void rtems_exception_init_mngt(void);
    2222
     
    4646   * Init rtems interrupt management
    4747   */
    48   rtems_irq_mngt_init();
     48  if (bsp_interrupt_initialize() != RTEMS_SUCCESSFUL) {
     49    _CPU_Fatal_halt(0xe);
     50  }
    4951} /* bsp_start */
    5052
Note: See TracChangeset for help on using the changeset viewer.