This is the mail archive of the
ecos-patches@sources.redhat.com
mailing list for the eCos project.
fixes to current hal/mips/tx49/current/src/mips_tx49.ld
- From: "Andy Dyer" <adyer at righthandtech dot com>
- To: <ecos-patches at sources dot redhat dot com>
- Date: Tue, 5 Aug 2003 20:08:24 -0500
- Subject: fixes to current hal/mips/tx49/current/src/mips_tx49.ld
Index: tx49/current/src/mips_tx49.ld
===================================================================
RCS file:
/cvs/ecos/ecos/packages/hal/mips/tx49/current/src/mips_tx49.ld,v
This patch fixes a few misc. things in the tx49 linker file:
1) the "& defined(CYGPKG_IO)" was causing libextras.a not to
get built for a redboot configuration
2) the offsets for the exception vectors were wrong for
a ROM build of redboot. For R4000 class mips, the utlb vector
is at 0xbfc00200, and the general exception vector is at
0xbfc00380
3) the *.2ram sections were missing from the data segment
Index: tx49/current/src/mips_tx49.ld
===================================================================
RCS file:
/cvs/ecos/ecos/packages/hal/mips/tx49/current/src/mips_tx49.ld,v
retrieving revision 1.5
diff -U5 -p -r1.5 mips_tx49.ld
--- tx49/current/src/mips_tx49.ld 10 Apr 2003 18:07:55 -0000
1.5
+++ tx49/current/src/mips_tx49.ld 6 Aug 2003 00:41:23 -0000
@@ -41,15 +41,15 @@
OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips",
"elf32-littlemips")
/* The preprocessor defines mips, but we know we're mips :-) */
#undef mips
-OUTPUT_ARCH(mips:4900)
+OUTPUT_ARCH(mips:4000)
STARTUP(vectors.o)
ENTRY(reset_vector)
-#if defined(EXTRAS) && defined(CYGPKG_IO)
+#if defined(EXTRAS) /* && defined(CYGPKG_IO) */
INPUT(extras.o)
#endif
#if (__GNUC__ >= 3)
GROUP(libtarget.a libgcc.a libsupc++.a)
#else
@@ -84,11 +84,12 @@ GROUP(libtarget.a libgcc.a)
/* this version for ROM startup */
#define SECTION_rom_vectors(_region_, _vma_, _lma_) \
.rom_vectors _vma_ : _lma_ \
{ KEEP (*(.reset_vector)) \
- . = ALIGN(0x100); KEEP (*(.utlb_vector)) \
+ . = ALIGN(0x200); KEEP (*(.utlb_vector)) \
+ . = ALIGN(0x100); . = . + 4; \
. = ALIGN(0x80); KEEP(*(.other_vector)) \
. = ALIGN(0x100); KEEP(*(.debug_vector)) } \
> _region_
#endif /* ROM startup version of ROM vectors */
@@ -202,10 +203,11 @@ GROUP(libtarget.a libgcc.a)
#define SECTION_data(_region_, _vma_, _lma_) \
.data _vma_ : _lma_ \
{ \
__ram_data_start = ABSOLUTE (.); _fdata = . ; \
*(.data) *(.data.*) *(.gnu.linkonce.d*) \
+ *(.2ram.*) \
. = ALIGN (8); \
SORT(CONSTRUCTORS) \
} > _region_ \
__rom_data_start = LOADADDR(.data);
--
Andrew Dyer | adyer@righthandtech.com
Sr. Engineer | (630) 238-0789
RightHand Technologies | (630) 238-0469 (fax)
735 N. Edgewood Ave. |
Suite D |
Wood Dale, IL 60191-1261 |
USA |