summaryrefslogtreecommitdiffstats
path: root/bsps/m68k/mvme162/start/bspstart.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/m68k/mvme162/start/bspstart.c')
-rw-r--r--bsps/m68k/mvme162/start/bspstart.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/bsps/m68k/mvme162/start/bspstart.c b/bsps/m68k/mvme162/start/bspstart.c
new file mode 100644
index 0000000000..29e56e35ea
--- /dev/null
+++ b/bsps/m68k/mvme162/start/bspstart.c
@@ -0,0 +1,58 @@
+/*
+ * This routine does the bulk of the system initialization.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-1999.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ *
+ * Modifications of respective RTEMS file: COPYRIGHT (c) 1994.
+ * EISCAT Scientific Association. M.Savitski
+ *
+ * This material is a part of the MVME162 Board Support Package
+ * for the RTEMS executive. Its licensing policies are those of the
+ * RTEMS above.
+ */
+
+#include <bsp.h>
+#include <bsp/bootcard.h>
+#include <page_table.h>
+
+/*
+ * bsp_start
+ *
+ * This routine does the bulk of the system initialization.
+ */
+void bsp_start( void )
+{
+ rtems_isr_entry *monitors_vector_table;
+ int index;
+
+ monitors_vector_table = (rtems_isr_entry *)MOT_162BUG_VEC_ADDRESS;
+ m68k_set_vbr( monitors_vector_table );
+
+ for ( index=2 ; index<=255 ; index++ )
+ M68Kvec[ index ] = monitors_vector_table[ 32 ];
+
+ M68Kvec[ 2 ] = monitors_vector_table[ 2 ]; /* bus error vector */
+ M68Kvec[ 4 ] = monitors_vector_table[ 4 ]; /* breakpoints vector */
+ M68Kvec[ 9 ] = monitors_vector_table[ 9 ]; /* trace vector */
+ M68Kvec[ 47 ] = monitors_vector_table[ 47 ]; /* system call vector */
+
+ m68k_set_vbr( &M68Kvec );
+
+ /*
+ * You may wish to make the VME arbitration round-robin here, currently
+ * we leave it as it is.
+ */
+
+ /* set the Interrupt Base Vectors */
+
+ lcsr->vector_base = (VBR0 << 28) | (VBR1 << 24);
+
+ page_table_init();
+}