Back to home page

LXR

 
 

    


Warning, /bsps/mips/csb350/start/linkcmds is written in an unsupported language. File is not indexed.

0001 /*
0002  *  Linker script for CSB350 AU1100 based board
0003  */
0004 
0005 /*    . = 0x80020000; */
0006 
0007 /*
0008  * Declare some sizes.
0009  */
0010 
0011 _sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x80400000;
0012 _sdram_size = DEFINED(_sdram_size) ? _sdram_size : 12M;
0013 
0014 /* standard items provided by RTEMS linkcmds files */
0015 RamBase = _sdram_base;
0016 RamSize = _sdram_size;
0017 RamEnd = RamBase + RamSize;
0018 HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
0019 
0020 ENTRY(_start)
0021 STARTUP(start.o)
0022 
0023 MEMORY
0024 {
0025    ram      : ORIGIN = 0x80400000, LENGTH = 12M
0026 }
0027 
0028 SECTIONS
0029 { 
0030     .text : 
0031     { 
0032        _ftext = . ;
0033 
0034       */start.o(.text)
0035 
0036       *(.text*)
0037       *(.gnu.linkonce.t*)
0038       *(.mips16.fn.*)
0039       *(.mips16.call.*)
0040       *(.reginfo*)
0041       PROVIDE (__runtime_reloc_start = .);
0042       *(.rel.sdata)
0043       *(.rel.dyn)
0044       PROVIDE (__runtime_reloc_stop = .);
0045 
0046       /*
0047        * Special FreeBSD sysctl sections.
0048        */
0049       . = ALIGN (16);
0050       __start_set_sysctl_set = .;
0051       *(set_sysctl_*);
0052       __stop_set_sysctl_set = ABSOLUTE(.);
0053       *(set_domain_*);
0054       *(set_pseudo_*);
0055 
0056       *(.gcc_except_table*)
0057       *(.eh_frame_hdr)
0058       *(.eh_frame)
0059     } >ram  
0060 
0061   .init :
0062   {
0063      KEEP(*(.init))
0064 
0065   } > ram
0066 
0067   .fini :
0068   {
0069      KEEP(*(.fini))
0070 
0071   }  >ram 
0072 
0073 
0074   .ctors    : 
0075   {
0076     /* gcc uses crtbegin.o to find the start of
0077        the constructors, so we make sure it is
0078        first.  Because this is a wildcard, it
0079        doesn't matter if the user does not
0080        actually link against crtbegin.o; the
0081        linker won't look for a file to match a
0082        wildcard.  The wildcard also means that it
0083        doesn't matter which directory crtbegin.o
0084        is in.  */
0085 
0086     KEEP (*crtbegin.o(.ctors))
0087 
0088     /* We don't want to include the .ctor section from
0089        from the crtend.o file until after the sorted ctors.
0090        The .ctor section from the crtend file contains the
0091        end of ctors marker and it must be last */
0092 
0093     KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
0094     KEEP (*(SORT(.ctors.*)))
0095     KEEP (*(.ctors))
0096   } >ram  
0097 
0098   .dtors    : 
0099   {
0100     KEEP (*crtbegin.o(.dtors))
0101     KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
0102     KEEP (*(SORT(.dtors.*)))
0103     KEEP (*(.dtors))
0104 
0105     etext  =  .;
0106     _etext  =  .;
0107   } >ram  
0108 
0109 
0110 
0111   .rdata : 
0112   {
0113     *(.rdata)
0114     *(.rodata)
0115     *(.rodata.*)
0116     KEEP (*(SORT(.rtemsroset.*)))
0117     *(.gnu.linkonce.r*)
0118   } >ram  
0119 
0120   .tdata : {
0121     _TLS_Data_begin = .;
0122     *(.tdata .tdata.* .gnu.linkonce.td.*)
0123     _TLS_Data_end = .;
0124   } >ram
0125 
0126   .tbss : {
0127     _TLS_BSS_begin = .;
0128     *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0129     _TLS_BSS_end = .;
0130   } >ram
0131 
0132   _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
0133   _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
0134   _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
0135   _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
0136   _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
0137   _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0138 
0139   .data : 
0140   {
0141     _fdata = ALIGN(16);
0142 
0143     *(.data)
0144     *(.data.*)
0145     KEEP (*(SORT(.rtemsrwset.*)))
0146     *(.gnu.linkonce.d*)
0147   } >ram  
0148 
0149   .jcr : 
0150   {
0151     . = ALIGN(8);
0152     KEEP (*(.jcr))
0153 
0154     _gp = ALIGN(16) + 0x7440;
0155     __global = _gp;
0156   } >ram
0157 
0158   .lit8 : 
0159   {
0160     *(.lit8)
0161   } >ram  
0162 
0163   .lit4 : 
0164   {
0165     *(.lit4)
0166   } >ram   
0167 
0168   .sdata :   
0169   {
0170     *(.sdata*)
0171     *(.gnu.linkonce.s*)
0172   } >ram  
0173 
0174   .sbss : 
0175   {
0176    edata  =  .;
0177    _edata  =  .;
0178    _fbss = .;
0179     *(.sbss*)
0180     *(.scommon)
0181   } >ram   
0182 
0183 
0184   .bss : 
0185   {
0186     _bss_start = . ;
0187     *(.bss .bss.* .gnu.linkonce.b.*)
0188     *(COMMON)
0189     . = ALIGN (64);
0190     _clear_end = .;
0191     end = .;
0192     _end = .;
0193   } >ram
0194 
0195   .noinit (NOLOAD) : {
0196     *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0197   } >ram
0198 
0199   .rtemsstack (NOLOAD) : {
0200     *(SORT(.rtemsstack.*))
0201     WorkAreaBase = .;
0202   } >ram
0203 
0204 /* 
0205 ** DWARF debug sections.
0206 ** Symbols in the DWARF debugging sections are relative to
0207 ** the beginning of the section so we begin them at 0.  
0208 */
0209 
0210   /* DWARF 1 */
0211   .debug          0 : { *(.debug) } 
0212   .line           0 : { *(.line) } 
0213 
0214   /* GNU DWARF 1 extensions */
0215   .debug_srcinfo  0 : { *(.debug_srcinfo) } 
0216   .debug_sfnames  0 : { *(.debug_sfnames) } 
0217 
0218   /* DWARF 1.1 and DWARF 2 */
0219   .debug_aranges  0 : { *(.debug_aranges) } 
0220   .debug_pubnames 0 : { *(.debug_pubnames) } 
0221 
0222   /* DWARF 2 */
0223   .debug_info     0 : { *(.debug_info) }    
0224   .debug_abbrev   0 : { *(.debug_abbrev) }  
0225   .debug_line     0 : { *(.debug_line) }    
0226   .debug_frame    0 : { *(.debug_frame)}    
0227   .debug_str      0 : { *(.debug_str) }     
0228   .debug_loc      0 : { *(.debug_loc) }     
0229   .debug_macinfo  0 : { *(.debug_macinfo) } 
0230 
0231   /* SGI/MIPS DWARF 2 extensions */
0232   .debug_weaknames 0 : { *(.debug_weaknames) } 
0233   .debug_funcnames 0 : { *(.debug_funcnames) } 
0234   .debug_typenames 0 : { *(.debug_typenames) } 
0235   .debug_varnames  0 : { *(.debug_varnames) }  
0236 
0237   /* Addition to let linker know about custom section for GDB pretty-printing support. */
0238   .debug_gdb_scripts 0 : { *(.debug_gdb_scripts) }
0239 }