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;