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/usiii.cfg,
	start/bspinit.S: New files.
This commit is contained in:
Joel Sherrill
2010-06-17 16:20:39 +00:00
parent 4d6f5f5fcd
commit df97084419
10 changed files with 678 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
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/usiii.cfg,
start/bspinit.S: New files.
2010-06-05 Gedare Bloom <gedare@gwmail.gwu.edu>
* make/custom/usiii.cfg: Moved sun4u.cfg to usiii.cfg
2010-06-05 Gedare Bloom <gedare@gwmail.gwu.edu>
* README: New file.
2010-06-05 Gedare Bloom <gedare@gwmail.gwu.edu>
* Makefile.am: Use ../shared/console driver.
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.
* start/bspinit.S: Call memcpy to copy OFW's trap table.
2010-05-10 Gedare Bloom <gedare@gwmail.gwu.edu>
* configure.ac Makefile.am bsp_specs include/bsp.h make/custom/sun4u.cfg:
New files. Copied from sun4v.cfg.
2010-05-10 Gedare Bloom <gedare@gwmail.gwu.edu>
* ChangeLog: New file.
+135
View File
@@ -0,0 +1,135 @@
##
## $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_HEADERS += ../shared/include/traptable.h
## these are the include files used by the boot process from HelenOS Sparc64
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
## These include files mimic the HelenOS kernel include layout, which
## in HelenOS-0.4.2 is more complicated than the boot include dirs.
# assumed by the HelenOS sources to be in the root includedir. We place them
# in a kernel include directory.
include_kerneldir = $(includedir)/kernel
include_kernel_HEADERS = \
../shared/helenos/kernel/generic/include/align.h
include_archdir = $(includedir)/arch
include_arch_HEADERS = \
../shared/helenos/kernel/sparc64/include/arch.h \
../shared/helenos/kernel/sparc64/include/boot.h \
../shared/helenos/kernel/sparc64/include/regdef.h \
../shared/helenos/kernel/sparc64/include/stack.h
include_arch_sun4udir = $(includedir)/arch/sun4u
include_arch_sun4u_HEADERS = \
../shared/helenos/kernel/sparc64/include/sun4u/arch.h
include_arch_mmdir = $(includedir)/arch/mm
include_arch_mm_HEADERS = \
../shared/helenos/kernel/sparc64/include/mm/cache_spec.h \
../shared/helenos/kernel/sparc64/include/mm/frame.h \
../shared/helenos/kernel/sparc64/include/mm/mmu.h \
../shared/helenos/kernel/sparc64/include/mm/page.h \
../shared/helenos/kernel/sparc64/include/mm/tlb.h \
../shared/helenos/kernel/sparc64/include/mm/tte.h
include_arch_mm_sun4udir = $(includedir)/arch/mm/sun4u
include_arch_mm_sun4u_HEADERS = \
../shared/helenos/kernel/sparc64/include/mm/sun4u/frame.h \
../shared/helenos/kernel/sparc64/include/mm/sun4u/mmu.h \
../shared/helenos/kernel/sparc64/include/mm/sun4u/page.h \
../shared/helenos/kernel/sparc64/include/mm/sun4u/tlb.h \
../shared/helenos/kernel/sparc64/include/mm/sun4u/tte.h
include_genarch_ofwdir = $(includedir)/genarch/ofw
include_genarch_ofw_HEADERS = \
../shared/helenos/kernel/genarch/include/ofw/ofw_tree.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 \
../shared/asm/asm.S \
start/bspinit.S
mmu_SOURCES = \
../shared/helenos/kernel/sparc64/src/cache.S \
../shared/helenos/kernel/sparc64/src/sun4u/takemmu.S \
../shared/start/trap_table.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) $(mmu_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
+61
View File
@@ -0,0 +1,61 @@
#
# $Id$
#
BSP NAME: usiii
BOARD:
BUS: n/a
CPU FAMILY: SPARC V9 (a.k.a. sun4u)
CPU: UltraSPARC III
COPROCESSORS:
MODE: n/a
DEBUG MONITOR:
PERIPHERALS
===========
TIMERS: TICK register (ASR 4)
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 III SPARC64
and similar processors.
This BSP has been run on the Simics simulator with the serengeti target.
Simics:
A commercially available simulator licensed by Virtutech.
https://www.simics.net/
+15
View File
@@ -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}
@@ -0,0 +1,29 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-sparc64-sun4u],[_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_BSPOPTS_SET([SIMSPARC_FAST_IDLE],[*],[])
RTEMS_BSPOPTS_HELP([SIMSPARC_FAST_IDLE],
[If defined, speed up the clock ticks while the idle task is running so
time spent in the idle task is minimized. This significantly reduces
the wall time required to execute the RTEMS test suites.])
RTEMS_BSP_CLEANUP_OPTIONS(0, 0)
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
@@ -0,0 +1,71 @@
/* 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 sun4u version of SPARC64
* sun4u modifications of respective RTEMS file:
* COPYRIGHT (c) 2010.
* Eugen Leontie
* Gedare Bloom
*
* $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
@@ -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
@@ -0,0 +1,27 @@
#
# Config file for the UltraSparc III, IV SPARC64 processors.
# TODO: currently configured and tested only for ultrasparc3
#
# $Id$
#
include $(RTEMS_ROOT)/make/custom/default.cfg
RTEMS_CPU=sparc64
RTEMS_CPU_MODEL=sun4u
# This is the actual bsp directory used during the build process.
RTEMS_BSP_FAMILY=usiii
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
#CPU_CFLAGS = -mcpu=ultrasparc3 -msoft-float
#CPU_CFLAGS = -mcpu=ultrasparc3 -DRTEMS_DEBUG -DDEBUG_WORKSPACE
#CPU_CFLAGS = -mcpu=ultrasparc3 -DRTEMS_DEBUG -DDEBUG_WORKSPACE -DHAVE___ASSERT_FUNC -DBSP_GET_WORK_AREA_DEBUG -DGICADEBUG
#CPU_CFLAGS = -mcpu=ultrasparc3 -DGICADEBUG
CPU_CFLAGS = -mcpu=ultrasparc3 -DUS3 -DSUN4U
#CPU_CFLAGS = -mcpu=ultrasparc3 -mno-fpu
#CPU_CFLAGS = -mcpu=ultrasparc3 -m64
#CPU_CFLAGS = -mcpu=ultrasparc3 -DRTEMS_DEBUG -DHAVE___ASSERT_FUNC
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -gstabs
@@ -0,0 +1,222 @@
## 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)/traptable.h: ../shared/include/traptable.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/traptable.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/traptable.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)/kernel/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/kernel
@: > $(PROJECT_INCLUDE)/kernel/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/kernel/$(dirstamp)
$(PROJECT_INCLUDE)/kernel/align.h: ../shared/helenos/kernel/generic/include/align.h $(PROJECT_INCLUDE)/kernel/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/kernel/align.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/kernel/align.h
$(PROJECT_INCLUDE)/arch/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/arch
@: > $(PROJECT_INCLUDE)/arch/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/arch/$(dirstamp)
$(PROJECT_INCLUDE)/arch/arch.h: ../shared/helenos/kernel/sparc64/include/arch.h $(PROJECT_INCLUDE)/arch/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/arch.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/arch.h
$(PROJECT_INCLUDE)/arch/boot.h: ../shared/helenos/kernel/sparc64/include/boot.h $(PROJECT_INCLUDE)/arch/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/boot.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/boot.h
$(PROJECT_INCLUDE)/arch/regdef.h: ../shared/helenos/kernel/sparc64/include/regdef.h $(PROJECT_INCLUDE)/arch/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/regdef.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/regdef.h
$(PROJECT_INCLUDE)/arch/stack.h: ../shared/helenos/kernel/sparc64/include/stack.h $(PROJECT_INCLUDE)/arch/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/stack.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/stack.h
$(PROJECT_INCLUDE)/arch/sun4u/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/arch/sun4u
@: > $(PROJECT_INCLUDE)/arch/sun4u/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/arch/sun4u/$(dirstamp)
$(PROJECT_INCLUDE)/arch/sun4u/arch.h: ../shared/helenos/kernel/sparc64/include/sun4u/arch.h $(PROJECT_INCLUDE)/arch/sun4u/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/sun4u/arch.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/sun4u/arch.h
$(PROJECT_INCLUDE)/arch/mm/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/arch/mm
@: > $(PROJECT_INCLUDE)/arch/mm/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/arch/mm/$(dirstamp)
$(PROJECT_INCLUDE)/arch/mm/cache_spec.h: ../shared/helenos/kernel/sparc64/include/mm/cache_spec.h $(PROJECT_INCLUDE)/arch/mm/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/cache_spec.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/cache_spec.h
$(PROJECT_INCLUDE)/arch/mm/frame.h: ../shared/helenos/kernel/sparc64/include/mm/frame.h $(PROJECT_INCLUDE)/arch/mm/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/frame.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/frame.h
$(PROJECT_INCLUDE)/arch/mm/mmu.h: ../shared/helenos/kernel/sparc64/include/mm/mmu.h $(PROJECT_INCLUDE)/arch/mm/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/mmu.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/mmu.h
$(PROJECT_INCLUDE)/arch/mm/page.h: ../shared/helenos/kernel/sparc64/include/mm/page.h $(PROJECT_INCLUDE)/arch/mm/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/page.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/page.h
$(PROJECT_INCLUDE)/arch/mm/tlb.h: ../shared/helenos/kernel/sparc64/include/mm/tlb.h $(PROJECT_INCLUDE)/arch/mm/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/tlb.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/tlb.h
$(PROJECT_INCLUDE)/arch/mm/tte.h: ../shared/helenos/kernel/sparc64/include/mm/tte.h $(PROJECT_INCLUDE)/arch/mm/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/tte.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/tte.h
$(PROJECT_INCLUDE)/arch/mm/sun4u/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/arch/mm/sun4u
@: > $(PROJECT_INCLUDE)/arch/mm/sun4u/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/arch/mm/sun4u/$(dirstamp)
$(PROJECT_INCLUDE)/arch/mm/sun4u/frame.h: ../shared/helenos/kernel/sparc64/include/mm/sun4u/frame.h $(PROJECT_INCLUDE)/arch/mm/sun4u/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/sun4u/frame.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/sun4u/frame.h
$(PROJECT_INCLUDE)/arch/mm/sun4u/mmu.h: ../shared/helenos/kernel/sparc64/include/mm/sun4u/mmu.h $(PROJECT_INCLUDE)/arch/mm/sun4u/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/sun4u/mmu.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/sun4u/mmu.h
$(PROJECT_INCLUDE)/arch/mm/sun4u/page.h: ../shared/helenos/kernel/sparc64/include/mm/sun4u/page.h $(PROJECT_INCLUDE)/arch/mm/sun4u/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/sun4u/page.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/sun4u/page.h
$(PROJECT_INCLUDE)/arch/mm/sun4u/tlb.h: ../shared/helenos/kernel/sparc64/include/mm/sun4u/tlb.h $(PROJECT_INCLUDE)/arch/mm/sun4u/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/sun4u/tlb.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/sun4u/tlb.h
$(PROJECT_INCLUDE)/arch/mm/sun4u/tte.h: ../shared/helenos/kernel/sparc64/include/mm/sun4u/tte.h $(PROJECT_INCLUDE)/arch/mm/sun4u/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arch/mm/sun4u/tte.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/arch/mm/sun4u/tte.h
$(PROJECT_INCLUDE)/genarch/ofw/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/genarch/ofw
@: > $(PROJECT_INCLUDE)/genarch/ofw/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/genarch/ofw/$(dirstamp)
$(PROJECT_INCLUDE)/genarch/ofw/ofw_tree.h: ../shared/helenos/kernel/genarch/include/ofw/ofw_tree.h $(PROJECT_INCLUDE)/genarch/ofw/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/genarch/ofw/ofw_tree.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/genarch/ofw/ofw_tree.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)/linkcmds: ../shared/startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
@@ -0,0 +1,51 @@
/*
* bspinit.S
*
* BSP specific initialization for Sparc64 RTEMS -- sun4u 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 sun4u BSP
*
* $Id$
*
*/
#include <rtems/asm.h>
#include <rtems/score/cpu.h>
#include <traptable.h>
#define LSU_CR_IM_MASK (0x0004) /* bit 2 */
#define LSU_CR_DM_MASK (0x0008) /* bit 3 */
#define STACK_WINDOW_SAVE_AREA_SIZE (16*8)
.register %g2, #scratch
.register %g3, #scratch
.section .text
PUBLIC(_BSP_init)
.global _BSP_init
SYM(_BSP_init):
save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
/* copy firmware trap table so that RTEMS can install ISR handlers */
setx SYM(trap_table), %l0, %o0
rdpr %tba, %o1
set TABLE_SIZE, %o2
call memcpy
nop
mov %g0, %o0
call _take_mmu
nop
ret
restore