diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-02-19 00:22:33 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-02-19 00:22:33 +0000 |
commit | 9c448e1db38c6dd64c885ddfb3fe28de33cd037b (patch) | |
tree | 9d5eb1ec6170db686a021c387c1dce8ab7ad0804 /c/src/lib/libbsp/powerpc/score603e/vectors | |
parent | Updated to reflect addition of new BSPs. (diff) | |
download | rtems-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.in | 61 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/score603e/vectors/vectors.S | 177 |
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 + + + + + + + + + + + + + + |