summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/mips
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2003-01-03 16:45:10 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2003-01-03 16:45:10 +0000
commit8f10c925f6a4a02a870d16057ec9e57f5c6ee2c3 (patch)
tree75d0e71c5d80ebf8523fe3c2859d1c03b53eb10b /c/src/lib/libbsp/mips
parent2003-01-03 Eugeny S. Mints <Eugeny.Mints@oktet.ru> (diff)
downloadrtems-8f10c925f6a4a02a870d16057ec9e57f5c6ee2c3.tar.bz2
2002-12-08 Greg Menke <gregory.menke@gsfc.nasa.gov>
* bsp_specs: Added crtbegin/crtend and INIT_FINI for C++ support. * linkcmds: Added .init, .fini & related sections.
Diffstat (limited to 'c/src/lib/libbsp/mips')
-rw-r--r--c/src/lib/libbsp/mips/genmongoosev/ChangeLog5
-rw-r--r--c/src/lib/libbsp/mips/genmongoosev/bsp_specs9
-rw-r--r--c/src/lib/libbsp/mips/genmongoosev/start/start.S13
-rw-r--r--c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds35
-rw-r--r--c/src/lib/libbsp/mips/jmr3904/ChangeLog5
-rw-r--r--c/src/lib/libbsp/mips/jmr3904/bsp_specs8
-rw-r--r--c/src/lib/libbsp/mips/jmr3904/startup/linkcmds49
7 files changed, 91 insertions, 33 deletions
diff --git a/c/src/lib/libbsp/mips/genmongoosev/ChangeLog b/c/src/lib/libbsp/mips/genmongoosev/ChangeLog
index 2f8f689ecf..f5d360264c 100644
--- a/c/src/lib/libbsp/mips/genmongoosev/ChangeLog
+++ b/c/src/lib/libbsp/mips/genmongoosev/ChangeLog
@@ -1,3 +1,8 @@
+2002-12-08 Greg Menke <gregory.menke@gsfc.nasa.gov>
+
+ * bsp_specs: Added crtbegin/crtend and INIT_FINI for C++ support.
+ * linkcmds: Added .init, .fini & related sections.
+
2002-12-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
diff --git a/c/src/lib/libbsp/mips/genmongoosev/bsp_specs b/c/src/lib/libbsp/mips/genmongoosev/bsp_specs
index 20bb94652c..c4b277e75b 100644
--- a/c/src/lib/libbsp/mips/genmongoosev/bsp_specs
+++ b/c/src/lib/libbsp/mips/genmongoosev/bsp_specs
@@ -5,7 +5,7 @@
%rename link old_link
*cpp:
-%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded)
+%(old_cpp) %{qrtems: -D__embedded__ -D__USE_INIT_FINI__ } -Asystem(embedded)
*lib:
%{!qrtems: %(old_lib)} %{!nostdlib: %{qrtems: --start-group \
@@ -15,9 +15,12 @@
*startfile:
%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: \
-%{!qnostartfile: %{!qrtems_debug: start.o%s} \
- %{qrtems_debug: start_g.o%s}}}}
+ %{!qnostartfile: %{!qrtems_debug: start.o%s} \
+ %{qrtems_debug: start_g.o%s}} crti.o%s crtbegin.o%s }}
*link:
%(old_link) %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start}
+*endfile:
+%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s }
+
diff --git a/c/src/lib/libbsp/mips/genmongoosev/start/start.S b/c/src/lib/libbsp/mips/genmongoosev/start/start.S
index 95761abd48..1076b8255d 100644
--- a/c/src/lib/libbsp/mips/genmongoosev/start/start.S
+++ b/c/src/lib/libbsp/mips/genmongoosev/start/start.S
@@ -411,9 +411,9 @@ zerobss:
** Function: _init
*/
.globl exit .text
- .globl _init
- .ent _init
-_init:
+ .globl _initialize_rtems
+ .ent _initialize_rtems
+_initialize_rtems:
/*
** Print 'i'. Starting to initialize RTEMS.
@@ -445,7 +445,7 @@ _init:
*/
jal _sys_exit
nop
- .end _init
+ .end _initialize_rtems
/**********************************************************************
@@ -578,7 +578,10 @@ _cpuinit:
# INV = 0: 1 : Disable invalidate mode
# LOCK = 0: 0 : Disable cache lock
#
- li t0,0x00027AA0
+ # 0x00027AA0 caches on
+ # 0x00027220 caches off
+ #
+ li t0,0x00027aa0
sw t0,M_BIU
#
diff --git a/c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds b/c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds
index 21f2e55398..f8d68486a8 100644
--- a/c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds
+++ b/c/src/lib/libbsp/mips/genmongoosev/startup/linkcmds
@@ -14,7 +14,7 @@
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x80000000;
_RamSize = DEFINED(_RamSize) ? _RamSize : 32M;
HeapSize = DEFINED(HeapSize) ? HeapSize : 0x40000;
-_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;
+_StackSize = DEFINED(_StackSize) ? _StackSize : 0x4000;
ClockRate = DEFINED(ClockRate) ? ClockRate : 12000000;
@@ -29,11 +29,11 @@ SECTIONS
.text :
{
_ftext = . ;
- *(.init)
- eprol = .;
+
+ */start.o(.text)
+
*(.text)
*(.text.*)
- *(.eh_frame)
*(.gnu.linkonce.t*)
*(.mips16.fn.*)
*(.mips16.call.*)
@@ -41,10 +41,25 @@ SECTIONS
*(.rel.sdata)
*(.rel.dyn)
PROVIDE (__runtime_reloc_stop = .);
- *(.fini)
+
*(.gcc_except_table)
+ *(.eh_frame_hdr)
+ *(.eh_frame)
} >ram
+ .init :
+ {
+ KEEP(*(.init))
+
+ } > ram
+
+ .fini :
+ {
+ KEEP(*(.fini))
+
+ } > ram
+
+
.ctors :
{
/* gcc uses crtbegin.o to find the start of
@@ -99,13 +114,17 @@ SECTIONS
*(.gnu.linkonce.d*)
} >ram
-
- .lit8 :
+ .jcr :
{
. = ALIGN(8);
+ KEEP (*(.jcr))
- _gp = . + 0x8000;
+ _gp = ALIGN(16) + 0x7440;
__global = _gp;
+ } >ram
+
+ .lit8 :
+ {
*(.lit8)
} >ram
diff --git a/c/src/lib/libbsp/mips/jmr3904/ChangeLog b/c/src/lib/libbsp/mips/jmr3904/ChangeLog
index b10468ab21..d3aa899ac0 100644
--- a/c/src/lib/libbsp/mips/jmr3904/ChangeLog
+++ b/c/src/lib/libbsp/mips/jmr3904/ChangeLog
@@ -1,3 +1,8 @@
+2002-12-08 Greg Menke <gregory.menke@gsfc.nasa.gov>
+
+ * bsp_specs: Added crtbegin/crtend and INIT_FINI for C++ support.
+ * linkcmds: Added .init, .fini & related sections.
+
2002-12-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
diff --git a/c/src/lib/libbsp/mips/jmr3904/bsp_specs b/c/src/lib/libbsp/mips/jmr3904/bsp_specs
index 29eebcc50e..f60e4cfe73 100644
--- a/c/src/lib/libbsp/mips/jmr3904/bsp_specs
+++ b/c/src/lib/libbsp/mips/jmr3904/bsp_specs
@@ -5,7 +5,7 @@
%rename link old_link
*cpp:
-%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded)
+%(old_cpp) %{qrtems: -D__embedded__ -D__USE_INIT_FINI__} -Asystem(embedded)
*lib:
%{!qrtems: %(old_lib)} %{!nostdlibs: %{qrtems: --start-group \
@@ -16,9 +16,11 @@
*startfile:
%{!qrtems: %(old_startfile)} %{!nostdlibs: %{qrtems: \
-%{!qrtems_debug: start.o%s} \
-%{qrtems_debug: start_g.o%s}}}
+ %{!qrtems_debug: start.o%s} \
+ %{qrtems_debug: start_g.o%s} crti.o%s crtbegin.o%s }}
*link:
%(old_link) %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start}
+*endfile:
+%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s }
diff --git a/c/src/lib/libbsp/mips/jmr3904/startup/linkcmds b/c/src/lib/libbsp/mips/jmr3904/startup/linkcmds
index 0c52ba4b3e..02b9d192a2 100644
--- a/c/src/lib/libbsp/mips/jmr3904/startup/linkcmds
+++ b/c/src/lib/libbsp/mips/jmr3904/startup/linkcmds
@@ -22,16 +22,27 @@ SECTIONS
*(.text)
*(.text.*)
*(.gnu.linkonce.t*)
- *(.init)
*(.mips16.fn.*)
*(.mips16.call.*)
PROVIDE (__runtime_reloc_start = .);
*(.rel.sdata)
PROVIDE (__runtime_reloc_stop = .);
- *(.fini)
- etext = .;
- _etext = .;
- }
+
+ *(.gcc_except_table)
+ *(.eh_frame_hdr)
+ *(.eh_frame)
+ }
+
+ .init :
+ {
+ KEEP(*(.init))
+ }
+
+ .fini :
+ {
+ KEEP(*(.fini))
+ }
+
.ctors :
{
/* gcc uses crtbegin.o to find the start of
@@ -62,9 +73,11 @@ SECTIONS
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
+
+ etext = .;
+ _etext = .;
}
- . = .;
.rdata : {
*(.rdata)
*(.rodata)
@@ -72,30 +85,38 @@ SECTIONS
*(.gnu.linkonce.r*)
}
_fdata = ALIGN(16);
+
.data : {
*(.data)
*(.data.*)
*(.gnu.linkonce.d*)
- SORT(CONSTRUCTORS)
+ SORT(CONSTRUCTORS)
}
. = ALIGN(8);
- _gp = . + 0x8000;
+
+ .jcr : {
+ KEEP (*(.jcr))
+ }
+
+ _gp = ALIGN(16) + 0x7440;
__global = _gp;
+
+ .sdata : {
+ *(.sdata)
+ *(.sdata.*)
+ *(.gnu.linkonce.s*)
+ }
.lit8 : {
*(.lit8)
}
.lit4 : {
*(.lit4)
}
- .sdata : {
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s*)
- }
- . = ALIGN(4);
+
edata = .;
_edata = .;
_fbss = .;
+
.sbss : {
*(.sbss)
*(.scommon)