summaryrefslogblamecommitdiffstats
path: root/bsps/bfin/eZKit533/start/linkcmds
blob: 90451bd46acaec42903c46de379cbdea26d969dc (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12




                                         
                





                                                     
                                                 


      
                                                              

                                                              

























                                           
                                    
                        
                                             















                                                      













                                                        

                                                                                 

                                                     
                                                              



                       
                      



                
                                     








                                        
                                                         




                    
                                     











                            
                       


                   





                              


































                                                                          


                                              
                       

                 
OUTPUT_FORMAT("elf32-bfin", "elf32-bfin",
            "elf32-bfin")

OUTPUT_ARCH(bfin)
ENTRY(__start)
STARTUP(start.o)

/*
 * Declare some sizes.
 */
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
_RamSize = DEFINED(_RamSize) ? _RamSize : 0x01000000;
_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;

MEMORY
{
      sdram(rwx)    : ORIGIN = 0x00001000, LENGTH = 0x01000000
      l1code(rwx)   : ORIGIN = 0xffa08000, LENGTH = 0x00008000
      l1data(rwx)   : ORIGIN = 0xff804000, LENGTH = 0x00004000
}

SECTIONS
{

    .l1code        : 
    { 
        /*jump.o (.text)*/
    } > l1code

    .init          : 
    { 
        KEEP (*(.init))
    } > sdram   /*=0*/

    .text :
    {
         CREATE_OBJECT_SYMBOLS
        *(.text)
        *(.rodata*)
        *(.gnu.linkonce.r*)
        
        /*
         * Special FreeBSD sysctl sections.
         */
        . = ALIGN (16);
        ___start_set_sysctl_set = .;
        *(set_sysctl_*);
        ___stop_set_sysctl_set = ABSOLUTE(.);
        *(set_domain_*);
        *(set_pseudo_*);

         _etext = .;

        ___CTOR_LIST__ = .;
        LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
        *(.ctors)
        LONG(0)
        ___CTOR_END__ = .;
        ___DTOR_LIST__ = .;
        LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
        *(.dtors)
        LONG(0)
        ___DTOR_END__ = .;         
    } > sdram

    .tdata : {
        __TLS_Data_begin = .;
        *(.tdata .tdata.* .gnu.linkonce.td.*)
        __TLS_Data_end = .;
    } > sdram

    .tbss : {
        __TLS_BSS_begin = .;
        *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
        __TLS_BSS_end = .;
    } > sdram

    __TLS_Data_size = __TLS_Data_end - __TLS_Data_begin;
    __TLS_Data_begin = __TLS_Data_size != 0 ? __TLS_Data_begin : __TLS_BSS_begin;
    __TLS_Data_end = __TLS_Data_size != 0 ? __TLS_Data_end : __TLS_BSS_begin;
    __TLS_BSS_size = __TLS_BSS_end - __TLS_BSS_begin;
    __TLS_Size = __TLS_BSS_end - __TLS_Data_begin;
    __TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
    
    .fini :
    {
        KEEP (*(.fini))
    } > sdram  /*=0*/ 
    
    .data :
    {
        *(.data)
        KEEP (*(SORT(.rtemsrwset.*)))
        *(.jcr)
        *(.gnu.linkonce.d*)
        CONSTRUCTORS
         _edata = .;
    } > sdram

    .eh_frame : { *(.eh_frame) } > sdram
    .data1   : { *(.data1) } > sdram
    .eh_frame : { *(.eh_frame) } > sdram
    .gcc_except_table : { *(.gcc_except_table*) } > sdram

    .rodata :
    {
        *(.rodata)
        *(.rodata.*)
        KEEP (*(SORT(.rtemsroset.*)))
        *(.gnu.linkonce.r*)
    } > sdram

    
    .bss :
    {
         _bss_start = .;
        _clear_start = .;
        *(.bss)
        *(.gnu.linkonce.b.*)
        *(COMMON)
        . = ALIGN (64);
        _clear_end = .;
         _end = .;
         __end = .;
    } > sdram

    .rtemsstack (NOLOAD) : {
        *(SORT(.rtemsstack.*))
        _WorkAreaBase = .;
    } > sdram

/* Debugging stuff follows */

  /* Stabs debugging sections.  */
  .stab 0 : { *(.stab) } 
  .stabstr 0 : { *(.stabstr) } 
  .stab.excl 0 : { *(.stab.excl) } 
  .stab.exclstr 0 : { *(.stab.exclstr) }
  .stab.index 0 : { *(.stab.index) } 
  .stab.indexstr 0 : { *(.stab.indexstr) } 
  .comment 0 : { *(.comment) }
  /* DWARF debug sections.
     Symbols in the DWARF debugging sections are relative to the beginning
     of the section so we begin them at 0.  */
  /* DWARF 1 */
  .debug          0 : { *(.debug) }
  .line           0 : { *(.line) }
  /* GNU DWARF 1 extensions */
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
  .debug_sfnames  0 : { *(.debug_sfnames) }
  /* DWARF 1.1 and DWARF 2 */
  .debug_aranges  0 : { *(.debug_aranges) }
  .debug_pubnames 0 : { *(.debug_pubnames) }
  /* DWARF 2 */
  .debug_info     0 : { *(.debug_info) }
  .debug_abbrev   0 : { *(.debug_abbrev) }
  .debug_line     0 : { *(.debug_line) }
  .debug_frame    0 : { *(.debug_frame) }
  .debug_str      0 : { *(.debug_str) } 
  .debug_loc      0 : { *(.debug_loc) }
  .debug_macinfo  0 : { *(.debug_macinfo) } 
  /* SGI/MIPS DWARF 2 extensions */
  .debug_weaknames 0 : { *(.debug_weaknames) }
  .debug_funcnames 0 : { *(.debug_funcnames) }
  .debug_typenames 0 : { *(.debug_typenames) }
  .debug_varnames  0 : { *(.debug_varnames) } 
  /* These must appear regardless of  .  */   
}

__HeapSize = _HeapSize;
__edata = _edata;
__etext = _etext;