Index: c/src/lib/libbsp/sh/gensh2/start/Makefile.in
===================================================================
--- c/src/lib/libbsp/sh/gensh2/start/Makefile.in	(revision 4a238002e71ec018723229f8669363a5ffb7302e)
+++ c/src/lib/libbsp/sh/gensh2/start/Makefile.in	(revision 4a238002e71ec018723229f8669363a5ffb7302e)
@@ -0,0 +1,70 @@
+##
+## $Id$
+##
+
+@SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ../../..
+subdir = sh/gensh2/start
+
+RTEMS_ROOT = @RTEMS_ROOT@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+VPATH = @srcdir@
+
+PGMS = ${ARCH}/start.o
+
+# 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 = start
+S_FILES = $(S_PIECES:%=%.S)
+S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
+
+SRCS = $(C_FILES) $(H_FILES) $(S_FILES)
+OBJS = $(C_O_FILES) $(S_O_FILES)
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(RTEMS_ROOT)/make/leaf.cfg
+
+INSTALL_CHANGE = @INSTALL_CHANGE@
+
+#
+# (OPTIONAL) Add local stuff here using +=
+#
+
+DEFINES +=
+CPPFLAGS +=
+CFLAGS +=
+
+LD_PATHS +=
+LD_LIBS +=
+LDFLAGS +=
+
+# force optimization, otherwise start.o will not work
+# CFLAGS_PROFILE=
+# CFLAGS_DEBUG=-O3
+# CFLAGS_OPTIMIZE=-O3
+
+#
+# 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 +=
+
+all: ${ARCH} $(SRCS) $(OBJS) $(PGM)
+	@$(INSTALL_VARIANT) -m 755 ${PGMS} $(PROJECT_RELEASE)/lib
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
Index: c/src/lib/libbsp/sh/gensh2/start/start.S
===================================================================
--- c/src/lib/libbsp/sh/gensh2/start/start.S	(revision 4a238002e71ec018723229f8669363a5ffb7302e)
+++ c/src/lib/libbsp/sh/gensh2/start/start.S	(revision 4a238002e71ec018723229f8669363a5ffb7302e)
@@ -0,0 +1,198 @@
+/*
+ *  Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) and
+ *           Bernd Becker (becker@faw.uni-ulm.de)
+ *
+ *  COPYRIGHT (c) 1997-1998, FAW Ulm, Germany
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ *  Modified to reflect Hitachi EDK SH7045F:
+ *  John M. Mills (jmills@tga.com)
+ *  TGA Technologies, Inc.
+ *  100 Pinnacle Way, Suite 140
+ *  Norcross, GA 30071 U.S.A.
+ *  
+ *
+ *  This modified file may be copied and distributed in accordance
+ *  the above-referenced license. It is provided for critique and
+ *  developmental purposes without any warranty nor representation
+ *  by the authors or by TGA Technologies.
+ *
+ *  COPYRIGHT (c) 1999.
+ *  On-Line Applications Research Corporation (OAR).
+ *  Copyright assigned to U.S. Government, 1994.
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.OARcorp.com/rtems/license.html.
+ *
+ *  $Id$
+ */
+
+#include "asm.h"
+
+	BEGIN_CODE
+	PUBLIC(start)
+
+SYM (start):
+        ! install the stack pointer
+	mov.l	stack_k,r15
+
+#ifdef	START_HW_INIT	/* from $RTEMS_BSP.cfg */
+	! Initialize minimal hardware
+	mov.l	hw_init_k, r0
+	jsr @r0
+	nop		!debug dead-slot target
+#endif /* START_HW_INIT */
+
+	! zero out bss
+	mov.l	edata_k,r0
+	mov.l	end_k,r1
+	mov	#0,r2
+0:
+	mov.l	r2,@r0
+	add	#4,r0
+	cmp/ge	r0,r1
+	bt	0b
+	nop		!debug dead-slot target
+
+	! copy the vector table from rom to ram
+	mov.l   vects_k,r0   	! vectab
+	mov	#0,r1		! address of boot vector table
+	mov     #0,r2		! number of bytes copied
+	mov.w   vects_size,r3   ! size of entries in vectab
+1:
+	mov.l   @r1+,r4
+	mov.l   r4,@r0
+	add     #4,r0
+	add     #1,r2
+	cmp/hi  r3,r2
+	bf      1b
+	nop		!debug dead-slot target
+
+	! overlay monitor vectors onto RTEMS table template
+	! code adapted  from Hitachi EDK7045F User Manual: "Copyvect.s"
+	mova	vects_k,r0
+	mov.l	@r0, r1	! Shadow vect tbl addr
+	stc		vbr, r2	! Original vect tbl addr
+	and		#0, r0 
+	mov		r0, r4	! 0 in r4 and r0
+
+!trapa #32
+	or		#0x80, r0
+	mov.l	@(r0,r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!cpu addr err
+	or		#0x24, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!ill slot
+	or		#0x18, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!ill inst
+	or		#0x10, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!nmi
+	or		#0x2c, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!User brk
+	or		#0x30, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!sci0 err
+	or		#0x80, r0
+	rotl	r0
+	rotl	r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+!sci rx
+	or		#0x81, r0
+	rotl	r0
+	rotl	r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+
+	stc	vbr,r3		! capture copy of monitor vbr
+	mov.l	vbrtemp_k,r0
+	mov.l	r3, @r0
+	mov.l   vects_k,r0   	! point vbr to vectab
+	ldc     r0,vbr
+
+	! call the mainline	
+	mov #0,r4		! argc
+	mov #0,r5		! argv - can place in dead slot
+	mov.l main_k,r0
+	jsr @r0
+	nop		!debug dead-slot target
+
+	! call exit
+	mov	r0,r4
+	mov.l	exit_k,r0
+	or	r0,r0
+	jsr	@r0
+	nop		!debug dead-slot target
+
+	mov.l	vbrtemp_k,r0	! restore original vbr
+	mov.l	@r0,r3
+	ldc	r3, vbr
+	trapa	#13		! UBR capture by monitor
+	nop		!debug dead-slot target
+
+	END_CODE
+
+	.align 2
+stack_k:
+	.long	SYM(stack)	
+edata_k:
+	.long	SYM(edata)
+end_k:
+	.long	SYM(end)
+main_k:
+	.long	SYM(boot_card)
+exit_k:
+	.long	SYM(exit)
+#ifdef	START_HW_INIT	/* from $RTEMS_BSP.cfg */
+hw_init_k:
+	.long	SYM(hw_initialize)
+#endif /* START_HW_INIT */
+vbrtemp_k:
+	.long	SYM(vbrtemp)
+vects_k:
+	.long	SYM(vectab)
+vects_size:
+	.word	255
+
+#ifdef __ELF__
+	.section .stack,"aw"
+#else
+	.section .stack
+#endif
+SYM(stack):
+	.long	0xdeaddead
+
+#ifdef __ELF__
+	.section .bss,"aw"
+#else
+	.section .bss
+#endif
+SYM(vbrtemp):
+	.long	0x0
+
Index: c/src/lib/libbsp/sh/gensh2/start/start.ram
===================================================================
--- c/src/lib/libbsp/sh/gensh2/start/start.ram	(revision 4a238002e71ec018723229f8669363a5ffb7302e)
+++ c/src/lib/libbsp/sh/gensh2/start/start.ram	(revision 4a238002e71ec018723229f8669363a5ffb7302e)
@@ -0,0 +1,199 @@
+/*
+ *  Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) and
+ *           Bernd Becker (becker@faw.uni-ulm.de)
+ *
+ *  COPYRIGHT (c) 1997-1998, FAW Ulm, Germany
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ *
+ *  COPYRIGHT (c) 1998.
+ *  On-Line Applications Research Corporation (OAR).
+ *  Copyright assigned to U.S. Government, 1994.
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.OARcorp.com/rtems/license.html.
+ *
+ *  Modified to reflect Hitachi EDK SH7045F:
+ *  John M. Mills (jmills@tga.com)
+ *  TGA Technologies, Inc.
+ *  100 Pinnacle Way, Suite 140
+ *  Norcross, GA 30071 U.S.A.
+ *  
+ *
+ *  This modified file may be copied and distributed in accordance
+ *  the above-referenced license. It is provided for critique and
+ *  developmental purposes without any warranty nor representation
+ *  by the authors or by TGA Technologies.
+ *
+ *  $Id$
+ */
+
+#include "asm.h"
+
+	BEGIN_CODE
+	PUBLIC(start)
+
+SYM (start):
+        ! install the stack pointer
+	mov.l	stack_k,r15
+
+#ifdef	START_HW_INIT	/* from $RTEMS_BSP.cfg */
+	! Initialize minimal hardware
+	mov.l	hw_init_k, r0
+	jsr @r0
+	nop		!debug dead-slot target
+#endif /* START_HW_INIT */
+
+	! zero out bss
+	mov.l	edata_k,r0
+	mov.l	end_k,r1
+	mov	#0,r2
+0:
+	mov.l	r2,@r0
+	add	#4,r0
+	cmp/ge	r0,r1
+	bt	0b
+	nop		!debug dead-slot target
+
+	! copy the vector table from rom to ram
+	mov.l   vects_k,r0   	! vectab
+	mov	#0,r1		! address of boot vector table
+	mov     #0,r2		! number of bytes copied
+	mov.w   vects_size,r3   ! size of entries in vectab
+1:
+	mov.l   @r1+,r4
+	mov.l   r4,@r0
+	add     #4,r0
+	add     #1,r2
+	cmp/hi  r3,r2
+	bf      1b
+	nop		!debug dead-slot target
+
+	! overlay monitor vectors onto RTEMS table template
+	! code adapted  from Hitachi EDK7045F User Manual: "Copyvect.s"
+	mova	vects_k,r0
+	mov.l	@r0, r1	! Shadow vect tbl addr
+	stc		vbr, r2	! Original vect tbl addr
+	and		#0, r0 
+	mov		r0, r4	! 0 in r4 and r0
+
+!trapa #32
+	or		#0x80, r0
+	mov.l	@(r0,r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!cpu addr err
+	or		#0x24, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!ill slot
+	or		#0x18, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!ill inst
+	or		#0x10, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!nmi
+	or		#0x2c, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!User brk
+	or		#0x30, r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+
+!sci0 err
+	or		#0x80, r0
+	rotl	r0
+	rotl	r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+	mov		r4, r0
+!sci rx
+	or		#0x81, r0
+	rotl	r0
+	rotl	r0
+	mov.l	@(r0, r2), r3
+	mov.l	r3, @(r0, r1)
+
+	stc	vbr,r3		! capture copy of monitor vbr
+	mov.l	vbrtemp_k,r0
+	mov.l	r3, @r0
+	mov.l   vects_k,r0   	! point vbr to vectab
+	ldc     r0,vbr
+
+	! call the mainline	
+	mov #0,r4		! argc
+	mov #0,r5		! argv - can place in dead slot
+	mov.l main_k,r0
+	jsr @r0
+	nop		!debug dead-slot target
+
+	! call exit
+	mov	r0,r4
+	mov.l	exit_k,r0
+	or	r0,r0
+	jsr	@r0
+	nop		!debug dead-slot target
+
+	mov.l	vbrtemp_k,r0	! restore original vbr
+	mov.l	@r0,r3
+	ldc	r3, vbr
+	trapa	#13		! UBR capture by monitor
+	nop		!debug dead-slot target
+
+	END_CODE
+
+	.align 2
+stack_k:
+	.long	SYM(stack)	
+edata_k:
+	.long	SYM(edata)
+end_k:
+	.long	SYM(end)
+main_k:
+	.long	SYM(boot_card)
+exit_k:
+	.long	SYM(exit)
+#ifdef	START_HW_INIT	/* from $RTEMS_BSP.cfg */
+hw_init_k:
+	.long	SYM(hw_initialize)
+#endif /* START_HW_INIT */
+vbrtemp_k:
+	.long	SYM(vbrtemp)
+vects_k:
+	.long	SYM(vectab)
+vects_size:
+	.word	255
+
+#ifdef __ELF__
+	.section .stack,"aw"
+#else
+	.section .stack
+#endif
+SYM(stack):
+	.long	0xdeaddead
+
+#ifdef __ELF__
+	.section .bss,"aw"
+#else
+	.section .bss
+#endif
+SYM(vbrtemp):
+	.long	0x0
+
Index: c/src/lib/libbsp/sh/gensh2/start/start.rom
===================================================================
--- c/src/lib/libbsp/sh/gensh2/start/start.rom	(revision 4a238002e71ec018723229f8669363a5ffb7302e)
+++ c/src/lib/libbsp/sh/gensh2/start/start.rom	(revision 4a238002e71ec018723229f8669363a5ffb7302e)
@@ -0,0 +1,94 @@
+/*
+ *  Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) and
+ *           Bernd Becker (becker@faw.uni-ulm.de)
+ *
+ *  COPYRIGHT (c) 1997-1998, FAW Ulm, Germany
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ *
+ *  COPYRIGHT (c) 1998.
+ *  On-Line Applications Research Corporation (OAR).
+ *  Copyright assigned to U.S. Government, 1994.
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.OARcorp.com/rtems/license.html.
+ *
+ *  $Id$
+ */
+
+#include "asm.h"
+
+	BEGIN_CODE
+	PUBLIC(start)
+SYM (start):
+        ! install the stack pointer
+	mov.l	stack_k,r15
+
+	! zero out bss
+	mov.l	edata_k,r0
+	mov.l	end_k,r1
+	mov	#0,r2
+0:
+	mov.l	r2,@r0
+	add	#4,r0
+	cmp/ge	r0,r1
+	bt	0b
+
+	! copy the vector table from rom to ram
+	mov.l   vects_k,r0   	! vectab
+	mov	#0,r1		! address of boot vector table
+	mov     #0,r2		| number of bytes copied
+	mov.w   vects_size,r3   ! size of entries in vectab
+1:
+	mov.l   @r1+,r4
+	mov.l   r4,@r0
+	add     #4,r0
+	add     #1,r2
+	cmp/hi  r3,r2
+	bf      1b
+
+	mov.l   vects_k,r0   	! update vbr to point to vectab
+	ldc     r0,vbr
+
+	! call the mainline	
+	mov #0,r4		! argc
+	mov.l main_k,r0
+	jsr @r0
+	mov #0,r5		! argv
+
+	! call exit
+	mov	r0,r4
+	mov.l	exit_k,r0
+	jsr	@r0
+	or	r0,r0
+
+	END_CODE
+
+	.align 2
+stack_k:
+	.long	SYM(stack)	
+edata_k:
+	.long	SYM(edata)
+end_k:
+	.long	SYM(end)
+main_k:
+	.long	SYM(boot_card)
+exit_k:
+	.long	SYM(exit)
+
+vects_k:
+	.long	SYM(vectab)
+vects_size:
+	.word	255
+
+#ifdef __ELF__
+	.section .stack,"aw"
+#else
+	.section .stack
+#endif
+SYM(stack):
+	.long	0xdeaddead
