This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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                       |


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]