forked from Imagelibrary/rtems
Moved start code from lib/start to libbsp.
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
|
||||
EXTRA_DIST = README
|
||||
|
||||
SUBDIRS = @RTEMS_CPU_STARTdir@
|
||||
|
||||
include $(top_srcdir)/../../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../../automake/local.am
|
||||
@@ -1,10 +0,0 @@
|
||||
$Id$
|
||||
|
||||
For each processor there may be some start up code
|
||||
(like crt.o) in the appropriate entry subdirectory. This
|
||||
entry code transfers control to target board specific
|
||||
code).
|
||||
|
||||
For some processors this code exists in some external (to RTEMS)
|
||||
library such as libgloss or the host system (for example the hppa1.1
|
||||
and UNIX cpu's)
|
||||
@@ -1,64 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = .
|
||||
|
||||
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 +=
|
||||
|
||||
#
|
||||
# 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=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
@@ -1,35 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
dnl $Id$
|
||||
|
||||
AC_PREREQ(2.13)
|
||||
AC_INIT(start.S)
|
||||
RTEMS_TOP(../../../../..)
|
||||
AC_CONFIG_AUX_DIR(../../../../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_INSTALL
|
||||
# AM_INIT_AUTOMAKE(rtems-c-src-lib-start-m68k,$RTEMS_VERSION,no)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
RTEMS_ENABLE_LIBCDIR
|
||||
RTEMS_ENABLE_BARE
|
||||
|
||||
RTEMS_ENV_RTEMSBSP
|
||||
|
||||
RTEMS_CHECK_CPU
|
||||
RTEMS_CANONICAL_HOST
|
||||
|
||||
RTEMS_PROJECT_ROOT
|
||||
|
||||
dnl check target cc
|
||||
RTEMS_PROG_CC_FOR_TARGET
|
||||
RTEMS_CANONICALIZE_TOOLS
|
||||
|
||||
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
||||
|
||||
# try to explicitly list a Makefile here
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
)
|
||||
@@ -1,153 +0,0 @@
|
||||
/* entry.s
|
||||
*
|
||||
* This file contains the entry point for the application.
|
||||
* The name of this entry point is compiler dependent.
|
||||
* It jumps to the BSP which is responsible for performing
|
||||
* all initialization.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-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"
|
||||
|
||||
#if (M68K_COLDFIRE_ARCH == 0) /* All ColdFire BSPs must provide their own start vector */
|
||||
|
||||
BEGIN_CODE
|
||||
| Default entry points for:
|
||||
PUBLIC (start) | GNU
|
||||
PUBLIC (M68Kvec) | Vector Table
|
||||
|
||||
SYM (start):
|
||||
SYM (M68Kvec): | standard location for vectors
|
||||
nop | for linkers with problem
|
||||
| location zero
|
||||
jmp SYM (start_around)
|
||||
|
||||
/*
|
||||
* We can use the following space as our vector table
|
||||
* if the CPU has a VBR or we can save vector table in it
|
||||
* if the CPU does not.
|
||||
*/
|
||||
|
||||
.space 4088 | to avoid initial intr stack
|
||||
| from 135BUG on MVME13?
|
||||
| and start code at 0x4000
|
||||
SYM (vectors):
|
||||
.space 1016 | reserve space for rest of vectors
|
||||
|
||||
#if ( M68K_HAS_SEPARATE_STACKS == 1 )
|
||||
SYM (lowintstack):
|
||||
.space 4092 | reserve for interrupt stack
|
||||
SYM (hiintstack):
|
||||
.space 4 | end of interrupt stack
|
||||
#endif
|
||||
|
||||
PUBLIC (start_around)
|
||||
SYM (start_around):
|
||||
move.w sr, SYM (initial_sr)
|
||||
oriw #0x3700,sr | SUPV MODE,INTERRUPTS OFF!!!
|
||||
#if ( M68K_HAS_SEPARATE_STACKS == 1 )
|
||||
movec isp,a0
|
||||
move.l a0, SYM (initial_isp)
|
||||
movec usp,a0
|
||||
move.l a0, SYM (initial_usp)
|
||||
movec msp,a0
|
||||
move.l a0, SYM (initial_msp)
|
||||
#else
|
||||
move.l a7, SYM (initial_msp)
|
||||
#endif
|
||||
|
||||
|
|
||||
| zero out uninitialized data area
|
||||
|
|
||||
zerobss:
|
||||
moveal # SYM (end),a0 | find end of .bss
|
||||
moveal # SYM (bss_start),a1 | find beginning of .bss
|
||||
movel #0,d0
|
||||
|
||||
loop: movel #0,a1@+ | to zero out uninitialized
|
||||
cmpal a0,a1
|
||||
jlt loop | loop until _end reached
|
||||
|
||||
movel # SYM (stack_init),d0 | d0 = stop of stack
|
||||
andl #0xffffffc0,d0 | align it on 16 byte boundary
|
||||
movw #0x3700,sr | SUPV MODE,INTERRUPTS OFF!!!
|
||||
movel d0,a7 | set master stack pointer
|
||||
movel d0,a6 | set base pointer
|
||||
|
||||
/*
|
||||
* RTEMS should maintain a separate interrupt stack on CPUs
|
||||
* without one in hardware. This is currently not supported
|
||||
* on versions of the m68k without a HW intr stack.
|
||||
*/
|
||||
|
||||
#if ( M68K_HAS_SEPARATE_STACKS == 1 )
|
||||
lea SYM (hiintstack),a0 | a0 = high end of intr stack
|
||||
movec a0,isp | set interrupt stack
|
||||
#endif
|
||||
movel #0,a7@- | push environp
|
||||
movel #0,a7@- | push argv
|
||||
movel #0,a7@- | push argc
|
||||
|
||||
jsr SYM (boot_card)
|
||||
addl #12,a7
|
||||
|
||||
#if ( M68K_HAS_SEPARATE_STACKS == 1 )
|
||||
move.l SYM (initial_isp),a0
|
||||
movec a0,isp
|
||||
move.l SYM (initial_usp),a0
|
||||
movec a0,usp
|
||||
move.l SYM (initial_msp),a0
|
||||
movec a0,msp
|
||||
#else
|
||||
movea.l SYM (initial_msp),a7
|
||||
#endif
|
||||
move.w SYM (initial_sr),sr
|
||||
rts
|
||||
|
||||
END_CODE
|
||||
|
||||
BEGIN_DATA
|
||||
|
||||
PUBLIC (start_frame)
|
||||
SYM (start_frame):
|
||||
.space 4,0
|
||||
|
||||
END_DATA
|
||||
|
||||
BEGIN_BSS
|
||||
|
||||
PUBLIC (environ)
|
||||
.align 2
|
||||
SYM (environ):
|
||||
.long 0
|
||||
|
||||
PUBLIC (initial_isp)
|
||||
SYM (initial_isp):
|
||||
.space 4
|
||||
|
||||
PUBLIC (initial_msp)
|
||||
SYM (initial_msp):
|
||||
.space 4
|
||||
|
||||
PUBLIC (initial_usp)
|
||||
SYM (initial_usp):
|
||||
.space 4
|
||||
|
||||
PUBLIC (initial_sr)
|
||||
SYM (initial_sr):
|
||||
.space 2
|
||||
|
||||
END_DATA
|
||||
#endif
|
||||
END
|
||||
|
||||
|
||||
Reference in New Issue
Block a user