summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc64
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-06-17 16:20:34 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-06-17 16:20:34 +0000
commit4d6f5f5fcdbbb853f3146bdcc9f3be0bb7770547 (patch)
tree27292f5a9307841fb42e42b222a9e4870d798bd5 /c/src/lib/libbsp/sparc64
parent2010-06-17 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-4d6f5f5fcdbbb853f3146bdcc9f3be0bb7770547.tar.bz2
2010-06-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* ChangeLog, Makefile.am, README, bsp_specs, configure.ac, preinstall.am, include/bsp.h, include/tm27.h, make/custom/niagara.cfg, start/bspinit.S: New files.
Diffstat (limited to 'c/src/lib/libbsp/sparc64')
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/ChangeLog29
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/Makefile.am83
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/README69
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/bsp_specs15
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/configure.ac22
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/include/bsp.h69
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/include/tm27.h32
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg24
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/preinstall.am124
-rw-r--r--c/src/lib/libbsp/sparc64/niagara/start/bspinit.S35
10 files changed, 502 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc64/niagara/ChangeLog b/c/src/lib/libbsp/sparc64/niagara/ChangeLog
new file mode 100644
index 0000000000..66e98c8387
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/ChangeLog
@@ -0,0 +1,29 @@
+2010-06-17 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * ChangeLog, Makefile.am, README, bsp_specs, configure.ac,
+ preinstall.am, include/bsp.h, include/tm27.h,
+ make/custom/niagara.cfg, start/bspinit.S: New files.
+
+2010-06-05 Gedare Bloom <gedare@gwmail.gwu.edu>
+
+ * Makefile.am: Move console driver to ../shared directory.
+
+2010-05-15 Gedare Bloom <gedare@gwmail.gwu.edu>
+
+ * Makefile.am: Update to new ../helenos directory layout.
+
+2010-05-13 Gedare Bloom <gedare@gwmail.gwu.edu>
+
+ * start/bspinit.S: New file.
+
+2010-05-03 Gedare Bloom <gedare@gwmail.gwu.edu>
+
+ * Makefile.am: Add shared-score.rel to libadd.
+
+2010-05-02 Gedare Bloom <gedare@gwmail.gwu.edu>
+
+ * Makefile.am: Uses model specific libcpu/syscall
+
+2009-10-19 Eugen Leontie
+
+ * ChangeLog: New file.
diff --git a/c/src/lib/libbsp/sparc64/niagara/Makefile.am b/c/src/lib/libbsp/sparc64/niagara/Makefile.am
new file mode 100644
index 0000000000..963bd5dba5
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/Makefile.am
@@ -0,0 +1,83 @@
+##
+## $Id$
+##
+
+ACLOCAL_AMFLAGS = -I ../../../../aclocal
+
+include $(top_srcdir)/../../../../automake/compile.am
+include $(top_srcdir)/../../bsp.am
+
+include_bspdir = $(includedir)/bsp
+
+dist_project_lib_DATA = bsp_specs
+
+include_HEADERS = include/bsp.h
+include_HEADERS += include/tm27.h
+include_HEADERS += ../shared/include/asm.h
+
+include_bootdir = $(includedir)/boot
+include_boot_HEADERS = ../shared/helenos/boot/include/align.h \
+ ../shared/helenos/boot/include/balloc.h \
+ ../shared/helenos/boot/include/gentypes.h \
+ ../shared/helenos/boot/include/main.h \
+ ../shared/helenos/boot/include/ofwarch.h \
+ ../shared/helenos/boot/include/ofw.h \
+ ../shared/helenos/boot/include/ofw_tree.h \
+ ../shared/helenos/boot/include/register.h \
+ ../shared/helenos/boot/include/stack.h \
+ ../shared/helenos/boot/include/types.h
+
+nodist_include_HEADERS = include/bspopts.h
+nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
+DISTCLEANFILES = include/bspopts.h
+noinst_PROGRAMS =
+
+nodist_include_HEADERS += ../../shared/include/coverhd.h
+
+
+EXTRA_DIST = ../shared/start/start.S
+start.$(OBJEXT): ../shared/start/start.S
+ $(CPPASCOMPILE) -o $@ -c $<
+project_lib_DATA = start.$(OBJEXT)
+
+dist_project_lib_DATA += ../shared/startup/linkcmds
+
+startup_SOURCES = ../../shared/bspclean.c ../../shared/bsplibc.c \
+ ../../shared/bsppredriverhook.c ../../shared/bsppretaskinghook.c \
+ ../../shared/bsppost.c \
+ ../../shared/bootcard.c ../../shared/sbrk.c \
+ ../shared/startup/bspgetworkarea.c \
+ ../shared/startup/bspstart.c \
+ ../shared/startup/setvec.c \
+ ../../shared/gnatinstallhandler.c \
+ ../shared/helenos/boot/genarch/balloc.c \
+ ../shared/helenos/boot/genarch/ofw.c \
+ ../shared/helenos/boot/genarch/ofw_tree.c \
+ ../shared/helenos/boot/generic/string.c \
+ ../shared/helenos/boot/sparc64/loader/ofwarch.c \
+ ../shared/helenos/boot/sparc64/loader/main.c \
+ ../shared/helenos/boot/sparc64/loader/ofwasm.S \
+ start/bspinit.S \
+ ../shared/asm/asm.S
+
+#clock_SOURCES = ../../shared/clock_driver_simidle.c
+clock_SOURCES = ../shared/clock/ckinit.c
+
+console_SOURCES = ../../shared/console.c ../shared/console/conscfg.c
+
+timer_SOURCES = ../../shared/timerstub.c
+
+noinst_LIBRARIES = libbsp.a
+libbsp_a_SOURCES = $(startup_SOURCES) $(clock_SOURCES) $(console_SOURCES) \
+ $(timer_SOURCES)
+
+libbsp_a_LIBADD = \
+ ../../../libcpu/@RTEMS_CPU@/shared/shared-score.rel \
+ ../../../libcpu/@RTEMS_CPU@/shared/cache.rel \
+ ../../../libcpu/@RTEMS_CPU@/shared/interrupts.rel \
+ ../../../libcpu/@RTEMS_CPU@/shared/sparc64-syscall.rel
+
+EXTRA_DIST += times
+
+include $(srcdir)/preinstall.am
+include $(top_srcdir)/../../../../automake/local.am
diff --git a/c/src/lib/libbsp/sparc64/niagara/README b/c/src/lib/libbsp/sparc64/niagara/README
new file mode 100644
index 0000000000..de25743c59
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/README
@@ -0,0 +1,69 @@
+#
+# $Id$
+#
+
+BSP NAME: niagara
+BOARD:
+BUS: n/a
+CPU FAMILY: SPARC V9 with UltraSPARC Architecture 2005 (a.k.a. sun4v)
+CPU: UltraSPARC T1 (OpenSPARC T1)
+COPROCESSORS:
+MODE: n/a
+
+DEBUG MONITOR:
+
+PERIPHERALS
+===========
+TIMERS: TICK and STICK registers (ASRs 4 and 24)
+ RESOLUTION: CPU clock resolution
+SERIAL PORTS:
+REAL-TIME CLOCK:
+DMA: none
+VIDEO: none
+SCSI: none
+NETWORKING: none
+
+DRIVER INFORMATION
+==================
+CLOCK DRIVER:
+IOSUPP DRIVER:
+SHMSUPP:
+TIMER DRIVER:
+TTY DRIVER:
+
+STDIO
+=====
+PORT:
+ELECTRICAL:
+BAUD:
+BITS PER CHARACTER:
+PARITY:
+STOP BITS:
+
+NOTES
+=====
+
+Board description
+-----------------
+clock rate:
+bus width:
+ROM:
+RAM:
+
+This BSP is designed to operate on the UltraSPARC T1 (Niagara) SPARC64
+and similar processors.
+
+This BSP has been run on the Simics simulator with the niagara target, which
+simulates the OpenSPARC T1 Niagara implementation.
+
+This BSP has been run on the M5 simulator with the SPARC_FS target, which
+simulates the OpenSPARC T1 Niagara implementation.
+
+Simics:
+A commercially available simulator licensed by Virtutech.
+https://www.simics.net/
+
+M5:
+An open-source simulator.
+http://www.m5sim.org/wiki/index.php/Main_Page
+
diff --git a/c/src/lib/libbsp/sparc64/niagara/bsp_specs b/c/src/lib/libbsp/sparc64/niagara/bsp_specs
new file mode 100644
index 0000000000..640e73a53d
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/bsp_specs
@@ -0,0 +1,15 @@
+%rename endfile old_endfile
+%rename startfile old_startfile
+%rename link old_link
+
+*startfile:
+%{!qrtems: %(old_startfile)} \
+%{!nostdlib: %{qrtems: start.o%s crtbegin.o%s -e _start}}
+
+*endfile:
+%{!qrtems: %(old_endfile)} \
+%{!nostdlib: %{qrtems: crtend.o%s}}
+
+*link:
+%(old_link) %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
+
diff --git a/c/src/lib/libbsp/sparc64/niagara/configure.ac b/c/src/lib/libbsp/sparc64/niagara/configure.ac
new file mode 100644
index 0000000000..d693aab6d5
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/configure.ac
@@ -0,0 +1,22 @@
+## Process this file with autoconf to produce a configure script.
+##
+## $Id$
+
+AC_PREREQ(2.60)
+AC_INIT([rtems-c-src-lib-libbsp-sparc64-sun4v],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
+AC_CONFIG_SRCDIR([bsp_specs])
+RTEMS_TOP(../../../../../..)
+
+RTEMS_CANONICAL_TARGET_CPU
+AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.10])
+RTEMS_BSP_CONFIGURE
+
+RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
+RTEMS_CANONICALIZE_TOOLS
+RTEMS_PROG_CCAS
+
+RTEMS_BSP_CLEANUP_OPTIONS(0, 0)
+
+# Explicitly list all Makefiles here
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/c/src/lib/libbsp/sparc64/niagara/include/bsp.h b/c/src/lib/libbsp/sparc64/niagara/include/bsp.h
new file mode 100644
index 0000000000..8bb3cf55a0
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/include/bsp.h
@@ -0,0 +1,69 @@
+/* bsp.h
+ *
+ * This include file contains all SPARC64 simulator definitions.
+ *
+ * COPYRIGHT (c) 1989-1998.
+ * On-Line Applications Research Corporation (OAR).
+ * COPYRIGHT (c) 1995.
+ * European Space Agency.
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * Ported to Simics Niagara version of SPARC64
+ * Niagara modifications of respective RTEMS file: COPYRIGHT (c) 2010.
+ * Eugen Leontie.
+ *
+ * $Id$
+ */
+
+#ifndef _BSP_H
+#define _BSP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <bspopts.h>
+
+#include <rtems.h>
+#include <rtems/iosupp.h>
+#include <rtems/console.h>
+#include <rtems/clockdrv.h>
+
+/* support for simulated clock tick */
+/*
+Thread clock_driver_sim_idle_body(uintptr_t);
+#define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
+*/
+
+/* this should be defined somewhere */
+rtems_isr_entry set_vector( /* returns old vector */
+ rtems_isr_entry handler, /* isr routine */
+ rtems_vector_number vector, /* vector number */
+ int type /* RTEMS or RAW intr */
+);
+
+/*
+ * Simple spin delay in microsecond units for device drivers.
+ * This is very dependent on the clock speed of the target.
+ */
+
+#define rtems_bsp_delay( microseconds ) \
+ { register uint32_t _delay=(microseconds); \
+ register uint32_t _tmp = 0; /* initialized to avoid warning */ \
+ asm volatile( "0: \
+ remo 3,31,%0 ; \
+ cmpo 0,%0 ; \
+ subo 1,%1,%1 ; \
+ cmpobne.t 0,%1,0b " \
+ : "=d" (_tmp), "=d" (_delay) \
+ : "0" (_tmp), "1" (_delay) ); \
+ }
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/c/src/lib/libbsp/sparc64/niagara/include/tm27.h b/c/src/lib/libbsp/sparc64/niagara/include/tm27.h
new file mode 100644
index 0000000000..971636b3a0
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/include/tm27.h
@@ -0,0 +1,32 @@
+/*
+ * tm27.h
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef _RTEMS_TMTEST27
+#error "This is an RTEMS internal file you must not include directly."
+#endif
+
+#ifndef __tm27_h
+#define __tm27_h
+
+/*
+ * Define the interrupt mechanism for Time Test 27
+ */
+
+#define MUST_WAIT_FOR_INTERRUPT 0
+
+#define Install_tm27_vector( handler ) /* set_vector( (handler), 6, 1 ) */
+
+#define Cause_tm27_intr() /* XXX */
+
+#define Clear_tm27_intr() /* XXX */
+
+#define Lower_tm27_intr() /* empty */
+
+#endif
diff --git a/c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg b/c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg
new file mode 100644
index 0000000000..68117bd293
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/make/custom/niagara.cfg
@@ -0,0 +1,24 @@
+#
+# Config file for the Niagara SPARC64 processor.
+#
+# $Id$
+#
+include $(RTEMS_ROOT)/make/custom/default.cfg
+
+RTEMS_CPU=sparc64
+RTEMS_CPU_MODEL=sun4v
+
+# This is the actual bsp directory used during the build process.
+RTEMS_BSP_FAMILY=niagara
+
+# This contains the compiler options necessary to select the CPU model
+# and (hopefully) optimize for it.
+#CPU_CFLAGS = -mcpu=niagara -DSUN4V -msoft-float
+#CPU_CFLAGS = -mcpu=niagara -DSUN4V -DRTEMS_DEBUG -DDEBUG_WORKSPACE
+#CPU_CFLAGS = -mcpu=niagara -DSUN4V -DRTEMS_DEBUG -DDEBUG_WORKSPACE -DHAVE___ASSERT_FUNC -DBSP_GET_WORK_AREA_DEBUG -DGICADEBUG
+#CPU_CFLAGS = -mcpu=niagara -DSUN4V -DGICADEBUG
+CPU_CFLAGS = -mcpu=niagara -DSUN4V
+#CPU_CFLAGS = -mcpu=niagara -DSUN4V -DRTEMS_DEBUG -DHAVE___ASSERT_FUNC
+
+# optimize flag: typically -O2
+CFLAGS_OPTIMIZE_V = -gstabs
diff --git a/c/src/lib/libbsp/sparc64/niagara/preinstall.am b/c/src/lib/libbsp/sparc64/niagara/preinstall.am
new file mode 100644
index 0000000000..0aa021b483
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/preinstall.am
@@ -0,0 +1,124 @@
+## Automatically generated by ampolish3 - Do not edit
+
+if AMPOLISH3
+$(srcdir)/preinstall.am: Makefile.am
+ $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
+endif
+
+PREINSTALL_DIRS =
+DISTCLEANFILES += $(PREINSTALL_DIRS)
+
+all-local: $(TMPINSTALL_FILES)
+
+TMPINSTALL_FILES =
+CLEANFILES = $(TMPINSTALL_FILES)
+
+all-am: $(PREINSTALL_FILES)
+
+PREINSTALL_FILES =
+CLEANFILES += $(PREINSTALL_FILES)
+
+$(PROJECT_LIB)/$(dirstamp):
+ @$(MKDIR_P) $(PROJECT_LIB)
+ @: > $(PROJECT_LIB)/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
+
+$(PROJECT_INCLUDE)/$(dirstamp):
+ @$(MKDIR_P) $(PROJECT_INCLUDE)
+ @: > $(PROJECT_INCLUDE)/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
+
+$(PROJECT_INCLUDE)/bsp/$(dirstamp):
+ @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
+ @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+
+$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
+PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
+
+$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
+
+$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
+
+$(PROJECT_INCLUDE)/asm.h: ../shared/include/asm.h $(PROJECT_INCLUDE)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/asm.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/asm.h
+
+$(PROJECT_INCLUDE)/boot/$(dirstamp):
+ @$(MKDIR_P) $(PROJECT_INCLUDE)/boot
+ @: > $(PROJECT_INCLUDE)/boot/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_INCLUDE)/boot/$(dirstamp)
+
+$(PROJECT_INCLUDE)/boot/align.h: ../shared/helenos/boot/include/align.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/align.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/align.h
+
+$(PROJECT_INCLUDE)/boot/balloc.h: ../shared/helenos/boot/include/balloc.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/balloc.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/balloc.h
+
+$(PROJECT_INCLUDE)/boot/gentypes.h: ../shared/helenos/boot/include/gentypes.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/gentypes.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/gentypes.h
+
+$(PROJECT_INCLUDE)/boot/main.h: ../shared/helenos/boot/include/main.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/main.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/main.h
+
+$(PROJECT_INCLUDE)/boot/ofwarch.h: ../shared/helenos/boot/include/ofwarch.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/ofwarch.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/ofwarch.h
+
+$(PROJECT_INCLUDE)/boot/ofw.h: ../shared/helenos/boot/include/ofw.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/ofw.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/ofw.h
+
+$(PROJECT_INCLUDE)/boot/ofw_tree.h: ../shared/helenos/boot/include/ofw_tree.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/ofw_tree.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/ofw_tree.h
+
+$(PROJECT_INCLUDE)/boot/register.h: ../shared/helenos/boot/include/register.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/register.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/register.h
+
+$(PROJECT_INCLUDE)/boot/stack.h: ../shared/helenos/boot/include/stack.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/stack.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/stack.h
+
+$(PROJECT_INCLUDE)/boot/types.h: ../shared/helenos/boot/include/types.h $(PROJECT_INCLUDE)/boot/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/boot/types.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/boot/types.h
+
+$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
+
+$(PROJECT_INCLUDE)/bsp/bootcard.h: ../../shared/include/bootcard.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bootcard.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bootcard.h
+
+$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
+
+$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT)
+TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT)
+
+$(PROJECT_LIB)/asm.$(OBJEXT): asm.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/asm.$(OBJEXT)
+TMPINSTALL_FILES += $(PROJECT_LIB)/asm.$(OBJEXT)
+
+$(PROJECT_LIB)/bspinit.$(OBJEXT): bspinit.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/bspinit.$(OBJEXT)
+TMPINSTALL_FILES += $(PROJECT_LIB)/bspinit.$(OBJEXT)
+
+$(PROJECT_LIB)/linkcmds: ../shared/startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
+
diff --git a/c/src/lib/libbsp/sparc64/niagara/start/bspinit.S b/c/src/lib/libbsp/sparc64/niagara/start/bspinit.S
new file mode 100644
index 0000000000..311de0d30a
--- /dev/null
+++ b/c/src/lib/libbsp/sparc64/niagara/start/bspinit.S
@@ -0,0 +1,35 @@
+/*
+ * bspinit.S
+ *
+ * BSP specific initialization for Sparc64 RTEMS -- sun4v BSP
+ *
+ * COPYRIGHT (c) 2010 Gedare Bloom.
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * This code defines start code specific to the sun4v BSP
+ *
+ * $Id$
+ *
+ */
+
+#include <rtems/asm.h>
+#include <rtems/score/cpu.h>
+
+#define STACK_WINDOW_SAVE_AREA_SIZE (16*8)
+
+.section .text
+
+PUBLIC(_BSP_init)
+ .global _BSP_init
+ SYM(_BSP_init):
+
+ save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
+
+
+
+ ret
+ restore
+