diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-09-30 23:13:54 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-09-30 23:13:54 +0000 |
commit | 3d505747dc7c999386c5fc307ee32c7448549437 (patch) | |
tree | 992f3e28b29cd9ecb3e203c2037fc6c06627e11a /c/src/lib/libbsp/powerpc/score603e/irq | |
parent | 2008-09-30 Ralf Corsepius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-3d505747dc7c999386c5fc307ee32c7448549437.tar.bz2 |
2008-09-30 Jennifer Averett <jennifer.averett@oarcorp.com>
* Makefile.am, preinstall.am, PCI_bus/universe.c, console/console.c,
include/bsp.h, irq/FPGA.c, irq/irq.c, startup/Hwr_init.c,
startup/bspstart.c, startup/vmeintr.c: Modifications required to run
on hardware. Some cleanup.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/score603e/irq')
-rw-r--r-- | c/src/lib/libbsp/powerpc/score603e/irq/FPGA.c | 21 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/score603e/irq/irq.c | 47 |
2 files changed, 49 insertions, 19 deletions
diff --git a/c/src/lib/libbsp/powerpc/score603e/irq/FPGA.c b/c/src/lib/libbsp/powerpc/score603e/irq/FPGA.c index 2907a1c308..f7a5a7d4df 100644 --- a/c/src/lib/libbsp/powerpc/score603e/irq/FPGA.c +++ b/c/src/lib/libbsp/powerpc/score603e/irq/FPGA.c @@ -22,21 +22,10 @@ */ void initialize_PCI_bridge (void) { -#if (!SCORE603E_USE_DINK) - uint16_t mask, shift, data; - - shift = SCORE603E_85C30_0_IRQ - Score_IRQ_First; - mask = 1 << shift; - - shift = SCORE603E_85C30_1_IRQ - Score_IRQ_First; - mask = mask & (1 << shift); - - data = *SCORE603E_FPGA_MASK_DATA; - data = ~mask; - - *SCORE603E_FPGA_MASK_DATA = data; -#endif - + /* Note: Accept DINKs setup of the PCI Bridge and don't + * change anything. + */ + printk("initialize_PCI_bridge: \n"); } void set_irq_mask( @@ -93,9 +82,7 @@ void init_irq_data_register(void) uint32_t index; uint32_t i; -#if (SCORE603E_USE_DINK) set_irq_mask( 0xffff ); -#endif /* * Clear any existing interupts from the vector data register. diff --git a/c/src/lib/libbsp/powerpc/score603e/irq/irq.c b/c/src/lib/libbsp/powerpc/score603e/irq/irq.c index 84b59ab046..31444af39e 100644 --- a/c/src/lib/libbsp/powerpc/score603e/irq/irq.c +++ b/c/src/lib/libbsp/powerpc/score603e/irq/irq.c @@ -140,6 +140,27 @@ printk(" BSP_install_rtems_shared_irq_handler %d\n", irq->name ); } /* + * This function disables a given XXX interrupt + */ +rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqLine) +{ + /* XXX FIX ME!!!! */ + + printk("bsp_interrupt_vector_disable: 0x%x\n", irqLine ); + return RTEMS_SUCCESSFUL; +} + +rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number irqLine) +{ + /* XXX FIX ME!!!! */ + printk("bsp_interrupt_vector_enable: 0x%x\n", irqLine ); + + return RTEMS_SUCCESSFUL; +} + + + +/* * ------------------------ RTEMS Single Irq Handler Mngt Routines ---------------- */ @@ -178,18 +199,23 @@ printk(" BSP_install_rtems_irq_handler %d\n", irq->name ); /* * Enable interrupt */ + printk("is_pci_irq = TRUE - FIX THIS!\n"); } if (is_processor_irq(irq->name)) { /* * Enable exception at processor level */ + printk("is_processor_irq = TRUE : Fix This\n"); } + /* * Enable interrupt on device */ - if (irq->on) + if (irq->on) { + printk("Call 0x%x\n", irq->on ); irq->on(irq); + } rtems_interrupt_enable(level); @@ -415,7 +441,6 @@ int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) register unsigned msr; register unsigned new_msr; -printk(" C_dispatch_irq_handler %d\n", excNum); if (excNum == ASM_DEC_VECTOR) { _CPU_MSR_GET(msr); new_msr = msr | MSR_EE; @@ -468,3 +493,21 @@ printk(" _ThreadProcessSignalsFromIrq \n"); * This will include DEBUG session requested from keyboard... */ } + +rtems_status_code bsp_interrupt_facility_initialize( void) +{ + /* Install exception handler */ + if (ppc_exc_set_handler( ASM_EXT_VECTOR, C_dispatch_irq_handler)) { + return RTEMS_IO_ERROR; + } + if (ppc_exc_set_handler( ASM_DEC_VECTOR, C_dispatch_irq_handler)) { + return RTEMS_IO_ERROR; + } + if (ppc_exc_set_handler( ASM_E300_SYSMGMT_VECTOR, C_dispatch_irq_handler)) { + return RTEMS_IO_ERROR; + } + + return RTEMS_SUCCESSFUL; +} + + |