summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorJennifer Averett <jennifer.averett@oarcorp.com>2012-03-30 08:38:14 -0500
committerJennifer Averett <jennifer.averett@oarcorp.com>2012-03-30 08:38:14 -0500
commit97f82fcdc09b91554c5ff2030e7baff380a0a171 (patch)
tree8539b85e550d1818c2f606c06f3408248694521b /c/src/lib/libbsp
parentNIOS2: Add MPU support functions (diff)
downloadrtems-97f82fcdc09b91554c5ff2030e7baff380a0a171.tar.bz2
Resolve link problems with psim irq-server
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/powerpc/psim/Makefile.am7
-rw-r--r--c/src/lib/libbsp/powerpc/psim/irq/irq_init.c31
-rw-r--r--c/src/lib/libbsp/powerpc/psim/preinstall.am4
-rw-r--r--c/src/lib/libbsp/powerpc/psim/startup/linkcmds3
4 files changed, 43 insertions, 2 deletions
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