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