Ignore:
Timestamp:
Jul 22, 2008, 5:52:05 AM (12 years ago)
Author:
Till Straumann <strauman@…>
Branches:
4.10, 4.11, 4.9, master
Children:
479f2555
Parents:
336495b9
Message:

2008-07-21 Till Straumann <strauman@…>

  • Makefile.am, preinstall.am, irq/irq_init.c: Use low-level exception handling support from new-exceptions/bspsupport.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/powerpc/virtex/irq/irq_init.c

    r336495b9 raee685a3  
    9797   */
    9898  switch(excNum) {
    99 #if 0
    100   case ASM_DEC_VECTOR:
    101     _CPU_MSR_GET(msr);
    102     new_msr = msr | MSR_EE;
    103     _CPU_MSR_SET(new_msr);
    104    
    105     BSP_rtems_irq_tbl[BSP_DECREMENTER].hdl
    106       (BSP_rtems_irq_tbl[BSP_DECREMENTER].handle);
    107    
    108     _CPU_MSR_SET(msr);
    109    
    110     break;
    111 #endif
    11299  case ASM_EXT_VECTOR:
    113100    BSP_irq_handle_at_opbintc();
     
    125112}
    126113 
    127 void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx)
    128 {
    129   /*
    130    * Process pending signals that have not already been
    131    * processed by _Thread_Displatch. This happens quite
    132    * unfrequently : the ISR must have posted an action
    133    * to the current running thread.
    134    */
    135   if ( _Thread_Do_post_task_switch_extension ||
    136        _Thread_Executing->do_post_task_switch_extension ) {
    137     _Thread_Executing->do_post_task_switch_extension = FALSE;
    138     _API_extensions_Run_postswitch();
    139   }
    140 }
    141 
    142114/***********************************************************
    143115 * functions to set/get/remove interrupt handlers
     
    315287  return 1;
    316288}
    317 /**********************************************
    318  * list of exception vectors to tap for interrupt handlers
    319  */
    320 static rtems_raw_except_connect_data BSP_vec_desc[] = {
    321 #if 0 /* ppc405 has no decrementer */
    322   {ASM_DEC_VECTOR,
    323    {ASM_DEC_VECTOR,
    324     decrementer_exception_vector_prolog_code,
    325     (size_t)decrementer_exception_vector_prolog_code_size
    326    },
    327    exception_nop_enable,
    328    exception_nop_enable,
    329    exception_always_enabled
    330   },
    331 #endif
    332   {ASM_EXT_VECTOR,
    333    {ASM_EXT_VECTOR,
    334     external_exception_vector_prolog_code,
    335     (size_t)&external_exception_vector_prolog_code_size
    336    },
    337    exception_nop_enable,
    338    exception_nop_enable,
    339    exception_always_enabled
    340   },
    341   {ASM_BOOKE_DEC_VECTOR,
    342    {ASM_BOOKE_DEC_VECTOR,
    343     pit_exception_vector_prolog_code,
    344     (size_t)&pit_exception_vector_prolog_code_size
    345    },
    346    exception_nop_enable,
    347    exception_nop_enable,
    348    exception_always_enabled
    349   }
    350 #if 0 /* Critical interrupts not yet supported */
    351   ,{ASM_BOOKE_CRIT_VECTOR,
    352    {ASM_BOOKE_CRIT_VECTOR,
    353     critical_exception_vector_prolog_code,
    354     critical_exception_vector_prolog_code_size
    355    }
    356    BSP_irq_nop_func,
    357    BSP_irq_nop_func,
    358    BSP_irq_true_func
    359   }
    360 #endif
    361 };
    362289
    363290/*
     
    390317{
    391318  int i;
     319
    392320  /*
    393321   * connect all exception vectors needed
    394322   */
    395   for (i = 0;
    396        i < (sizeof(BSP_vec_desc) /
    397             sizeof(BSP_vec_desc[0]));
    398        i++) {
    399     if (!ppc_set_exception (&BSP_vec_desc[i])) {
    400       BSP_panic("Unable to initialize RTEMS raw exception\n");
    401     }
    402   }
     323 ppc_exc_set_handler(ASM_EXT_VECTOR, C_dispatch_irq_handler);
     324 ppc_exc_set_handler(ASM_BOOKE_DEC_VECTOR, C_dispatch_irq_handler);
     325
    403326  /*
    404327   * setup interrupt handlers table
Note: See TracChangeset for help on using the changeset viewer.