Back to home page

LXR

 
 

    


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

0001 /* generated.x
0002  *
0003  * Machine generated for a CPU named "cpu_0" as defined in:
0004  * D:\eb2_nios2\kawkos.ptf
0005  *
0006  * Generated: 2005-07-10 11:52:46.899
0007  *
0008  */
0009 
0010 /*
0011 
0012 DO NOT MODIFY THIS FILE
0013 
0014    Changing this file will have subtle consequences
0015    which will almost certainly lead to a nonfunctioning
0016    system. If you do modify this file, be aware that your
0017    changes will be overwritten and lost when this file
0018    is generated again.
0019 
0020 DO NOT MODIFY THIS FILE
0021 
0022 */
0023 
0024 RamBase = DEFINED(RamBase) ? RamBase : 0x00000000;
0025 RamSize = DEFINED(RamSize) ? RamSize : 0x00800000;
0026 RamEnd = RamBase + RamSize;
0027 HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
0028 
0029 MEMORY
0030 {
0031     reset : ORIGIN = 0x00000000, LENGTH = 0x00000600
0032     exceptions : ORIGIN = 0x00000600, LENGTH = 0x00000A00
0033     onchip_memory_0 : ORIGIN = 0x00001000, LENGTH = 0x007FF000
0034 }
0035 
0036     /* Define symbols for each memory base-address */
0037  __alt_mem_onchip_memory_0 = 0x00000000 ;
0038 
0039  __nios2_icache_size = 4096 ;
0040  __nios2_icache_line_size = 32 ;
0041  __nios2_dcache_size = 0 ;
0042  __nios2_dcache_line_size = 4 ;
0043 
0044 OUTPUT_FORMAT( "elf32-littlenios2",
0045                "elf32-littlenios2",
0046                "elf32-littlenios2" )
0047 OUTPUT_ARCH( nios2 )
0048 ENTRY(start)
0049 STARTUP(start.o)
0050 
0051 /* Do we need any of these for elf?
0052    __DYNAMIC = 0;
0053  */
0054 
0055 SECTIONS
0056 {
0057     .entry :
0058     {
0059         KEEP (*(.entry))
0060     } > reset
0061 
0062     .exceptions :
0063     {
0064         PROVIDE (__ram_exceptions_start = ABSOLUTE(.));
0065         . = ALIGN(0x20);
0066         *(.irq)
0067         KEEP (*(.exceptions.entry.label));
0068         KEEP (*(.exceptions.entry.user));
0069         KEEP (*(.exceptions.entry));
0070         KEEP (*(.exceptions.irqtest.user));
0071         KEEP (*(.exceptions.irqtest));
0072         KEEP (*(.exceptions.irqhandler.user));
0073         KEEP (*(.exceptions.irqhandler));
0074         KEEP (*(.exceptions.irqreturn.user));
0075         KEEP (*(.exceptions.irqreturn));
0076         KEEP (*(.exceptions.notirq.label));
0077         KEEP (*(.exceptions.notirq.user));
0078         KEEP (*(.exceptions.notirq));
0079         KEEP (*(.exceptions.soft.user));
0080         KEEP (*(.exceptions.soft));
0081         KEEP (*(.exceptions.unknown.user));
0082         KEEP (*(.exceptions.unknown));
0083         KEEP (*(.exceptions.exit.label));
0084         KEEP (*(.exceptions.exit.user));
0085         KEEP (*(.exceptions.exit));
0086         KEEP (*(.exceptions));
0087         PROVIDE (__ram_exceptions_end = ABSOLUTE(.));
0088     } > exceptions
0089 
0090     PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions));
0091 
0092     .text :
0093     {
0094         /*
0095          * All code sections are merged into the text output section, along with
0096          * the read only data sections.
0097          *
0098          */
0099 
0100         PROVIDE (stext = ABSOLUTE(.));
0101 
0102         *(.interp)
0103         *(.hash)
0104         *(.dynsym)
0105         *(.dynstr)
0106         *(.gnu.version)
0107         *(.gnu.version_d)
0108         *(.gnu.version_r)
0109         *(.rel.init)
0110         *(.rela.init)
0111         *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
0112         *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
0113         *(.rel.fini)
0114         *(.rela.fini)
0115         *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
0116         *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
0117         *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
0118         *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
0119         *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
0120         *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
0121         *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
0122         *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
0123         *(.rel.ctors)
0124         *(.rela.ctors)
0125         *(.rel.dtors)
0126         *(.rela.dtors)
0127         *(.rel.got)
0128         *(.rela.got)
0129         *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
0130         *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
0131         *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
0132         *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
0133         *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
0134         *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
0135         *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
0136         *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
0137         *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
0138         *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
0139         *(.rel.plt)
0140         *(.rela.plt)
0141 
0142         KEEP (*(.init))
0143         *(.plt)
0144         *(.text .stub .text.* .gnu.linkonce.t.*)
0145 
0146         /* Special FreeBSD sysctl sections.  */
0147         . = ALIGN (16);
0148         __start_set_sysctl_set = .;
0149         *(set_sysctl_*);
0150         __stop_set_sysctl_set = ABSOLUTE(.);
0151         *(set_domain_*);
0152         *(set_pseudo_*);
0153 
0154 /* .gnu.warning sections are handled specially by elf32.em.  */
0155 
0156         *(.gnu.warning.*)
0157         KEEP (*(.fini))
0158         PROVIDE (__etext = ABSOLUTE(.));
0159         PROVIDE (_etext = ABSOLUTE(.));
0160         PROVIDE (etext = ABSOLUTE(.));
0161 
0162         *(.eh_frame_hdr)
0163         /* Ensure the __preinit_array_start label is properly aligned.  We
0164            could instead move the label definition inside the section, but
0165            the linker would then create the section even if it turns out to
0166            be empty, which isn't pretty.  */
0167         . = ALIGN(32 / 8);
0168         PROVIDE (__preinit_array_start = ABSOLUTE(.));
0169         *(.preinit_array)
0170         PROVIDE (__preinit_array_end = ABSOLUTE(.));
0171         PROVIDE (__init_array_start = ABSOLUTE(.));
0172         *(.init_array)
0173         PROVIDE (__init_array_end = ABSOLUTE(.));
0174         PROVIDE (__fini_array_start = ABSOLUTE(.));
0175         *(.fini_array)
0176         PROVIDE (__fini_array_end = ABSOLUTE(.));
0177         SORT(CONSTRUCTORS)
0178         KEEP (*(.eh_frame))
0179         *(.gcc_except_table*)
0180         *(.dynamic)
0181         PROVIDE (__CTOR_LIST__ = ABSOLUTE(.));
0182         KEEP (*(.ctors))
0183         KEEP (*(SORT(.ctors.*)))
0184         PROVIDE (__CTOR_END__ = ABSOLUTE(.));
0185         PROVIDE (__DTOR_LIST__ = ABSOLUTE(.));
0186         KEEP (*(.dtors))
0187         KEEP (*(SORT(.dtors.*)))
0188         PROVIDE (__DTOR_END__ = ABSOLUTE(.));
0189         KEEP (*(.jcr))
0190         . = ALIGN(32 / 8);
0191     } >  onchip_memory_0 = 0x3a880100 /* NOP on Nios2 (big endian) */
0192 
0193     .rodata :
0194     {
0195         PROVIDE (__ram_rodata_start = ABSOLUTE(.));
0196         . = ALIGN(32 / 8);
0197         *(.rodata .rodata.* .gnu.linkonce.r.*)
0198         *(.rodata1)
0199         KEEP (*(SORT(.rtemsroset.*)))
0200     } > onchip_memory_0
0201 
0202     .tdata : {
0203         _TLS_Data_begin = .;
0204         *(.tdata .tdata.* .gnu.linkonce.td.*)
0205         _TLS_Data_end = .;
0206     } > onchip_memory_0
0207 
0208     .tbss : {
0209         _TLS_BSS_begin = .;
0210         *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0211         _TLS_BSS_end = .;
0212         . = ALIGN(32 / 8);
0213         PROVIDE (__ram_rodata_end = ABSOLUTE(.));
0214     } > onchip_memory_0
0215 
0216     _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
0217     _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
0218     _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
0219     _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
0220     _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
0221     _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0222 
0223     PROVIDE (__flash_rodata_start = LOADADDR(.rodata));
0224 
0225     .rwdata  :
0226     {
0227         PROVIDE (__ram_rwdata_start = ABSOLUTE(.));
0228         . = ALIGN(32 / 8);
0229         *(.got.plt) *(.got)
0230         *(.data1)
0231         *(.data .data.* .gnu.linkonce.d.*)
0232         KEEP (*(SORT(.rtemsrwset.*)))
0233 
0234         _gp = ABSOLUTE(. + 0x8000);
0235         PROVIDE(gp = _gp);
0236 
0237         *(.sdata .sdata.* .gnu.linkonce.s.*)
0238         *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
0239 
0240         . = ALIGN(32 / 8);
0241         _edata = ABSOLUTE(.);
0242         PROVIDE (edata = ABSOLUTE(.));
0243         PROVIDE (__ram_rwdata_end = ABSOLUTE(.));
0244     } > onchip_memory_0
0245 
0246     PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata));
0247 
0248     .bss :
0249     {
0250         __bss_start = ABSOLUTE(.);
0251         PROVIDE (__sbss_start = ABSOLUTE(.));
0252         PROVIDE (___sbss_start = ABSOLUTE(.));
0253 
0254         *(.dynsbss)
0255         *(.sbss .sbss.* .gnu.linkonce.sb.*)
0256         *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
0257         *(.scommon)
0258 
0259         PROVIDE (__sbss_end = ABSOLUTE(.));
0260         PROVIDE (___sbss_end = ABSOLUTE(.));
0261 
0262         *(.dynbss)
0263         *(.bss .bss.* .gnu.linkonce.b.*)
0264         *(COMMON)
0265 
0266         . = ALIGN(32 / 8);
0267         __bss_end = ABSOLUTE(.);
0268     } > onchip_memory_0
0269 
0270     .noinit (NOLOAD) : {
0271         *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0272     } > onchip_memory_0
0273 
0274     .rtemsstack (NOLOAD) : {
0275         _stack_low = ABSOLUTE(.);
0276         *(SORT(.rtemsstack.*))
0277         _stack_high = ABSOLUTE(.);
0278         WorkAreaBase = .;
0279     } > onchip_memory_0
0280 
0281     /*
0282      * One output section for each of the available partitions. These are not
0283      * used by default, but can be used by users applications using the .section
0284      * directive.
0285      *
0286      * The memory partition used for the heap is treated in  special way, i.e. a
0287      * symbol is added to point to the heap start.
0288      *
0289      * Note that when running from flash, these sections are not loaded by the
0290      * HAL.
0291      *
0292      */
0293 
0294     .onchip_memory_0 :
0295     {
0296         PROVIDE (_alt_partition_onchip_memory_0_start = ABSOLUTE(.));
0297         *(.onchip_memory_0 .onchip_memory_0.*)
0298         . = ALIGN(32 / 8);
0299         PROVIDE (_alt_partition_onchip_memory_0_end = ABSOLUTE(.));
0300         _end = ABSOLUTE(.);
0301         end = ABSOLUTE(.);
0302 
0303     } > onchip_memory_0
0304 
0305     PROVIDE (_alt_partition_onchip_memory_0_load_addr = LOADADDR(.onchip_memory_0));
0306 
0307     /*
0308      * Stabs debugging sections.
0309      *
0310      */
0311 
0312     .stab          0 : { *(.stab) }
0313     .stabstr       0 : { *(.stabstr) }
0314     .stab.excl     0 : { *(.stab.excl) }
0315     .stab.exclstr  0 : { *(.stab.exclstr) }
0316     .stab.index    0 : { *(.stab.index) }
0317     .stab.indexstr 0 : { *(.stab.indexstr) }
0318     .comment       0 : { *(.comment) }
0319     /* DWARF debug sections.
0320        Symbols in the DWARF debugging sections are relative to the beginning
0321        of the section so we begin them at 0.  */
0322     /* DWARF 1 */
0323     .debug          0 : { *(.debug) }
0324     .line           0 : { *(.line) }
0325     /* GNU DWARF 1 extensions */
0326     .debug_srcinfo  0 : { *(.debug_srcinfo) }
0327     .debug_sfnames  0 : { *(.debug_sfnames) }
0328     /* DWARF 1.1 and DWARF 2 */
0329     .debug_aranges  0 : { *(.debug_aranges) }
0330     .debug_pubnames 0 : { *(.debug_pubnames) }
0331     /* DWARF 2 */
0332     .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
0333     .debug_abbrev   0 : { *(.debug_abbrev) }
0334     .debug_line     0 : { *(.debug_line) }
0335     .debug_frame    0 : { *(.debug_frame) }
0336     .debug_str      0 : { *(.debug_str) }
0337     .debug_loc      0 : { *(.debug_loc) }
0338     .debug_macinfo  0 : { *(.debug_macinfo) }
0339     /* SGI/MIPS DWARF 2 extensions */
0340     .debug_weaknames 0 : { *(.debug_weaknames) }
0341     .debug_funcnames 0 : { *(.debug_funcnames) }
0342     .debug_typenames 0 : { *(.debug_typenames) }
0343     .debug_varnames  0 : { *(.debug_varnames) }
0344 
0345     /* Altera debug extensions */
0346     .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) }
0347 }
0348 /* provide a pointer for the stack */
0349 
0350 /*
0351  * Don't override this, override the __alt_stack_* symbols instead.
0352  */
0353 __alt_data_end = 0x00800000;
0354 
0355 /*
0356  * The next two symbols define the location of the default stack.  You can
0357  * override them to move the stack to a different memory.
0358  */
0359 PROVIDE( __alt_stack_pointer = _stack_high );
0360 PROVIDE( __alt_stack_limit   = _stack_low );
0361 
0362 /*
0363  * This symbol controls where the start of the heap is.  If the stack is
0364  * contiguous with the heap then the stack will contract as memory is
0365  * allocated to the heap.
0366  * Override this symbol to put the heap in a different memory.
0367  */
0368 PROVIDE( __alt_heap_start    = end );
0369