]> rtime.felk.cvut.cz Git - arc.git/blob - arch/ppc/mpc55xx/scripts/linkscript_cw.ldf
added 5606b support(5607b should be mostly the exact same so added that for linkfile...
[arc.git] / arch / ppc / mpc55xx / scripts / linkscript_cw.ldf
1 \r
2 MEMORY\r
3 {\r
4 #if defined(CFG_MPC5604B)\r
5     flash: org = 0x00000000,   len = 0x00080000 \r
6 #elif defined(CFG_MPC5607B)\r
7     flash: org = 0x00000000,   len = 0x00180000 \r
8 #else\r
9     flash: org = 0x00000000,   len = 0x00100000 \r
10 #endif\r
11 #if defined(CFG_MPC5606B)    \r
12     sram:  org = 0x40000000,   len = 0x00014000 \r
13 #elif defined(CFG_MPC5607B)    \r
14     sram:  org = 0x40000000,   len = 0x00018000 \r
15 #else\r
16     sram:  org = 0x40000000,   len = 0x0000c000 \r
17 #endif\r
18 }\r
19 \r
20 SECTIONS\r
21 {\r
22    GROUP : {\r
23        __rom_start=.; \r
24       .rcw : { }      \r
25       .exception_tbl (VLECODE) : {}\r
26 #if defined(CFG_VLE)\r
27        .text_vle (VLECODE) ALIGN(0x1000): {\r
28              *(.text)\r
29              *(.text_vle)\r
30              *(.fini)\r
31              *(.eini)\r
32          }\r
33        .init  : {}\r
34        .init_vle (VLECODE) : {\r
35              *(.init)\r
36              *(.init_vle)\r
37           }\r
38         .ctors : {}\r
39         .dtors : {}\r
40         .rodata (CONST) : {\r
41             *(.rdata)\r
42             *(.rodata)\r
43          }\r
44 #else       \r
45       .text : { \r
46                  *(.exception_tbl)\r
47              *(.text)\r
48              *(.rodata)\r
49              *(.ctors)\r
50              *(.dtors)    \r
51              *(.init) \r
52              *(.fini)           \r
53              *(.eini)\r
54              . = (.+15);\r
55         }\r
56 #endif\r
57             extab      : {}  \r
58             extabindex : {}\r
59         .sdata2     : {}   /* SHF_ALLOC + possibly SHF_WRITE (prob. ReadOnly)*/\r
60         .sbss2      : {}   /* SHF_ALLOC +  SHF_WRITE , e.g const int apa = 0;*/\r
61             . = ALIGN(0x10);   /* Section alignment is 0x10 */  \r
62             __DATA_ROM = .;\r
63             .=.+SIZEOF(.data);\r
64             . = ALIGN(0x10);  /* Section alignment is 0x10 */\r
65             __SDATA = .;\r
66             .=.+SIZEOF(.sdata);\r
67             . = ALIGN(0x10);  /* Section alignment is 0x10 */\r
68             __SDATA0 = .;\r
69             .=.+SIZEOF(.PPC.EMB.sdata0);\r
70             __rom_end = .;\r
71          }       > flash\r
72 \r
73         GROUP : {\r
74                 __ram_start=.;\r
75                 __DATA_RAM = .; \r
76                 .data (DATA) LOAD(ADDR(__DATA_ROM)) :  {}\r
77                 .sdata (DATA) LOAD(ADDR(__SDATA)): {}    /* .sdata - Initialized small data */\r
78             __DATA_END = . ;\r
79         } > sram\r
80         \r
81         GROUP : {\r
82           __BSS_START = .;\r
83           .sbss    : {}         /* sbss - un-initialized small data */                                                                  \r
84           .bss    : {}  \r
85           __BSS_END = .;\r
86       .PPC.EMB.sdata0 LOAD(ADDR(__SDATA0)) : {} /* Small data with offset to 0 */           \r
87       .PPC.EMB.sbss0  : {}\r
88       .ramlog : { *(.ramlog_data) *(.ramlog_bss) }\r
89       .dem : { *(.dem_eventmemory_pri) }\r
90           _heap_addr = .; \r
91           __ram_end = .;\r
92         } > sram\r
93 }   \r
94 \r
95 _heap_end   = ADDR(sram)+SIZEOF(sram);\r
96 _heap_size  = _heap_end - _heap_addr;\r
97 __SP_INIT = _heap_end;\r