forked from Imagelibrary/rtems
Moved start code from lib/start to libbsp.
This commit is contained in:
@@ -24,7 +24,7 @@ MP_SUPPORT = $(MP_SUPPORT_$(HAS_MP)_V)
|
|||||||
|
|
||||||
# wrapup is the one that actually builds and installs the library
|
# wrapup is the one that actually builds and installs the library
|
||||||
# from the individual .rel files built in other directories
|
# from the individual .rel files built in other directories
|
||||||
SUB_DIRS = include startup clock console $(MP_SUPPORT) timer wrapup
|
SUB_DIRS = include start startup clock console $(MP_SUPPORT) timer wrapup
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
|
|||||||
@@ -5,13 +5,16 @@
|
|||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
top_builddir = .
|
top_builddir = ../../..
|
||||||
|
subdir = i960/cvme961/start
|
||||||
|
|
||||||
RTEMS_ROOT = @RTEMS_ROOT@
|
RTEMS_ROOT = @RTEMS_ROOT@
|
||||||
PROJECT_ROOT = @PROJECT_ROOT@
|
PROJECT_ROOT = @PROJECT_ROOT@
|
||||||
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
|
|
||||||
|
PGM = ${ARCH}/start.o
|
||||||
|
|
||||||
# C source names, if any, go here -- minus the .c
|
# C source names, if any, go here -- minus the .c
|
||||||
C_PIECES =
|
C_PIECES =
|
||||||
C_FILES = $(C_PIECES:%=%.c)
|
C_FILES = $(C_PIECES:%=%.c)
|
||||||
@@ -24,16 +27,14 @@ S_PIECES = start
|
|||||||
S_FILES = $(S_PIECES:%=%.S)
|
S_FILES = $(S_PIECES:%=%.S)
|
||||||
S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
|
S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
|
||||||
|
|
||||||
SRCS = $(C_FILES) $(H_FILES) $(S_FILES)
|
SRCS = $(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
|
||||||
OBJS = $(C_O_FILES) $(S_O_FILES)
|
OBJS = $(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
|
||||||
|
|
||||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
include $(RTEMS_ROOT)/make/leaf.cfg
|
||||||
|
|
||||||
INSTALL_CHANGE = @INSTALL_CHANGE@
|
INSTALL_CHANGE = @INSTALL_CHANGE@
|
||||||
|
|
||||||
PGM = ${ARCH}/start.o
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# (OPTIONAL) Add local stuff here using +=
|
# (OPTIONAL) Add local stuff here using +=
|
||||||
#
|
#
|
||||||
@@ -61,4 +62,4 @@ all: ${ARCH} $(SRCS) $(OBJS) $(PGM)
|
|||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|||||||
@@ -5,13 +5,16 @@
|
|||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
top_builddir = .
|
top_builddir = ../../..
|
||||||
|
subdir = mips64orion/p4000/start
|
||||||
|
|
||||||
RTEMS_ROOT = @RTEMS_ROOT@
|
RTEMS_ROOT = @RTEMS_ROOT@
|
||||||
PROJECT_ROOT = @PROJECT_ROOT@
|
PROJECT_ROOT = @PROJECT_ROOT@
|
||||||
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
|
|
||||||
|
PGM = ${ARCH}/start.o
|
||||||
|
|
||||||
# C source names, if any, go here -- minus the .c
|
# C source names, if any, go here -- minus the .c
|
||||||
C_PIECES =
|
C_PIECES =
|
||||||
C_FILES = $(C_PIECES:%=%.c)
|
C_FILES = $(C_PIECES:%=%.c)
|
||||||
@@ -20,7 +23,7 @@ C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
|
|||||||
H_FILES =
|
H_FILES =
|
||||||
|
|
||||||
# Assembly source names, if any, go here -- minus the .S
|
# Assembly source names, if any, go here -- minus the .S
|
||||||
S_PIECES = idt_csu
|
S_PIECES = start
|
||||||
S_FILES = $(S_PIECES:%=%.S)
|
S_FILES = $(S_PIECES:%=%.S)
|
||||||
S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
|
S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
|
||||||
|
|
||||||
@@ -32,8 +35,6 @@ include $(RTEMS_ROOT)/make/leaf.cfg
|
|||||||
|
|
||||||
INSTALL_CHANGE = @INSTALL_CHANGE@
|
INSTALL_CHANGE = @INSTALL_CHANGE@
|
||||||
|
|
||||||
PGM = ${ARCH}/idt_csu.o
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# (OPTIONAL) Add local stuff here using +=
|
# (OPTIONAL) Add local stuff here using +=
|
||||||
#
|
#
|
||||||
@@ -61,4 +62,4 @@ all: ${ARCH} $(SRCS) $(OBJS) $(PGM)
|
|||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ INSTALL_CHANGE = @INSTALL_CHANGE@
|
|||||||
|
|
||||||
# wrapup is the one that actually builds and installs the library
|
# wrapup is the one that actually builds and installs the library
|
||||||
# from the individual .rel files built in other directories
|
# from the individual .rel files built in other directories
|
||||||
SUB_DIRS = include startup scitab wrapup
|
SUB_DIRS = include start startup scitab wrapup
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
|
|||||||
@@ -5,14 +5,15 @@
|
|||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
top_builddir = .
|
top_builddir = ../../..
|
||||||
|
subdir = sh/gensh1/start
|
||||||
|
|
||||||
RTEMS_ROOT = @RTEMS_ROOT@
|
RTEMS_ROOT = @RTEMS_ROOT@
|
||||||
PROJECT_ROOT = @PROJECT_ROOT@
|
PROJECT_ROOT = @PROJECT_ROOT@
|
||||||
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
|
|
||||||
PGMS = ${ARCH}/start.o
|
PGM = ${ARCH}/start.o
|
||||||
|
|
||||||
# C source names, if any, go here -- minus the .c
|
# C source names, if any, go here -- minus the .c
|
||||||
C_PIECES =
|
C_PIECES =
|
||||||
@@ -26,8 +27,8 @@ S_PIECES = start
|
|||||||
S_FILES = $(S_PIECES:%=%.S)
|
S_FILES = $(S_PIECES:%=%.S)
|
||||||
S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
|
S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
|
||||||
|
|
||||||
SRCS = $(C_FILES) $(H_FILES) $(S_FILES)
|
SRCS = $(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
|
||||||
OBJS = $(C_O_FILES) $(S_O_FILES)
|
OBJS = $(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
|
||||||
|
|
||||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
include $(RTEMS_ROOT)/make/leaf.cfg
|
||||||
@@ -46,11 +47,6 @@ LD_PATHS +=
|
|||||||
LD_LIBS +=
|
LD_LIBS +=
|
||||||
LDFLAGS +=
|
LDFLAGS +=
|
||||||
|
|
||||||
# force optimization, unless start.o will not work
|
|
||||||
# CFLAGS_PROFILE=
|
|
||||||
# CFLAGS_DEBUG=-O3
|
|
||||||
# CFLAGS_OPTIMIZE=-O3
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Add your list of files to delete here. The config files
|
# Add your list of files to delete here. The config files
|
||||||
# already know how to delete some stuff, so you may want
|
# already know how to delete some stuff, so you may want
|
||||||
@@ -62,8 +58,8 @@ CLEAN_ADDITIONS +=
|
|||||||
CLOBBER_ADDITIONS +=
|
CLOBBER_ADDITIONS +=
|
||||||
|
|
||||||
all: ${ARCH} $(SRCS) $(OBJS) $(PGM)
|
all: ${ARCH} $(SRCS) $(OBJS) $(PGM)
|
||||||
@$(INSTALL_VARIANT) -m 755 ${PGMS} $(PROJECT_RELEASE)/lib
|
$(INSTALL_VARIANT) -m 755 ${PGM} $(PROJECT_RELEASE)/lib
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|||||||
@@ -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@
|
|
||||||
|
|
||||||
# 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@
|
|
||||||
|
|
||||||
PGM = ${ARCH}/start.o
|
|
||||||
|
|
||||||
#
|
|
||||||
# (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 ${PGM} $(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-i960,$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,110 +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"
|
|
||||||
|
|
||||||
BEGIN_CODE
|
|
||||||
PUBLIC(start) # GNU960 default entry point
|
|
||||||
|
|
||||||
SYM(start):
|
|
||||||
mov 3, r12
|
|
||||||
modpc r12, r12, r12 # enable tracing/trace faults
|
|
||||||
mov g5, g5 # NOP
|
|
||||||
mov 0, g14 # initialize constant for C
|
|
||||||
|
|
||||||
/*
|
|
||||||
* zero out uninitialized data area
|
|
||||||
*/
|
|
||||||
zerobss:
|
|
||||||
lda _end, r4 /* find end of .bss */
|
|
||||||
lda _bss_start, r5 /* find beginning of .bss */
|
|
||||||
ldconst 0, r6
|
|
||||||
|
|
||||||
loop: st r6, (r5) /* to zero out uninitialized */
|
|
||||||
addo 4, r5, r5 /* data area */
|
|
||||||
cmpobl r5, r4, loop /* loop until _end reached */
|
|
||||||
|
|
||||||
/* set up stack pointer:
|
|
||||||
* The heap will begin at '_end'; its length is 'heap_size'
|
|
||||||
* bytes. The stack will begin at the first 64-byte-aligned
|
|
||||||
* block after the heap.
|
|
||||||
*
|
|
||||||
* A default value of 'heap_size' is set by linking with libnindy.a
|
|
||||||
* The default can be overridden by redefining this symbol at link
|
|
||||||
* time (with a line of the form 'heap_size=XXXX;' in the lnk960
|
|
||||||
* linker specification file; or one of the form
|
|
||||||
* "-defsym heap_size=XXXX" on the gld960 invocation line).
|
|
||||||
*/
|
|
||||||
|
|
||||||
ldconst _end, sp /* set sp = address of end of heap */
|
|
||||||
lda heap_size(sp),sp
|
|
||||||
lda 64(sp), sp /* Now round up to 64-byte boundary */
|
|
||||||
ldconst 0xffffffc0, r12
|
|
||||||
and r12, sp, sp
|
|
||||||
st sp, _stack_start /* Save for brk() routine */
|
|
||||||
|
|
||||||
call init_frames
|
|
||||||
ret /* return to monitor */
|
|
||||||
|
|
||||||
init_frames:
|
|
||||||
mov 0, g14 /* initialize constant for C */
|
|
||||||
ldconst 0x3b001000, g0
|
|
||||||
ldconst 0x00009107, g1
|
|
||||||
modac g1, g0, g0 /* set AC controls */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* remember the frame, so that we can set it up if necessary
|
|
||||||
*/
|
|
||||||
|
|
||||||
st fp, _start_frame
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Call application boot_card.
|
|
||||||
* Someday, real values of argc and argv will be set up.
|
|
||||||
* For now, they are set to 0.
|
|
||||||
*/
|
|
||||||
ldconst 0,g0
|
|
||||||
ldconst 0,g1
|
|
||||||
ldconst 0,g2
|
|
||||||
call _boot_card
|
|
||||||
ret
|
|
||||||
|
|
||||||
END_CODE
|
|
||||||
|
|
||||||
BEGIN_DATA
|
|
||||||
|
|
||||||
PUBLIC(_start_frame)
|
|
||||||
PUBLIC(start_frame)
|
|
||||||
SYM (_start_frame):
|
|
||||||
SYM (start_frame):
|
|
||||||
.word 0 # addr of first user frame: for gdb960
|
|
||||||
|
|
||||||
PUBLIC(_stack_start)
|
|
||||||
PUBLIC(stack_start)
|
|
||||||
SYM (_stack_start):
|
|
||||||
SYM (stack_start):
|
|
||||||
.word 0 # addr of first user frame: for gdb960
|
|
||||||
|
|
||||||
END_DATA
|
|
||||||
|
|
||||||
BEGIN_BSS
|
|
||||||
PUBLIC(heap_size)
|
|
||||||
.set heap_size,0x2000
|
|
||||||
END_BSS
|
|
||||||
|
|
||||||
END
|
|
||||||
@@ -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@
|
|
||||||
|
|
||||||
# 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 = idt_csu
|
|
||||||
S_FILES = $(S_PIECES:%=%.S)
|
|
||||||
S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
|
|
||||||
|
|
||||||
SRCS = $(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
|
|
||||||
OBJS = $(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
|
|
||||||
|
|
||||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
|
||||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
|
||||||
|
|
||||||
INSTALL_CHANGE = @INSTALL_CHANGE@
|
|
||||||
|
|
||||||
PGM = ${ARCH}/idt_csu.o
|
|
||||||
|
|
||||||
#
|
|
||||||
# (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 ${PGM} $(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(idt_csu.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-mips64orion,$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,299 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Based upon IDT provided code with the following release:
|
|
||||||
|
|
||||||
This source code has been made available to you by IDT on an AS-IS
|
|
||||||
basis. Anyone receiving this source is licensed under IDT copyrights
|
|
||||||
to use it in any way he or she deems fit, including copying it,
|
|
||||||
modifying it, compiling it, and redistributing it either with or
|
|
||||||
without modifications. No license under IDT patents or patent
|
|
||||||
applications is to be implied by the copyright license.
|
|
||||||
|
|
||||||
Any user of this software should understand that IDT cannot provide
|
|
||||||
technical support for this software and will not be responsible for
|
|
||||||
any consequences resulting from the use of this software.
|
|
||||||
|
|
||||||
Any person who transfers this source code or any derivative work must
|
|
||||||
include the IDT copyright notice, this paragraph, and the preceeding
|
|
||||||
two paragraphs in the transferred software.
|
|
||||||
|
|
||||||
COPYRIGHT IDT CORPORATION 1996
|
|
||||||
LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
|
|
||||||
|
|
||||||
$Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright 1991-95 Integrated Device Technology, Inc.
|
|
||||||
** All Rights Reserved
|
|
||||||
**
|
|
||||||
** idt_csu.S -- IDT stand alone startup code
|
|
||||||
**
|
|
||||||
**************************************************************************/
|
|
||||||
#include <iregdef.h>
|
|
||||||
#include <idtcpu.h>
|
|
||||||
#include <idtmon.h>
|
|
||||||
|
|
||||||
|
|
||||||
.extern _fbss,4 /* this is defined by the linker */
|
|
||||||
.extern end,4 /* this is defined by the linker */
|
|
||||||
|
|
||||||
.lcomm sim_mem_cfg_struct,12
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
|
|
||||||
#define TMP_STKSIZE 1024
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
**
|
|
||||||
** start - Typicl standalone start up code required for R3000/R4000
|
|
||||||
**
|
|
||||||
**
|
|
||||||
** 1) Initialize the STATUS Register
|
|
||||||
** a) Clear parity error bit
|
|
||||||
** b) Set co_processor 1 usable bit ON
|
|
||||||
** c) Clear all IntMask Enables
|
|
||||||
** d) Set kernel/disabled mode
|
|
||||||
** 2) Initialize Cause Register
|
|
||||||
** a) clear software interrupt bits
|
|
||||||
** 3) Determine FPU installed or not
|
|
||||||
** if not, clear CoProcessor 1 usable bit
|
|
||||||
** 4) Clear bss area
|
|
||||||
** 5) MUST allocate temporary stack until memory size determined
|
|
||||||
** It MUST be uncached to prevent overwriting when caches are cleared
|
|
||||||
** 6) Install exception handlers
|
|
||||||
** 7) Determine memory and cache sizes
|
|
||||||
** 8) Establish permanent stack (cached or uncached as defined by bss)
|
|
||||||
** 9) Flush Instruction and Data caches
|
|
||||||
** 10) If there is a Translation Lookaside Buffer, Clear the TLB
|
|
||||||
** 11) Execute initialization code if the IDT/c library is to be used
|
|
||||||
**
|
|
||||||
** 12) Jump to user's "main()"
|
|
||||||
** 13) Jump to promexit
|
|
||||||
**
|
|
||||||
** IDT/C 5.x defines _R3000, IDT/C 6.x defines _R4000 internally.
|
|
||||||
** This is used to mark code specific to R3xxx or R4xxx processors.
|
|
||||||
** IDT/C 6.x defines __mips to be the ISA level for which we're
|
|
||||||
** generating code. This is used to make sure the stack etc. is
|
|
||||||
** double word aligned, when using -mips3 (default) or -mips2,
|
|
||||||
** when compiling with IDT/C6.x
|
|
||||||
**
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
FRAME(start,sp,0,ra)
|
|
||||||
|
|
||||||
.set noreorder
|
|
||||||
#ifdef _R3000
|
|
||||||
li v0,SR_PE|SR_CU1 /* reset parity error and set */
|
|
||||||
/* cp1 usable */
|
|
||||||
#endif
|
|
||||||
#ifdef _R4000
|
|
||||||
#if __mips==3 || defined(R4650)
|
|
||||||
li v0,SR_CU1|SR_DE|SR_FR /* initally clear ERL, enable FPA 64bit regs*/
|
|
||||||
/* 4650: Need fr to be set anyway */
|
|
||||||
#else
|
|
||||||
li v0,SR_CU1|SR_DE /* initally clear ERL, enable FPA 32bit regs*/
|
|
||||||
#endif mips3
|
|
||||||
#endif
|
|
||||||
|
|
||||||
mtc0 v0,C0_SR /* clr IntMsks/ kernel/disabled mode */
|
|
||||||
nop
|
|
||||||
mtc0 zero,C0_CAUSE /* clear software interrupts */
|
|
||||||
nop
|
|
||||||
|
|
||||||
#ifdef _R4000
|
|
||||||
li v0,CFG_C_NONCOHERENT # initialise default cache mode
|
|
||||||
mtc0 v0,C0_CONFIG
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** check to see if an fpu is really plugged in
|
|
||||||
*/
|
|
||||||
li t3,0xaaaa5555 /* put a's and 5's in t3 */
|
|
||||||
mtc1 t3,fp0 /* try to write them into fp0 */
|
|
||||||
mtc1 zero,fp1 /* try to write zero in fp */
|
|
||||||
mfc1 t0,fp0
|
|
||||||
mfc1 t1,fp1
|
|
||||||
nop
|
|
||||||
bne t0,t3,1f /* branch if no match */
|
|
||||||
nop
|
|
||||||
bne t1,zero,1f /* double check for positive id */
|
|
||||||
nop
|
|
||||||
/* We have a FPU. clear fcsr */
|
|
||||||
ctc1 zero, fcr31
|
|
||||||
j 2f /* status register already correct */
|
|
||||||
nop
|
|
||||||
1:
|
|
||||||
#ifdef _R3000
|
|
||||||
li v0, SR_PE /* reset parity error/NO cp1 usable */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _R4000
|
|
||||||
li v0,SR_DE /* clear ERL and disable FPA */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
mtc0 v0, C0_SR /* reset status register */
|
|
||||||
2:
|
|
||||||
la gp, _gp
|
|
||||||
|
|
||||||
la v0,_fbss /* clear bss before using it */
|
|
||||||
la v1,end /* end of bss */
|
|
||||||
3: sw zero,0(v0)
|
|
||||||
bltu v0,v1,3b
|
|
||||||
add v0,4
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
|
||||||
**
|
|
||||||
** Temporary Stack - needed to handle stack saves until
|
|
||||||
** memory size is determined and permanent stack set
|
|
||||||
**
|
|
||||||
** MUST be uncached to avoid confusion at cache
|
|
||||||
** switching during memory sizing
|
|
||||||
**
|
|
||||||
*************************************************************************/
|
|
||||||
#if __mips==3
|
|
||||||
/* For MIPS 3, we need to be sure that the stack is aligned on a
|
|
||||||
* double word boundary.
|
|
||||||
*/
|
|
||||||
andi t0, v0, 0x7
|
|
||||||
beqz t0, 11f /* Last three bits Zero, already aligned */
|
|
||||||
nop
|
|
||||||
add v0, 4
|
|
||||||
11:
|
|
||||||
#endif
|
|
||||||
|
|
||||||
or v0, K1BASE /* switch to uncached */
|
|
||||||
add v1, v0, TMP_STKSIZE /* end of bss + length of tmp stack */
|
|
||||||
sub v1, v1, (4*4) /* overhead */
|
|
||||||
move sp, v1 /* set sp to top of stack */
|
|
||||||
4: sw zero, 0(v0)
|
|
||||||
bltu v0, v1, 4b /* clear out temp stack */
|
|
||||||
add v0, 4
|
|
||||||
|
|
||||||
jal init_exc_vecs /* install exception handlers */
|
|
||||||
nop /* MUST do before memory probes */
|
|
||||||
|
|
||||||
la v0, 5f
|
|
||||||
li v1, K1BASE /* force into uncached space */
|
|
||||||
or v0, v1 /* during memory/cache probes */
|
|
||||||
j v0
|
|
||||||
nop
|
|
||||||
5:
|
|
||||||
la a0, sim_mem_cfg_struct
|
|
||||||
jal sim_mem_cfg /* Make SIM call to get mem size */
|
|
||||||
nop
|
|
||||||
la a0, sim_mem_cfg_struct
|
|
||||||
lw a0, 0(a0) /* Get memory size from struct */
|
|
||||||
#ifdef _R3000
|
|
||||||
jal config_Icache
|
|
||||||
nop
|
|
||||||
jal config_Dcache /* determine size of D & I caches */
|
|
||||||
nop
|
|
||||||
#endif
|
|
||||||
#ifdef _R4000
|
|
||||||
jal config_cache /* determine size of D & I caches */
|
|
||||||
nop
|
|
||||||
#endif
|
|
||||||
|
|
||||||
move v0, a0 /* mem_size */
|
|
||||||
|
|
||||||
#if __mips==3
|
|
||||||
/* For MIPS 3, we need to be sure that the stack (and hence v0
|
|
||||||
* here) is aligned on a double word boundary.
|
|
||||||
*/
|
|
||||||
andi t0, v0, 0x7
|
|
||||||
beqz t0, 12f /* Last three bits Zero, already aligned */
|
|
||||||
nop
|
|
||||||
subu v0, 4 /* mem_size was not aligned on doubleword bdry????*/
|
|
||||||
12:
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
**
|
|
||||||
** Permanent Stack - now know top of memory, put permanent stack there
|
|
||||||
**
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
la t2, _fbss /* cache mode as linked */
|
|
||||||
and t2, 0xF0000000 /* isolate segment */
|
|
||||||
la t1, 6f
|
|
||||||
j t1 /* back to original cache mode */
|
|
||||||
nop
|
|
||||||
6:
|
|
||||||
or v0, t2 /* stack back to original cache mode */
|
|
||||||
addiu v0,v0,-16 /* overhead */
|
|
||||||
move sp, v0 /* now replace count w top of memory */
|
|
||||||
move v1, v0
|
|
||||||
subu v1, P_STACKSIZE /* clear requested stack size */
|
|
||||||
|
|
||||||
7: sw zero, 0(v1) /* clear P_STACKSIZE stack */
|
|
||||||
bltu v1,v0,7b
|
|
||||||
add v1, 4
|
|
||||||
.set reorder
|
|
||||||
|
|
||||||
#ifdef _R3000
|
|
||||||
jal flush_Icache
|
|
||||||
jal flush_Dcache /* flush Data & Instruction caches */
|
|
||||||
#endif
|
|
||||||
#ifdef _R4000
|
|
||||||
jal flush_cache_nowrite /* flush Data & Instruction caches */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
**
|
|
||||||
** If this chip supports a Translation Lookaside Buffer, clear it
|
|
||||||
**
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
.set noreorder
|
|
||||||
mfc0 t1, C0_SR /* look at Status Register */
|
|
||||||
nop
|
|
||||||
.set reorder
|
|
||||||
#ifdef _R3000
|
|
||||||
li t2, SR_TS /* TLB Shutdown bit */
|
|
||||||
and t1,t2 /* TLB Shutdown if 1 */
|
|
||||||
bnez t1, 8f /* skip clearing if no TLB */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef R4650
|
|
||||||
jal init_tlb /* clear the tlb */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
|
||||||
**
|
|
||||||
** Initialization required if using IDT/c or libc.a, standard C Lib
|
|
||||||
**
|
|
||||||
** can SKIP if not necessary for application
|
|
||||||
**
|
|
||||||
************************************************************************/
|
|
||||||
8:
|
|
||||||
|
|
||||||
jal idtsim_init_sbrk
|
|
||||||
jal idtsim_init_file
|
|
||||||
/*********************** END I/O initialization **********************/
|
|
||||||
|
|
||||||
|
|
||||||
jal main
|
|
||||||
|
|
||||||
jal idtsim_promexit
|
|
||||||
|
|
||||||
ENDFRAME(start)
|
|
||||||
|
|
||||||
|
|
||||||
.globl sim_mem_cfg
|
|
||||||
sim_mem_cfg:
|
|
||||||
.set noat
|
|
||||||
.set noreorder
|
|
||||||
li AT, (0xbfc00000+((55)*8))
|
|
||||||
jr AT
|
|
||||||
nop
|
|
||||||
.set at
|
|
||||||
.set reorder
|
|
||||||
@@ -1,69 +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 +=
|
|
||||||
|
|
||||||
# force optimization, unless 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=$@ 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-sh,$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,94 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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
|
|
||||||
Reference in New Issue
Block a user