source: rtems/c/src/lib/libbsp/bfin/bf537Stamp/startup/linkcmds @ 64501892

4.104.11
Last change on this file since 64501892 was 64501892, checked in by Joel Sherrill <joel.sherrill@…>, on May 27, 2009 at 11:58:16 AM

2009-05-25 Allan Hessenflow <allanh@…>

PR 1415/bsps

  • startup/bspstart.c, startup/linkcmds: Enable caches and therefore enable the mmu.
  • start/start.S: Correct call to boot_card to meet bfin abi by clearing l0 - l3 and allocating some stack space.
  • Property mode set to 100644
File size: 3.9 KB
Line 
1/*
2 *  $Id$
3 */
4
5OUTPUT_FORMAT("elf32-bfin", "elf32-bfin",
6            "elf32-bfin")
7
8OUTPUT_ARCH(bfin)
9ENTRY(__start)
10
11/*
12 * Declare some sizes.
13 */
14_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
15/* bf537stamp has 64MB ram, but dynamic mmu tables have not yet been
16   implemented.  there are not enough static entries to support 64MB
17   along with banks for io and flash, so waste some RAM at the end
18   to free up mmu entries. */
19_RamSize = DEFINED(_RamSize) ? _RamSize : 0x03400000;
20_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
21_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;
22
23MEMORY
24{
25      sdram(rwx)    : ORIGIN = 0x00001000, LENGTH = 0x03fff000
26/*
27      l1code(rwx)   : ORIGIN = 0xffa08000, LENGTH = 0x00008000
28      l1data(rwx)   : ORIGIN = 0xff804000, LENGTH = 0x00004000
29*/
30}
31
32SECTIONS
33{
34
35/*
36    .l1code        :
37    {
38*/
39        /*jump.o (.text)*/
40/*
41    } > l1code
42*/
43
44    .init          :
45    {
46        *(.start)
47        KEEP (*(.init))
48    } > sdram   /*=0*/
49
50    .text :
51    {
52         CREATE_OBJECT_SYMBOLS
53        *(.text)
54        *(.rodata*)
55        *(.gnu.linkonce.r*)
56       
57        /*
58         * Special FreeBSD sysctl sections.
59         */
60        . = ALIGN (16);
61        ___start_set_sysctl_set = .;
62        *(set_sysctl_*);
63        ___stop_set_sysctl_set = ABSOLUTE(.);
64        *(set_domain_*);
65        *(set_pseudo_*);
66
67         _etext = .;
68
69        ___CTOR_LIST__ = .;
70        LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
71        *(.ctors)
72        LONG(0)
73        ___CTOR_END__ = .;
74        ___DTOR_LIST__ = .;
75        LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
76        *(.dtors)
77        LONG(0)
78        ___DTOR_END__ = .;         
79    } > sdram
80   
81    .fini :
82    {
83        KEEP (*(.fini))
84    } > sdram  /*=0*/
85   
86    .data :
87    {
88        *(.data)
89        *(.jcr)
90        *(.gnu.linkonce.d*)
91        CONSTRUCTORS
92         _edata = .;
93    } > sdram
94
95    .eh_frame : { *(.eh_frame) } > sdram
96    .data1   : { *(.data1) } > sdram
97    .eh_frame : { *(.eh_frame) } > sdram
98    .gcc_except_table : { *(.gcc_except_table*) } > sdram
99
100    .rodata :
101    {
102        *(.rodata)
103        *(.rodata.*)
104        *(.gnu.linkonce.r*)
105    } > sdram
106
107   
108    .bss :
109    {
110         _bss_start = .;
111        _clear_start = .;
112        *(.bss)
113        *(.gnu.linkonce.b.*)
114        *(COMMON)
115        . = ALIGN (64);
116        _stack_init = .;
117        . += _StackSize;
118        _clear_end = .;
119        _WorkAreaBase = .;
120         _end = .;
121         __end = .;
122    } > sdram
123   
124/* Debugging stuff follows */
125
126  /* Stabs debugging sections.  */
127  .stab 0 : { *(.stab) }
128  .stabstr 0 : { *(.stabstr) }
129  .stab.excl 0 : { *(.stab.excl) }
130  .stab.exclstr 0 : { *(.stab.exclstr) }
131  .stab.index 0 : { *(.stab.index) }
132  .stab.indexstr 0 : { *(.stab.indexstr) }
133  .comment 0 : { *(.comment) }
134  /* DWARF debug sections.
135     Symbols in the DWARF debugging sections are relative to the beginning
136     of the section so we begin them at 0.  */
137  /* DWARF 1 */
138  .debug          0 : { *(.debug) }
139  .line           0 : { *(.line) }
140  /* GNU DWARF 1 extensions */
141  .debug_srcinfo  0 : { *(.debug_srcinfo) }
142  .debug_sfnames  0 : { *(.debug_sfnames) }
143  /* DWARF 1.1 and DWARF 2 */
144  .debug_aranges  0 : { *(.debug_aranges) }
145  .debug_pubnames 0 : { *(.debug_pubnames) }
146  /* DWARF 2 */
147  .debug_info     0 : { *(.debug_info) }
148  .debug_abbrev   0 : { *(.debug_abbrev) }
149  .debug_line     0 : { *(.debug_line) }
150  .debug_frame    0 : { *(.debug_frame) }
151  .debug_str      0 : { *(.debug_str) }
152  .debug_loc      0 : { *(.debug_loc) }
153  .debug_macinfo  0 : { *(.debug_macinfo) }
154  /* SGI/MIPS DWARF 2 extensions */
155  .debug_weaknames 0 : { *(.debug_weaknames) }
156  .debug_funcnames 0 : { *(.debug_funcnames) }
157  .debug_typenames 0 : { *(.debug_typenames) }
158  .debug_varnames  0 : { *(.debug_varnames) }
159  /*.stack 0x80000 : { _stack = .; *(.stack) }*/
160  /* These must appear regardless of  .  */   
161}
162
163__RamBase = _RamBase;
164__RamSize = _RamSize;
165__edata = _edata;
166__etext = _etext;
Note: See TracBrowser for help on using the repository browser.