diff options
author | Jennifer Averett <jennifer.averett@oarcorp.com> | 2012-03-30 08:41:15 -0500 |
---|---|---|
committer | Jennifer Averett <jennifer.averett@oarcorp.com> | 2012-03-30 08:41:15 -0500 |
commit | 0b095f767353aa0e77c31e9791ffbe0b843337bd (patch) | |
tree | 392daa368770a81eba273a77998ac1affc84fc92 /c/src/lib/libbsp/powerpc/psim | |
parent | Address Conflicts: (diff) | |
parent | Resolve link problems with psim irq-server (diff) | |
download | rtems-0b095f767353aa0e77c31e9791ffbe0b843337bd.tar.bz2 |
Resolve link problems with psim irq-server
Add IRQ support components needed by new BSD code.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/psim')
-rw-r--r-- | c/src/lib/libbsp/powerpc/psim/Makefile.am | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/psim/irq/irq_init.c | 31 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/psim/preinstall.am | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/psim/startup/linkcmds | 3 |
4 files changed, 41 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/psim/Makefile.am b/c/src/lib/libbsp/powerpc/psim/Makefile.am index c33eecbe6a..c02edb90a8 100644 --- a/c/src/lib/libbsp/powerpc/psim/Makefile.am +++ b/c/src/lib/libbsp/powerpc/psim/Makefile.am @@ -50,8 +50,9 @@ libbsp_a_SOURCES += console/console-io.c console/consupp.S # irq include_bsp_HEADERS = irq/irq.h ../shared/openpic/openpic.h \ ../../shared/include/irq-generic.h -libbsp_a_SOURCES += irq/irq_init.c ../shared/irq/openpic_i8259_irq.c ../shared/openpic/openpic.c \ - ../../shared/src/irq-server.c +libbsp_a_SOURCES += irq/irq_init.c ../shared/irq/openpic_i8259_irq.c \ + ../shared/openpic/openpic.c ../../shared/src/irq-server.c \ + ../../shared/src/irq-generic.c ../../shared/src/irq-default-handler.c EXTRA_DIST = vectors/README # vectors diff --git a/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c b/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c index 91f18f1dfe..9068a7248c 100644 --- a/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c +++ b/c/src/lib/libbsp/powerpc/psim/irq/irq_init.c @@ -89,3 +89,34 @@ void BSP_rtems_irq_mng_init(unsigned cpuId) printk("RTEMS IRQ management is now operationnal\n"); #endif } + +int psim_exception_handler( BSP_Exception_frame *frame, unsigned exception_number) +{ + BSP_panic("Unexpected interrupt occured"); + return 0; +} + +/* + * functions to enable/disable a source at the ipic + */ +rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number irqnum) +{ + /* FIXME: do something */ + return RTEMS_SUCCESSFUL; +} + +rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqnum) +{ + /* FIXME: do something */ + return RTEMS_SUCCESSFUL; +} + +rtems_status_code bsp_interrupt_facility_initialize(void) +{ + /* Install exception handler */ + if (ppc_exc_set_handler( ASM_EXT_VECTOR, psim_exception_handler)) { + return RTEMS_IO_ERROR; + } + + return RTEMS_SUCCESSFUL; +} diff --git a/c/src/lib/libbsp/powerpc/psim/preinstall.am b/c/src/lib/libbsp/powerpc/psim/preinstall.am index 92de148f02..c046ab6463 100644 --- a/c/src/lib/libbsp/powerpc/psim/preinstall.am +++ b/c/src/lib/libbsp/powerpc/psim/preinstall.am @@ -81,6 +81,10 @@ $(PROJECT_INCLUDE)/bsp/openpic.h: ../shared/openpic/openpic.h $(PROJECT_INCLUDE) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/openpic.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/openpic.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_supp.h: ../../../libcpu/@RTEMS_CPU@/@exceptions@/bspsupport/irq_supp.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq_supp.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq_supp.h diff --git a/c/src/lib/libbsp/powerpc/psim/startup/linkcmds b/c/src/lib/libbsp/powerpc/psim/startup/linkcmds index 9676b08c97..f313375440 100644 --- a/c/src/lib/libbsp/powerpc/psim/startup/linkcmds +++ b/c/src/lib/libbsp/powerpc/psim/startup/linkcmds @@ -87,6 +87,9 @@ SECTIONS _bsd__start_set_sysctl_set = .; *(_bsd_set_sysctl_set); _bsd__stop_set_sysctl_set = .; + _bsd__start_set_sysinit_set = .; + *(_bsd_set_sysinit_*); + _bsd__stop_set_sysinit_set = .; bsp_section_rodata_end = .; } > RAM |