summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc
diff options
context:
space:
mode:
authorJennifer Averett <jennifer.averett@oarcorp.com>2012-03-30 08:41:15 -0500
committerJennifer Averett <jennifer.averett@oarcorp.com>2012-03-30 08:41:15 -0500
commit0b095f767353aa0e77c31e9791ffbe0b843337bd (patch)
tree392daa368770a81eba273a77998ac1affc84fc92 /c/src/lib/libbsp/powerpc
parentAddress Conflicts: (diff)
parentResolve link problems with psim irq-server (diff)
downloadrtems-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')
-rw-r--r--c/src/lib/libbsp/powerpc/psim/Makefile.am5
-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, 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