summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/score603e/vectors
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-02-19 00:22:33 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-02-19 00:22:33 +0000
commit9c448e1db38c6dd64c885ddfb3fe28de33cd037b (patch)
tree9d5eb1ec6170db686a021c387c1dce8ab7ad0804 /c/src/lib/libbsp/powerpc/score603e/vectors
parentUpdated to reflect addition of new BSPs. (diff)
downloadrtems-9c448e1db38c6dd64c885ddfb3fe28de33cd037b.tar.bz2
BSP for Vista Score603e added.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/score603e/vectors')
-rw-r--r--c/src/lib/libbsp/powerpc/score603e/vectors/Makefile.in61
-rw-r--r--c/src/lib/libbsp/powerpc/score603e/vectors/vectors.S177
2 files changed, 238 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/score603e/vectors/Makefile.in b/c/src/lib/libbsp/powerpc/score603e/vectors/Makefile.in
new file mode 100644
index 0000000000..b65178e44f
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/score603e/vectors/Makefile.in
@@ -0,0 +1,61 @@
+#
+# $Id$
+#
+
+@SET_MAKE@
+srcdir = @srcdir@
+VPATH = @srcdir@
+RTEMS_ROOT = @top_srcdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+INSTALL = @INSTALL@
+
+PGM=${ARCH}/vectors.rel
+
+# C source names, if any, go here -- minus the .c
+C_PIECES=
+C_FILES=$(C_PIECES:%=%.c)
+C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
+
+H_FILES=
+
+# Assembly source names, if any, go here -- minus the .S
+S_PIECES=vectors
+S_FILES=$(S_PIECES:%=%.S)
+S_O_FILES=$(S_FILES:%.S=${ARCH}/%.o)
+
+SRCS=$(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
+OBJS=$(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
+
+include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
+include $(RTEMS_ROOT)/make/leaf.cfg
+
+#
+# (OPTIONAL) Add local stuff here using +=
+#
+
+DEFINES +=
+CPPFLAGS +=
+CFLAGS +=
+
+LD_PATHS +=
+LD_LIBS +=
+LDFLAGS +=
+
+#
+# Add your list of files to delete here. The config files
+# already know how to delete some stuff, so you may want
+# to just run 'make clean' first to see what gets missed.
+# 'make clobber' already includes 'make clean'
+#
+
+CLEAN_ADDITIONS +=
+CLOBBER_ADDITIONS +=
+
+${PGM}: ${SRCS} ${OBJS}
+ $(make-rel)
+
+all: ${ARCH} $(SRCS) $(PGM)
+
+# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
+install: all
diff --git a/c/src/lib/libbsp/powerpc/score603e/vectors/vectors.S b/c/src/lib/libbsp/powerpc/score603e/vectors/vectors.S
new file mode 100644
index 0000000000..9a15dd1031
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/score603e/vectors/vectors.S
@@ -0,0 +1,177 @@
+/* vectors.s 1.1 - 95/12/04
+ *
+ * This file contains the assembly code for the PowerPC
+ * interrupt veneers for RTEMS.
+ *
+ */
+
+/*
+ * The issue with this file is getting it loaded at the right place.
+ * The first vector MUST be at address 0x????0100.
+ * How this is achieved is dependant on the tool chain.
+ *
+ * However the basic mechanism for ELF assemblers is to create a
+ * section called ".vectors", which will be loaded to an address
+ * between 0x????0000 and 0x????0100 (inclusive) via a link script.
+ *
+ * The basic mechanism for XCOFF assemblers is to place it in the
+ * normal text section, and arrange for this file to be located
+ * at an appropriate position on the linker command line.
+ *
+ * The variable 'PPC_VECTOR_FILE_BASE' must be defined to be the
+ * offset from 0x????0000 to the first location in the file. This
+ * will usually be 0x0000 or 0x0100.
+ *
+ * $Id$
+ */
+
+#include "asm.h"
+
+#ifndef PPC_VECTOR_FILE_BASE
+#error "PPC_VECTOR_FILE_BASE is not defined."
+#endif
+
+#if (SCORE603E_USE_NONE)
+
+ /* Where this file will be loaded */
+ .set file_base, PPC_VECTOR_FILE_BASE
+
+ /* Vector offsets */
+ .set reset_vector,0x0100
+ .set mach_vector,0x0200
+ .set prot_vector,0x0300
+ .set isi_vector,0x0400
+ .set ext_vector,0x0500
+ .set align_vector,0x0600
+ .set prog_vector,0x0700
+ .set float_vector,0x0800
+ .set dec_vector,0x0900
+ .set sys_vector,0x00C00
+ .set trace_vector, 0x0d00
+ .set itm_vector,0x01000
+ .set dltm_vector,0x1100
+ .set dstm_vector,0x1200
+ .set addr_vector,0x1300
+ .set sysmgmt_vector,0x1400
+
+/* Go to the right section */
+#if PPC_ASM == PPC_ASM_ELF
+ .section .vectors,"awx",@progbits
+#elif PPC_ASM == PPC_ASM_XCOFF
+ .csect .text[PR]
+#endif
+
+ PUBLIC_VAR (__vectors)
+SYM (__vectors):
+
+ /* Decrementer interrupt */
+ .org reset_vector - file_base
+ ba 0x00100
+ ba 0xfff00100
+ ba 0xfff00100
+ ba 0xfff00100
+
+ .org mach_vector - file_base
+ ba 0x00200
+ ba 0xfff00200
+ ba 0xfff00200
+ ba 0xfff00200
+
+ .org prot_vector - file_base
+ ba 0x00300
+ ba 0xfff00300
+ ba 0xfff00300
+ ba 0xfff00300
+
+ .org isi_vector - file_base
+ ba 0x00400
+ ba 0xfff00400
+ ba 0xfff00400
+ ba 0xfff00400
+
+ .org ext_vector - file_base
+ ba 0x0500
+ ba 0xfff00500
+ ba 0xfff00500
+ ba 0xfff00500
+
+ .org align_vector - file_base
+ ba 0x00600
+ ba 0xfff00600
+ ba 0xfff00600
+ ba 0xfff00600
+
+ .org prog_vector - file_base
+ ba 0x00700
+ ba 0xfff00700
+ ba 0xfff00700
+ ba 0xfff00700
+
+ .org float_vector - file_base
+ ba 0x00800
+ ba 0xfff00800
+ ba 0xfff00800
+ ba 0xfff00800
+
+ .org dec_vector - file_base
+ rfi
+ ba 0xfff00900
+ ba 0xfff00900
+ ba 0xfff00900
+
+ .org sys_vector - file_base
+ ba 0x0c00
+ ba 0xfff00C00
+ ba 0xfff00C00
+ ba 0xfff00C00
+
+ .org trace_vector - file_base
+ ba 0x0d00
+ ba 0xfff00d00
+ ba 0xfff00d00
+ ba 0xfff00d00
+
+ .org itm_vector - file_base
+ ba 0x01000
+ ba 0xfff01000
+ ba 0xfff01000
+ ba 0xfff01000
+
+ .org dltm_vector - file_base
+ ba 0x01100
+ ba 0xfff01100
+ ba 0xfff01100
+ ba 0xfff01100
+
+ .org dstm_vector - file_base
+ ba 0x1200
+ ba 0xfff01200
+ ba 0xfff01200
+ ba 0xfff01200
+
+ .org addr_vector - file_base
+ ba 0x1300
+ ba 0xfff01300
+ ba 0xfff01300
+ ba 0xfff01300
+
+ .org sysmgmt_vector - file_base
+ ba 0x1400
+ ba 0xfff01400
+ ba 0xfff01400
+ ba 0xfff01400
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+