Back to home page

LXR

 
 

    


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

0001 OUTPUT_FORMAT("elf32-bfin", "elf32-bfin",
0002             "elf32-bfin")
0003 
0004 OUTPUT_ARCH(bfin)
0005 ENTRY(__start)
0006 STARTUP(start.o)
0007 
0008 /*
0009  * Declare some sizes.
0010  */
0011 _RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
0012 /* bf537stamp has 64MB ram, but dynamic mmu tables have not yet been
0013    implemented.  there are not enough static entries to support 64MB
0014    along with banks for io and flash, so waste some RAM at the end
0015    to free up mmu entries. */
0016 _RamSize = DEFINED(_RamSize) ? _RamSize : 0x03400000;
0017 _RamEnd = _RamBase + _RamSize;
0018 _HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
0019 
0020 MEMORY
0021 {
0022       sdram(rwx)    : ORIGIN = 0x00001000, LENGTH = 0x03fff000
0023 /*
0024       l1code(rwx)   : ORIGIN = 0xffa08000, LENGTH = 0x00008000
0025       l1data(rwx)   : ORIGIN = 0xff804000, LENGTH = 0x00004000
0026 */
0027 }
0028 
0029 SECTIONS
0030 {
0031 
0032 /*
0033     .l1code        : 
0034     { 
0035 */
0036         /*jump.o (.text)*/
0037 /*
0038     } > l1code
0039 */
0040 
0041     .init          : 
0042     { 
0043         *(.start)
0044         KEEP (*(.init))
0045     } > sdram   /*=0*/
0046 
0047     .text :
0048     {
0049          CREATE_OBJECT_SYMBOLS
0050         *(.text)
0051         *(.rodata*)
0052         *(.gnu.linkonce.r*)
0053         
0054         /*
0055          * Special FreeBSD sysctl sections.
0056          */
0057         . = ALIGN (16);
0058         ___start_set_sysctl_set = .;
0059         *(set_sysctl_*);
0060         ___stop_set_sysctl_set = ABSOLUTE(.);
0061         *(set_domain_*);
0062         *(set_pseudo_*);
0063 
0064          _etext = .;
0065 
0066         ___CTOR_LIST__ = .;
0067         LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
0068         *(.ctors)
0069         LONG(0)
0070         ___CTOR_END__ = .;
0071         ___DTOR_LIST__ = .;
0072         LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
0073         *(.dtors)
0074         LONG(0)
0075         ___DTOR_END__ = .;         
0076     } > sdram
0077 
0078     .tdata : {
0079         __TLS_Data_begin = .;
0080         *(.tdata .tdata.* .gnu.linkonce.td.*)
0081         __TLS_Data_end = .;
0082     } > sdram
0083 
0084     .tbss : {
0085         __TLS_BSS_begin = .;
0086         *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0087         __TLS_BSS_end = .;
0088     } > sdram
0089 
0090     __TLS_Data_size = __TLS_Data_end - __TLS_Data_begin;
0091     __TLS_Data_begin = __TLS_Data_size != 0 ? __TLS_Data_begin : __TLS_BSS_begin;
0092     __TLS_Data_end = __TLS_Data_size != 0 ? __TLS_Data_end : __TLS_BSS_begin;
0093     __TLS_BSS_size = __TLS_BSS_end - __TLS_BSS_begin;
0094     __TLS_Size = __TLS_BSS_end - __TLS_Data_begin;
0095     __TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0096     
0097     .fini :
0098     {
0099         KEEP (*(.fini))
0100     } > sdram  /*=0*/ 
0101     
0102     .data :
0103     {
0104         *(.data)
0105         KEEP (*(SORT(.rtemsrwset.*)))
0106         *(.jcr)
0107         *(.gnu.linkonce.d*)
0108         CONSTRUCTORS
0109          _edata = .;
0110     } > sdram
0111 
0112     .eh_frame : { *(.eh_frame) } > sdram
0113     .data1   : { *(.data1) } > sdram
0114     .eh_frame : { *(.eh_frame) } > sdram
0115     .gcc_except_table : { *(.gcc_except_table*) } > sdram
0116 
0117     .rodata :
0118     {
0119         *(.rodata)
0120         *(.rodata.*)
0121         KEEP (*(SORT(.rtemsroset.*)))
0122         *(.gnu.linkonce.r*)
0123     } > sdram
0124 
0125     
0126     .bss :
0127     {
0128          _bss_start = .;
0129         _clear_start = .;
0130         *(.bss)
0131         *(.gnu.linkonce.b.*)
0132         *(COMMON)
0133         . = ALIGN (64);
0134         _clear_end = .;
0135          _end = .;
0136          __end = .;
0137     } > sdram
0138 
0139     .noinit (NOLOAD) : {
0140         *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0141     } > sdram
0142 
0143     .rtemsstack (NOLOAD) : {
0144         *(SORT(.rtemsstack.*))
0145         _WorkAreaBase = .;
0146     } > sdram
0147 
0148 /* Debugging stuff follows */
0149 
0150   /* Stabs debugging sections.  */
0151   .stab 0 : { *(.stab) } 
0152   .stabstr 0 : { *(.stabstr) } 
0153   .stab.excl 0 : { *(.stab.excl) } 
0154   .stab.exclstr 0 : { *(.stab.exclstr) }
0155   .stab.index 0 : { *(.stab.index) } 
0156   .stab.indexstr 0 : { *(.stab.indexstr) } 
0157   .comment 0 : { *(.comment) }
0158   /* DWARF debug sections.
0159      Symbols in the DWARF debugging sections are relative to the beginning
0160      of the section so we begin them at 0.  */
0161   /* DWARF 1 */
0162   .debug          0 : { *(.debug) }
0163   .line           0 : { *(.line) }
0164   /* GNU DWARF 1 extensions */
0165   .debug_srcinfo  0 : { *(.debug_srcinfo) }
0166   .debug_sfnames  0 : { *(.debug_sfnames) }
0167   /* DWARF 1.1 and DWARF 2 */
0168   .debug_aranges  0 : { *(.debug_aranges) }
0169   .debug_pubnames 0 : { *(.debug_pubnames) }
0170   /* DWARF 2 */
0171   .debug_info     0 : { *(.debug_info) }
0172   .debug_abbrev   0 : { *(.debug_abbrev) }
0173   .debug_line     0 : { *(.debug_line) }
0174   .debug_frame    0 : { *(.debug_frame) }
0175   .debug_str      0 : { *(.debug_str) } 
0176   .debug_loc      0 : { *(.debug_loc) }
0177   .debug_macinfo  0 : { *(.debug_macinfo) } 
0178   /* SGI/MIPS DWARF 2 extensions */
0179   .debug_weaknames 0 : { *(.debug_weaknames) }
0180   .debug_funcnames 0 : { *(.debug_funcnames) }
0181   .debug_typenames 0 : { *(.debug_typenames) }
0182   .debug_varnames  0 : { *(.debug_varnames) } 
0183   /* These must appear regardless of  .  */   
0184 
0185   /* Addition to let linker know about custom section for GDB pretty-printing support. */
0186   .debug_gdb_scripts 0 : { *(.debug_gdb_scripts) }
0187 }
0188 
0189 __RamBase = _RamBase;
0190 __RamSize = _RamSize;
0191 __edata = _edata;
0192 __etext = _etext;