summaryrefslogtreecommitdiffstats
path: root/bsps/m68k/mvme147/start/bspstart.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/m68k/mvme147/start/bspstart.c')
-rw-r--r--bsps/m68k/mvme147/start/bspstart.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/bsps/m68k/mvme147/start/bspstart.c b/bsps/m68k/mvme147/start/bspstart.c
new file mode 100644
index 0000000000..cb5f84a075
--- /dev/null
+++ b/bsps/m68k/mvme147/start/bspstart.c
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ *
+ * MVME147 port for TNI - Telecom Bretagne
+ * by Dominique LE CAMPION (Dominique.LECAMPION@enst-bretagne.fr)
+ * May 1996
+ */
+
+#include <bsp.h>
+#include <bsp/bootcard.h>
+
+void bsp_start( void )
+{
+ rtems_isr_entry *monitors_vector_table;
+ int index;
+
+ monitors_vector_table = (rtems_isr_entry *)0; /* 135Bug Vectors are at 0 */
+ 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 );
+
+ pcc->int_base_vector = PCC_BASE_VECTOR; /* Set the PCC int vectors base */
+
+ (*(uint8_t*)0xfffe2001) = 0x08; /* make VME access round-robin */
+
+ rtems_cache_enable_instruction();
+ rtems_cache_enable_data();
+}