From 97f82fcdc09b91554c5ff2030e7baff380a0a171 Mon Sep 17 00:00:00 2001 From: Jennifer Averett Date: Fri, 30 Mar 2012 08:38:14 -0500 Subject: Resolve link problems with psim irq-server --- c/src/lib/libbsp/powerpc/psim/Makefile.am | 7 ++++-- c/src/lib/libbsp/powerpc/psim/irq/irq_init.c | 31 ++++++++++++++++++++++++++ c/src/lib/libbsp/powerpc/psim/preinstall.am | 4 ++++ c/src/lib/libbsp/powerpc/psim/startup/linkcmds | 3 +++ 4 files changed, 43 insertions(+), 2 deletions(-) (limited to 'c/src/lib/libbsp/powerpc') diff --git a/c/src/lib/libbsp/powerpc/psim/Makefile.am b/c/src/lib/libbsp/powerpc/psim/Makefile.am index 28c465cd57..c02edb90a8 100644 --- a/c/src/lib/libbsp/powerpc/psim/Makefile.am +++ b/c/src/lib/libbsp/powerpc/psim/Makefile.am @@ -48,8 +48,11 @@ libbsp_a_SOURCES += ../../shared/console-polled.c libbsp_a_SOURCES += console/console-io.c console/consupp.S # irq -include_bsp_HEADERS = irq/irq.h ../shared/openpic/openpic.h -libbsp_a_SOURCES += irq/irq_init.c ../shared/irq/openpic_i8259_irq.c ../shared/openpic/openpic.c +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 \ + ../../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 -- cgit v1.2.3