summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-01-12 16:38:56 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-01-12 16:38:56 +0000
commit69537ca9eccfa12142dea588fa34b70a6d220705 (patch)
tree6480f82ae96a1614df3d0719635213e194dc66ae /c/src/lib/libbsp/m68k
parentCalled symbol table ".nm" not .num like every other BSP. (diff)
downloadrtems-69537ca9eccfa12142dea588fa34b70a6d220705.tar.bz2
Patch rtems-rc-20000104-16.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that converts the libbsp/i386 subdirectory to full automake.
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c10
-rw-r--r--c/src/lib/libbsp/m68k/efi332/include/bsp.h8
-rw-r--r--c/src/lib/libbsp/m68k/efi332/start/start.c8
-rw-r--r--c/src/lib/libbsp/m68k/efi68k/include/bsp.h8
-rw-r--r--c/src/lib/libbsp/m68k/efi68k/start/start.c8
-rw-r--r--c/src/lib/libbsp/m68k/gen68302/start/start.S6
-rw-r--r--c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c4
-rw-r--r--c/src/lib/libbsp/m68k/gen68340/start/start.S20
-rw-r--r--c/src/lib/libbsp/m68k/gen68360/start/start.S2
-rw-r--r--c/src/lib/libbsp/m68k/gen68360/startup/Makefile.in2
-rw-r--r--c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp84
-rw-r--r--c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom82
-rw-r--r--c/src/lib/libbsp/m68k/idp/startup/bspstart.c4
-rw-r--r--c/src/lib/libbsp/m68k/ods68302/start/reset.S8
-rw-r--r--c/src/lib/libbsp/m68k/shared/start.S6
15 files changed, 142 insertions, 118 deletions
diff --git a/c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c b/c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c
index 9fea220c0c..be4acce753 100644
--- a/c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c
+++ b/c/src/lib/libbsp/m68k/dmv152/startup/bspstart.c
@@ -56,14 +56,10 @@ void bsp_libc_init( void *, unsigned32, int );
void bsp_pretasking_hook(void)
{
- extern int end;
- rtems_unsigned32 heap_start;
+ extern void *_HeapStart;
+ extern rtems_unsigned32 _HeapSize;
- heap_start = (rtems_unsigned32) &end;
- if (heap_start & (CPU_ALIGNMENT-1))
- heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
-
- bsp_libc_init((void *) heap_start, 64 * 1024, 0);
+ bsp_libc_init( &_HeapStart, _HeapSize, 0 );
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
diff --git a/c/src/lib/libbsp/m68k/efi332/include/bsp.h b/c/src/lib/libbsp/m68k/efi332/include/bsp.h
index 81e93ebeea..6e5ffea7d7 100644
--- a/c/src/lib/libbsp/m68k/efi332/include/bsp.h
+++ b/c/src/lib/libbsp/m68k/efi332/include/bsp.h
@@ -72,11 +72,11 @@ extern "C" {
/* externals */
-extern char _endtext[];
-extern char _sdata[];
+extern char _etext[];
+extern char _copy_start[];
extern char _edata[];
-extern char __bss_start[];
-extern char _end[];
+extern char _bss_start[];
+extern char end[];
extern char _copy_data_from_rom[];
extern char __end_of_ram[];
diff --git a/c/src/lib/libbsp/m68k/efi332/start/start.c b/c/src/lib/libbsp/m68k/efi332/start/start.c
index ef7f2beffd..fa48e03ae2 100644
--- a/c/src/lib/libbsp/m68k/efi332/start/start.c
+++ b/c/src/lib/libbsp/m68k/efi332/start/start.c
@@ -31,7 +31,7 @@ void dumby_start() {
asm volatile ( "oriw #0x0700, %sr;
moveal #M68Kvec, %a0;
movec %a0, %vbr;
- movel #_end, %d0;
+ movel #end, %d0;
addl " STACK_SIZE ",%d0;
movel %d0,%sp;
movel %d0,%a6"
@@ -198,8 +198,8 @@ void dumby_start() {
* needed) and "zero-ing" the .bss section.
*/
{
- register char *src = _endtext;
- register char *dst = _sdata;
+ register char *src = _etext;
+ register char *dst = _copy_start;
if (_copy_data_from_rom)
/* ROM has data at end of text; copy it. */
@@ -207,7 +207,7 @@ void dumby_start() {
*dst++ = *src++;
/* Zero bss */
- for (dst = __bss_start; dst< _end; dst++)
+ for (dst = _bss_start; dst< end; dst++)
*dst = 0;
}
diff --git a/c/src/lib/libbsp/m68k/efi68k/include/bsp.h b/c/src/lib/libbsp/m68k/efi68k/include/bsp.h
index 62d74f77f3..eea1ea6348 100644
--- a/c/src/lib/libbsp/m68k/efi68k/include/bsp.h
+++ b/c/src/lib/libbsp/m68k/efi68k/include/bsp.h
@@ -72,11 +72,11 @@ extern "C" {
/* externals */
-extern char _endtext[];
-extern char _sdata[];
+extern char _etext[];
+extern char _copy_start[];
extern char _edata[];
-extern char __bss_start[];
-extern char _end[];
+extern char _bss_start[];
+extern char end[];
extern char _copy_data_from_rom[];
extern char __end_of_ram[];
diff --git a/c/src/lib/libbsp/m68k/efi68k/start/start.c b/c/src/lib/libbsp/m68k/efi68k/start/start.c
index f63381c57f..ea6973ee11 100644
--- a/c/src/lib/libbsp/m68k/efi68k/start/start.c
+++ b/c/src/lib/libbsp/m68k/efi68k/start/start.c
@@ -30,7 +30,7 @@ void boot_card();
/* disable interrupts, load stack pointer */
asm volatile ( "oriw #0x0700, %sr;
- movel #_end, %d0;
+ movel #end, %d0;
addl " STACK_SIZE ",%d0;
movel %d0,%sp;
link %a6, #0"
@@ -40,8 +40,8 @@ void boot_card();
* needed) and "zero-ing" the .bss section.
*/
{
- register char *src = _endtext;
- register char *dst = _sdata;
+ register char *src = _etext;
+ register char *dst = _copy_start;
if (_copy_data_from_rom)
/* ROM has data at end of text; copy it. */
@@ -49,7 +49,7 @@ void boot_card();
*dst++ = *src++;
/* Zero bss */
- for (dst = __bss_start; dst< _end; dst++)
+ for (dst = _bss_start; dst< end; dst++)
*dst = 0;
}
diff --git a/c/src/lib/libbsp/m68k/gen68302/start/start.S b/c/src/lib/libbsp/m68k/gen68302/start/start.S
index 5e46b06edf..a3dd257fe7 100644
--- a/c/src/lib/libbsp/m68k/gen68302/start/start.S
+++ b/c/src/lib/libbsp/m68k/gen68302/start/start.S
@@ -197,15 +197,15 @@ cpy_Bad1: move.l d1,(a0)+
| zero out uninitialized data area
|
zerobss:
- moveal # SYM (end),a0 | find end of .bss
- moveal # SYM (bss_start),a1 | find beginning of .bss
+ moveal # SYM (_end),a0 | find end of .bss
+ moveal # SYM (_bss_start),a1 | find beginning of .bss
moveq #0,d0
loop: movel d0,a1@+ | to zero out uninitialized
cmpal a0,a1
jlt loop | loop until _end reached
- movel # SYM (end),d0 | d0 = end of bss/start of heap
+ movel # SYM (_end),d0 | d0 = end of bss/start of heap
addl # SYM (heap_size),d0 | d0 = end of heap
movel d0, SYM (stack_start) | Save for brk() routine
addl # SYM (stack_size),d0 | make room for stack
diff --git a/c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c b/c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c
index ac7666d1bd..ae5f6774df 100644
--- a/c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c
+++ b/c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c
@@ -56,10 +56,10 @@ void bsp_libc_init( void *, unsigned32, int );
void bsp_pretasking_hook(void)
{
- extern int end;
+ extern int _end;
rtems_unsigned32 heap_start;
- heap_start = (rtems_unsigned32) &end;
+ heap_start = (rtems_unsigned32) &_end;
if (heap_start & (CPU_ALIGNMENT-1))
heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
diff --git a/c/src/lib/libbsp/m68k/gen68340/start/start.S b/c/src/lib/libbsp/m68k/gen68340/start/start.S
index 43b4186eaf..3569118a8b 100644
--- a/c/src/lib/libbsp/m68k/gen68340/start/start.S
+++ b/c/src/lib/libbsp/m68k/gen68340/start/start.S
@@ -501,8 +501,8 @@ sync_wait349:
/*--------------------------------------------------------*/
/* -- copy to address of the 68349 initialization code -- */
- lea.l _copy_start(%pc),crt0_ptr3
- lea.l _copy_end(%pc),crt0_ptr4
+ lea.l _copy_start_code(%pc),crt0_ptr3
+ lea.l _copy_end_code(%pc),crt0_ptr4
move.l crt0_ptr4,crt0_temp
sub.l crt0_ptr3,crt0_temp
add.l #3,crt0_temp | adjust to next long word
@@ -518,7 +518,7 @@ _copy_loop:
/*------------------------------------*/
/* -- start of initialization code -- */
-_copy_start:
+_copy_start_code:
bra.l _begin_68349_init
/*----------------------------------------------------------*/
@@ -709,7 +709,7 @@ _init_cache_end:
jmp.l (_fill_test) | must be absolute long
-_copy_end:
+_copy_end_code:
/*-------------------------------------------------
initialization code for the 68340 board
@@ -812,11 +812,11 @@ _dont_fill:
*/
PUBLIC (_CopyDataClearBSSAndStart)
SYM(_CopyDataClearBSSAndStart):
- lea copy_start,a0 | Get start of DATA in RAM
- lea SYM(etext),a2 | Get start of DATA in ROM
+ lea SYM(_copy_start),a0 | Get start of DATA in RAM
+ lea SYM(_etext),a2 | Get start of DATA in ROM
cmpl a0,a2 | Are they the same?
beq.s NOCOPY | Yes, no copy necessary
- lea copy_end,a1 | Get end of DATA in RAM
+ lea SYM(_copy_end),a1 | Get end of DATA in RAM
bra.s COPYLOOPTEST | Branch into copy loop
COPYLOOP:
movel a2@+,a0@+ | Copy word from ROM to RAM
@@ -825,8 +825,8 @@ COPYLOOPTEST:
bcs.s COPYLOOP | No, skip
NOCOPY:
- lea clear_start,a0 | Get start of BSS
- lea clear_end,a1 | Get end of BSS
+ lea _clear_start,a0 | Get start of BSS
+ lea _clear_end,a1 | Get end of BSS
clrl d0 | Value to set
bra.s ZEROLOOPTEST | Branch into clear loop
ZEROLOOP:
@@ -835,7 +835,7 @@ ZEROLOOPTEST:
cmpl a1,a0 | Done?
bcs.s ZEROLOOP | No, skip
- movel #stack_init,a7 | set master stack pointer
+ movel #_stack_init,a7 | set master stack pointer
movel d0,a7@- | environp
movel d0,a7@- | argv
movel d0,a7@- | argc
diff --git a/c/src/lib/libbsp/m68k/gen68360/start/start.S b/c/src/lib/libbsp/m68k/gen68360/start/start.S
index 4a10e7748c..c3110c9780 100644
--- a/c/src/lib/libbsp/m68k/gen68360/start/start.S
+++ b/c/src/lib/libbsp/m68k/gen68360/start/start.S
@@ -394,7 +394,7 @@ ZEROLOOPTEST:
cmpl a1,a0 | Done?
bcs.s ZEROLOOP | No, skip
- movel #stack_init,a7 | set master stack pointer
+ movel #_stack_init,a7 | set master stack pointer
pea env | envp
pea arg | argv
movel d0,a7@- | argc
diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/Makefile.in b/c/src/lib/libbsp/m68k/gen68360/startup/Makefile.in
index 602d11b39c..771c89f5cb 100644
--- a/c/src/lib/libbsp/m68k/gen68360/startup/Makefile.in
+++ b/c/src/lib/libbsp/m68k/gen68360/startup/Makefile.in
@@ -42,7 +42,7 @@ $(INSTALLDIRS):
# (OPTIONAL) Add local stuff here using +=
#
-DEFINES +=
+DEFINES += -DUSE_INIT_FINI
CPPFLAGS +=
CFLAGS +=
diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp
index e89ea38e86..6661fc2c2a 100644
--- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp
+++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp
@@ -1,9 +1,9 @@
/*
* This file contains GNU linker directives for a generic MC68360 board.
- * Variations in hardware type and dynamic memory size can be made
- * by overriding some values with linker command-line arguments.
+ * Variations in memory size and allocation can be made by
+ * overriding some values with linker command-line arguments.
*
- * These linker directives are for producing a PROM version.
+ * These linker directives are for producing a bootstrap PROM version.
* The data segment is placed at the end of the text segment in the PROM.
* The start-up code takes care of copying this region to RAM.
*
@@ -11,15 +11,12 @@
* University of Saskatchewan
* Saskatoon, Saskatchewan, CANADA
* eric@skatter.usask.ca
- *
+ *
* $Id$
*/
/*
* Declare some sizes.
- * XXX: The assignment of ". += XyzSize;" fails in older gld's if the
- * number used there is not constant. If this happens to you, edit
- * the lines marked XXX below to use a constant value.
*/
HeapSize = DEFINED(HeapSize) ? HeapSize : 0x10000;
StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
@@ -43,7 +40,6 @@ SECTIONS {
*/
rom : {
_RomBase = .;
- __RomBase = .;
} >rom
/*
@@ -51,44 +47,66 @@ SECTIONS {
*/
ram : {
_RamBase = .;
- __RamBase = .;
} >ram
/*
* Text, data and bss segments
*/
- .text : AT (0x00000000) {
- CREATE_OBJECT_SYMBOLS
+ .text : AT(0x0) {
*(.text)
- . = ALIGN (16);
- *(.eh_fram)
- . = ALIGN (16);
+ /*
+ * C++ constructors/destructors
+ */
+ *(.gnu.linkonce.t.*)
/*
- * C++ constructors
+ * Initialization and finalization code.
*/
- __CTOR_LIST__ = .;
- LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
+ PROVIDE (_init = .);
+ *crti.o(.init)
+ *(.init)
+ *crtn.o(.init)
+ PROVIDE (_fini = .);
+ *crti.o(.fini)
+ *(.fini)
+ *crtn.o(.fini)
+
+ /*
+ * C++ constructors/destructors
+ */
+ . = ALIGN (16);
+ *crtbegin.o(.ctors)
*(.ctors)
- LONG(0)
- __CTOR_END__ = .;
- __DTOR_LIST__ = .;
- LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
+ *crtend.o(.ctors)
+ *crtbegin.o(.dtors)
*(.dtors)
- LONG(0)
- __DTOR_END__ = .;
+ *crtend.o(.dtors)
- . = ALIGN (16);
+ /*
+ * Exception frame info
+ */
+ . = ALIGN (16);
+ *(.eh_frame)
- etext = .;
- _etext = .;
- } >rom
+ /*
+ * Read-only data
+ */
+ . = ALIGN (16);
+ _rodata_start = . ;
+ *(.rodata)
+ *(.gnu.linkonce.r*)
+
+ . = ALIGN (16);
+ PROVIDE (etext = .);
+ } >rom
.data : AT(SIZEOF(.text)) {
copy_start = .;
*(.data)
+ *(.gnu.linkonce.d*)
+ *(.gcc_except_table)
. = ALIGN (16);
- _edata = .;
+ PROVIDE (_edata = .);
copy_end = .;
} >myram
.bss : {
@@ -99,20 +117,16 @@ SECTIONS {
*(.bss)
*(COMMON)
. = ALIGN (16);
- _end = .;
+ PROVIDE (end = .);
_HeapStart = .;
- __HeapStart = .;
- . += HeapSize; /* XXX -- Old gld can't handle this */
- . += StackSize; /* XXX -- Old gld can't handle this */
- /* . += 0x10000; */ /* HeapSize for old gld */
- /* . += 0x1000; */ /* StackSize for old gld */
+ . += HeapSize;
+ . += StackSize;
. = ALIGN (16);
stack_init = .;
clear_end = .;
_WorkspaceBase = .;
- __WorkspaceBase = .;
} >myram
/*
diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom
index b816761852..522bea54ca 100644
--- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom
+++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom
@@ -1,7 +1,7 @@
/*
* This file contains GNU linker directives for a generic MC68360 board.
- * Variations in hardware type and dynamic memory size can be made
- * by overriding some values with linker command-line arguments.
+ * Variations in memory size and allocation can be made by
+ * overriding some values with linker command-line arguments.
*
* These linker directives are for producing a PROM version.
* The data segment is placed at the end of the text segment in the PROM.
@@ -11,15 +11,12 @@
* University of Saskatchewan
* Saskatoon, Saskatchewan, CANADA
* eric@skatter.usask.ca
- *
+ *
* $Id$
*/
/*
* Declare some sizes.
- * XXX: The assignment of ". += XyzSize;" fails in older gld's if the
- * number used there is not constant. If this happens to you, edit
- * the lines marked XXX below to use a constant value.
*/
HeapSize = DEFINED(HeapSize) ? HeapSize : 0x10000;
StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
@@ -42,7 +39,6 @@ SECTIONS {
*/
rom : {
_RomBase = .;
- __RomBase = .;
} >rom
/*
@@ -50,44 +46,66 @@ SECTIONS {
*/
ram : {
_RamBase = .;
- __RamBase = .;
} >ram
/*
* Text, data and bss segments
*/
- .text : AT (0x00000000) {
- CREATE_OBJECT_SYMBOLS
+ .text : AT(0x0) {
*(.text)
- . = ALIGN (16);
- *(.eh_fram)
- . = ALIGN (16);
+ /*
+ * C++ constructors/destructors
+ */
+ *(.gnu.linkonce.t.*)
/*
- * C++ constructors
+ * Initialization and finalization code.
*/
- __CTOR_LIST__ = .;
- LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
+ PROVIDE (_init = .);
+ *crti.o(.init)
+ *(.init)
+ *crtn.o(.init)
+ PROVIDE (_fini = .);
+ *crti.o(.fini)
+ *(.fini)
+ *crtn.o(.fini)
+
+ /*
+ * C++ constructors/destructors
+ */
+ . = ALIGN (16);
+ *crtbegin.o(.ctors)
*(.ctors)
- LONG(0)
- __CTOR_END__ = .;
- __DTOR_LIST__ = .;
- LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
+ *crtend.o(.ctors)
+ *crtbegin.o(.dtors)
*(.dtors)
- LONG(0)
- __DTOR_END__ = .;
+ *crtend.o(.dtors)
- . = ALIGN (16);
+ /*
+ * Exception frame info
+ */
+ . = ALIGN (16);
+ *(.eh_frame)
- etext = .;
- _etext = .;
- } >rom
+ /*
+ * Read-only data
+ */
+ . = ALIGN (16);
+ _rodata_start = . ;
+ *(.rodata)
+ *(.gnu.linkonce.r*)
+
+ . = ALIGN (16);
+ PROVIDE (etext = .);
+ } >rom
.data : AT(SIZEOF(.text)) {
copy_start = .;
*(.data)
+ *(.gnu.linkonce.d*)
+ *(.gcc_except_table)
. = ALIGN (16);
- _edata = .;
+ PROVIDE (_edata = .);
copy_end = .;
} >ram
.bss : {
@@ -98,20 +116,16 @@ SECTIONS {
*(.bss)
*(COMMON)
. = ALIGN (16);
- _end = .;
+ PROVIDE (end = .);
_HeapStart = .;
- __HeapStart = .;
- . += HeapSize; /* XXX -- Old gld can't handle this */
- . += StackSize; /* XXX -- Old gld can't handle this */
- /* . += 0x10000; */ /* HeapSize for old gld */
- /* . += 0x1000; */ /* StackSize for old gld */
+ . += HeapSize;
+ . += StackSize;
. = ALIGN (16);
stack_init = .;
clear_end = .;
_WorkspaceBase = .;
- __WorkspaceBase = .;
} >ram
/*
diff --git a/c/src/lib/libbsp/m68k/idp/startup/bspstart.c b/c/src/lib/libbsp/m68k/idp/startup/bspstart.c
index a3bd194c32..d67cb92225 100644
--- a/c/src/lib/libbsp/m68k/idp/startup/bspstart.c
+++ b/c/src/lib/libbsp/m68k/idp/startup/bspstart.c
@@ -63,10 +63,10 @@ void bsp_libc_init( void *, unsigned32, int );
void bsp_pretasking_hook(void)
{
- extern int end;
+ extern int _end;
rtems_unsigned32 heap_start;
- heap_start = (rtems_unsigned32) &end;
+ heap_start = (rtems_unsigned32) &_end;
if (heap_start & (CPU_ALIGNMENT-1))
heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
diff --git a/c/src/lib/libbsp/m68k/ods68302/start/reset.S b/c/src/lib/libbsp/m68k/ods68302/start/reset.S
index 71d1071243..95447da7e1 100644
--- a/c/src/lib/libbsp/m68k/ods68302/start/reset.S
+++ b/c/src/lib/libbsp/m68k/ods68302/start/reset.S
@@ -438,9 +438,9 @@ copy_remap:
|
copy_data:
- moveal #etext,%a0 | find the end of .text
- moveal #data_start,%a1 | find the beginning of .data
- moveal #edata,%a2 | find the end of .data
+ moveal #_etext,%a0 | find the end of .text
+ moveal #_copy_start,%a1 | find the beginning of .data
+ moveal #_edata,%a2 | find the end of .data
copy_data_loop:
@@ -454,7 +454,7 @@ copy_data_loop:
zerobss:
moveal #end,%a0 | find end of .bss
- moveal #bss_start,%a1 | find beginning of .bss
+ moveal #_bss_start,%a1 | find beginning of .bss
moveq #0,%d0
zerobss_loop:
diff --git a/c/src/lib/libbsp/m68k/shared/start.S b/c/src/lib/libbsp/m68k/shared/start.S
index 6ab0974948..2791fab91e 100644
--- a/c/src/lib/libbsp/m68k/shared/start.S
+++ b/c/src/lib/libbsp/m68k/shared/start.S
@@ -68,15 +68,15 @@ SYM (start_around):
| zero out uninitialized data area
|
zerobss:
- moveal # SYM (end),a0 | find end of .bss
- moveal # SYM (bss_start),a1 | find beginning of .bss
+ 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
+ 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