OSDN Git Service

1ddaca414af7dd975e37fce2baabffdc9c322cc8
[trx-305dsp/dsp.git] / hirado / kernel / config / blackfin / _common_bf518 / bf518elf.ld
1 /*
2 * ADSP-BF518 Rev 0.0ではアノーマリ05000444の影響でこのファイルを使用できない。
3 * Rev 0.0 に対しては bf518elf_00.ldを使用すること。
4 */
5 OUTPUT_FORMAT("elf32-bfin","elf32-bfin","elf32-bfin")
6 OUTPUT_ARCH(bfin)
7
8 PROVIDE (ldf_stack_end = 0xffb00FFC ) ;
9 PROVIDE (hardware_init_hook = 0) ;
10 PROVIDE (software_init_hook = 0) ;
11 PROVIDE (software_term_hook = 0) ;
12 PROVIDE (__kernel_boot_for_gdb = 0);
13
14 ENTRY (start);
15
16 MEMORY
17   {
18     MEM_SDRAM (XW)    : ORIGIN = 0x00000000, LENGTH = 128M
19     MEM_ASYNC_0 (XW)  : ORIGIN = 0x20000000, LENGTH = 1M
20     MEM_ASYNC_1 (XW)  : ORIGIN = 0x20100000, LENGTH = 1M
21     MEM_ASYNC_2 (XW)  : ORIGIN = 0x20200000, LENGTH = 1M
22     MEM_ASYNC_3 (XW)  : ORIGIN = 0x20300000, LENGTH = 1M
23
24     MEM_L1_DATA_A (W!X)  : ORIGIN = 0xff800000, LENGTH = 32K
25     MEM_L1_DATA_B (W!X)  : ORIGIN = 0xff900000, LENGTH = 16K    /* BF518のバンクBは32kBだが、キャッシュ用に16kBあけておく */
26     MEM_L1_CODE (XR)   : ORIGIN = 0xffa00000, LENGTH = 32K
27 /*  MEM_L1_INST_C (XR)   : ORIGIN = 0xffa10000, LENGTH = 16K    BF518のバンクCは16kBだが、キャッシュ用にあけておく */
28     MEM_L1_SCRATCH (W!X) : ORIGIN = 0xffb00000, LENGTH = 4K
29
30     MEM_L2              : ORIGIN = 0xffe00000, LENGTH = 0   /* DUMMY */
31     
32     MEM_SYSMMR (W!X)  : ORIGIN = 0xffc00000, LENGTH = 2M
33     MEM_COREMMR (W!X) : ORIGIN = 0xffe00000, LENGTH = 2M
34   }
35
36 SECTIONS
37 {
38
39 /* Read-only sections, merged into text segment: */
40   .interp         : { *(.interp) }
41   .hash           : { *(.hash) }
42   .dynsym         : { *(.dynsym) }
43   .dynstr         : { *(.dynstr) }
44   .gnu.version    : { *(.gnu.version) }
45   .gnu.version_d  : { *(.gnu.version_d) }
46   .gnu.version_r  : { *(.gnu.version_r) }
47   .rel.init       : { *(.rel.init) }
48   .rela.init      : { *(.rela.init) }
49   .rel.text       : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
50   .rela.text      : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
51   .rel.fini       : { *(.rel.fini) }
52   .rela.fini      : { *(.rela.fini) }
53   .rel.rodata     : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
54   .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
55   .rel.data.rel.ro   : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
56   .rela.data.rel.ro   : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
57   .rel.data       : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
58   .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
59   .rel.tdata      : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
60   .rela.tdata     : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
61   .rel.tbss   : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
62   .rela.tbss      : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
63   .rel.ctors      : { *(.rel.ctors) }
64   .rela.ctors     : { *(.rela.ctors) }
65   .rel.dtors      : { *(.rel.dtors) }
66   .rela.dtors     : { *(.rela.dtors) }
67   .rel.got        : { *(.rel.got) }
68   .rela.got       : { *(.rela.got) }
69   .rel.sdata      : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) }
70   .rela.sdata     : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) }
71   .rel.sbss       : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) }
72   .rela.sbss      : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) }
73   .rel.sdata2     : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) }
74   .rela.sdata2    : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) }
75   .rel.sbss2      : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) }
76   .rela.sbss2     : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) }
77   .rel.bss        : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
78   .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
79   .rel.plt        : { *(.rel.plt) }
80   .rela.plt       : { *(.rela.plt) }
81   .l2             :
82   {
83     *(.l2 .l2.*)
84   } >MEM_SDRAM
85  
86   .start           :
87   {
88     KEEP (*(.start))
89   } >MEM_L1_CODE =0
90  
91   .text           :
92   {
93     *(.text .stub .text.* .gnu.linkonce.t.*)
94     KEEP (*(.text.*personality*))
95     /* .gnu.warning sections are handled specially by elf32.em.  */
96     *(.gnu.warning)
97   } >MEM_L1_CODE =0
98   
99   .init           :
100   {
101     KEEP (*(.init))
102   } >MEM_L1_CODE =0
103  
104   .plt            : { *(.plt) } >MEM_L1_CODE
105  
106   .fini           :
107   {
108     KEEP (*(.fini))
109   } >MEM_L1_CODE =0
110   
111   PROVIDE (__etext = .);
112   PROVIDE (_etext = .);
113   PROVIDE (etext = .);
114   
115   .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >MEM_L1_DATA_A
116   .rodata1        : { *(.rodata1) } >MEM_L1_DATA_A
117   
118   .sdata2         :
119   {
120     *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
121   } >MEM_L1_DATA_A
122   
123   .sbss2          : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >MEM_L1_DATA_A
124   .eh_frame_hdr : { *(.eh_frame_hdr) } >MEM_L1_DATA_A
125   .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) } >MEM_L1_DATA_A
126   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } >MEM_L1_DATA_A
127   
128   /* Adjust the address for the data segment.  We want to adjust up to
129      the same address within the page on the next page up.  */
130   . = ALIGN(0x1000) + (. & (0x1000 - 1));
131   /* Exception handling  */
132   .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) } >MEM_L1_DATA_A
133   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } >MEM_L1_DATA_A
134   /* Thread Local Storage sections  */
135   .tdata      : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >MEM_L1_DATA_A
136   .tbss       : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >MEM_L1_DATA_A
137   .preinit_array     :
138   {
139     PROVIDE_HIDDEN (___preinit_array_start = .);
140     KEEP (*(.preinit_array))
141     PROVIDE_HIDDEN (___preinit_array_end = .);
142   } >MEM_L1_DATA_A
143   .init_array     :
144   {
145      PROVIDE_HIDDEN (___init_array_start = .);
146      KEEP (*(SORT(.init_array.*)))
147      KEEP (*(.init_array))
148      PROVIDE_HIDDEN (___init_array_end = .);
149   } >MEM_L1_DATA_A
150   .fini_array     :
151   {
152     PROVIDE_HIDDEN (___fini_array_start = .);
153     KEEP (*(.fini_array))
154     KEEP (*(SORT(.fini_array.*)))
155     PROVIDE_HIDDEN (___fini_array_end = .);
156   } >MEM_L1_DATA_A
157
158   .ctors          :
159   {
160     /* gcc uses crtbegin.o to find the start of
161        the constructors, so we make sure it is
162        first.  Because this is a wildcard, it
163        doesn't matter if the user does not
164        actually link against crtbegin.o; the
165        linker won't look for a file to match a
166        wildcard.  The wildcard also means that it
167        doesn't matter which directory crtbegin.o
168        is in.  */
169     KEEP (*crtbegin*.o(.ctors))
170     /* We don't want to include the .ctor section from
171        the crtend.o file until after the sorted ctors.
172        The .ctor section from the crtend file contains the
173        end of ctors marker and it must be last */
174     KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
175     KEEP (*(SORT(.ctors.*)))
176     KEEP (*crtend*.o(.ctors))
177   } >MEM_L1_DATA_A
178   .dtors          :
179   {
180     KEEP (*crtbegin*.o(.dtors))
181     KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
182     KEEP (*(SORT(.dtors.*)))
183     KEEP (*crtend*.o(.dtors))
184   } >MEM_L1_DATA_A
185   .jcr            : { KEEP (*(.jcr)) } >MEM_L1_DATA_A
186   .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } >MEM_L1_DATA_A
187   .dynamic        : { *(.dynamic) } >MEM_L1_DATA_A
188   .data           :
189   {
190     *(.data .data.* .gnu.linkonce.d.*)
191     KEEP (*(.gnu.linkonce.d.*personality*))
192     SORT(CONSTRUCTORS)
193   } >MEM_L1_DATA_A
194   .data1          : { *(.data1) } >MEM_L1_DATA_A
195   .got            : { *(.got.plt) *(.got) } >MEM_L1_DATA_A
196   /* We want the small data sections together, so single-instruction offsets
197      can access them all, and initialized data all before uninitialized, so
198      we can shorten the on-disk segment size.  */
199   .sdata          :
200   {
201     *(.sdata .sdata.* .gnu.linkonce.s.*)
202   } >MEM_L1_DATA_A
203   __edata = .; PROVIDE (_edata = .);
204   .sbss           :
205   {
206     __bss_start = .;
207     *(.dynsbss)
208     *(.sbss .sbss.* .gnu.linkonce.sb.*)
209     *(.scommon)
210   } >MEM_L1_DATA_A
211   .bss            :
212   {
213     *(.dynbss)
214     *(.bss .bss.* .gnu.linkonce.b.*)
215     *(COMMON)
216     /* Align here to ensure that the .bss section occupies space up to
217        _end.  Align after .bss to ensure correct alignment even if the
218        .bss section disappears because there are no input sections.
219        FIXME: Why do we need it? When there is no .bss section, we don't
220        pad the .data section.  */
221     . = ALIGN(. != 0 ? 32 / 8 : 1);
222     __bss_end = .;
223   } >MEM_L1_DATA_A
224   . = ALIGN(32 / 8);
225   . = ALIGN(32 / 8);
226   __end = .; PROVIDE (_end = .);
227   /* Stabs debugging sections.  */
228   .stab          0 : { *(.stab) }
229   .stabstr       0 : { *(.stabstr) }
230   .stab.excl     0 : { *(.stab.excl) }
231   .stab.exclstr  0 : { *(.stab.exclstr) }
232   .stab.index    0 : { *(.stab.index) }
233   .stab.indexstr 0 : { *(.stab.indexstr) }
234   .comment       0 : { *(.comment) }
235   /* DWARF debug sections.
236      Symbols in the DWARF debugging sections are relative to the beginning
237      of the section so we begin them at 0.  */
238   /* DWARF 1 */
239   .debug          0 : { *(.debug) }
240   .line           0 : { *(.line) }
241   /* GNU DWARF 1 extensions */
242   .debug_srcinfo  0 : { *(.debug_srcinfo) }
243   .debug_sfnames  0 : { *(.debug_sfnames) }
244   /* DWARF 1.1 and DWARF 2 */
245   .debug_aranges  0 : { *(.debug_aranges) }
246   .debug_pubnames 0 : { *(.debug_pubnames) }
247   /* DWARF 2 */
248   .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
249   .debug_abbrev   0 : { *(.debug_abbrev) }
250   .debug_line     0 : { *(.debug_line) }
251   .debug_frame    0 : { *(.debug_frame) }
252   .debug_str      0 : { *(.debug_str) }
253   .debug_loc      0 : { *(.debug_loc) }
254   .debug_macinfo  0 : { *(.debug_macinfo) }
255   /* SGI/MIPS DWARF 2 extensions */
256   .debug_weaknames 0 : { *(.debug_weaknames) }
257   .debug_funcnames 0 : { *(.debug_funcnames) }
258   .debug_typenames 0 : { *(.debug_typenames) }
259   .debug_varnames  0 : { *(.debug_varnames) }
260
261   __stack_end = ORIGIN(MEM_L1_SCRATCH) + LENGTH(MEM_L1_SCRATCH);
262
263   __heap_start = ORIGIN(MEM_L1_DATA_B);
264   __heap_end = ORIGIN(MEM_L1_DATA_B) + LENGTH(MEM_L1_DATA_B);
265
266
267     PROVIDE (end = .) ;
268
269 /* ADSP-BF518依存のSYSTEM MMR
270     .bss.sysmmr (NOLOAD) : { . = 0x0000; chip_mmr.o(SYSMMR0)}>MEM_SYSMMR
271     .bss.sysmmr (NOLOAD) : { . = 0x0100; chip_mmr.o(SYSMMR1)}>MEM_SYSMMR
272     .bss.sysmmr (NOLOAD) : { . = 0x010C; chip_mmr.o(SYSMMR2)}>MEM_SYSMMR
273     .bss.sysmmr (NOLOAD) : { . = 0x014C; chip_mmr.o(SYSMMR3)}>MEM_SYSMMR
274     .bss.sysmmr (NOLOAD) : { . = 0x0200; chip_mmr.o(SYSMMR4)}>MEM_SYSMMR
275     .bss.sysmmr (NOLOAD) : { . = 0x0300; chip_mmr.o(SYSMMR5)}>MEM_SYSMMR
276     .bss.sysmmr (NOLOAD) : { . = 0x0400; chip_mmr.o(SYSMMR6)}>MEM_SYSMMR
277     .bss.sysmmr (NOLOAD) : { . = 0x041C; chip_mmr.o(SYSMMR7)}>MEM_SYSMMR
278     .bss.sysmmr (NOLOAD) : { . = 0x0424; chip_mmr.o(SYSMMR8)}>MEM_SYSMMR
279     .bss.sysmmr (NOLOAD) : { . = 0x0500; chip_mmr.o(SYSMMR9)}>MEM_SYSMMR
280     .bss.sysmmr (NOLOAD) : { . = 0x0600; chip_mmr.o(SYSMMR10)}>MEM_SYSMMR
281     .bss.sysmmr (NOLOAD) : { . = 0x0700; chip_mmr.o(SYSMMR11)}>MEM_SYSMMR
282     .bss.sysmmr (NOLOAD) : { . = 0x0800; chip_mmr.o(SYSMMR12)}>MEM_SYSMMR
283     .bss.sysmmr (NOLOAD) : { . = 0x0818; chip_mmr.o(SYSMMR13)}>MEM_SYSMMR
284     .bss.sysmmr (NOLOAD) : { . = 0x0820; chip_mmr.o(SYSMMR14)}>MEM_SYSMMR
285     .bss.sysmmr (NOLOAD) : { . = 0x0900; chip_mmr.o(SYSMMR15)}>MEM_SYSMMR
286     .bss.sysmmr (NOLOAD) : { . = 0x0918; chip_mmr.o(SYSMMR16)}>MEM_SYSMMR
287     .bss.sysmmr (NOLOAD) : { . = 0x0920; chip_mmr.o(SYSMMR17)}>MEM_SYSMMR
288     .bss.sysmmr (NOLOAD) : { . = 0x0A00; chip_mmr.o(SYSMMR18)}>MEM_SYSMMR
289     .bss.sysmmr (NOLOAD) : { . = 0x0A10; chip_mmr.o(SYSMMR19)}>MEM_SYSMMR
290     .bss.sysmmr (NOLOAD) : { . = 0x0B0C; chip_mmr.o(SYSMMR20)}>MEM_SYSMMR
291     .bss.sysmmr (NOLOAD) : { . = 0x0C00; chip_mmr.o(SYSMMR21)}>MEM_SYSMMR
292     .bss.sysmmr (NOLOAD) : { . = 0x0C10; chip_mmr.o(SYSMMR22)}>MEM_SYSMMR
293     .bss.sysmmr (NOLOAD) : { . = 0x0C38; chip_mmr.o(SYSMMR23)}>MEM_SYSMMR
294     .bss.sysmmr (NOLOAD) : { . = 0x0C40; chip_mmr.o(SYSMMR24)}>MEM_SYSMMR
295     .bss.sysmmr (NOLOAD) : { . = 0x0C50; chip_mmr.o(SYSMMR25)}>MEM_SYSMMR
296     .bss.sysmmr (NOLOAD) : { . = 0x0C78; chip_mmr.o(SYSMMR26)}>MEM_SYSMMR
297     .bss.sysmmr (NOLOAD) : { . = 0x0C80; chip_mmr.o(SYSMMR27)}>MEM_SYSMMR
298     .bss.sysmmr (NOLOAD) : { . = 0x0C90; chip_mmr.o(SYSMMR28)}>MEM_SYSMMR
299     .bss.sysmmr (NOLOAD) : { . = 0x0CB8; chip_mmr.o(SYSMMR29)}>MEM_SYSMMR
300     .bss.sysmmr (NOLOAD) : { . = 0x0CC0; chip_mmr.o(SYSMMR30)}>MEM_SYSMMR
301     .bss.sysmmr (NOLOAD) : { . = 0x0CD0; chip_mmr.o(SYSMMR31)}>MEM_SYSMMR
302     .bss.sysmmr (NOLOAD) : { . = 0x0CF8; chip_mmr.o(SYSMMR32)}>MEM_SYSMMR
303     .bss.sysmmr (NOLOAD) : { . = 0x0D00; chip_mmr.o(SYSMMR33)}>MEM_SYSMMR
304     .bss.sysmmr (NOLOAD) : { . = 0x0D10; chip_mmr.o(SYSMMR34)}>MEM_SYSMMR
305     .bss.sysmmr (NOLOAD) : { . = 0x0D38; chip_mmr.o(SYSMMR35)}>MEM_SYSMMR
306     .bss.sysmmr (NOLOAD) : { . = 0x0D40; chip_mmr.o(SYSMMR36)}>MEM_SYSMMR
307     .bss.sysmmr (NOLOAD) : { . = 0x0D50; chip_mmr.o(SYSMMR37)}>MEM_SYSMMR
308     .bss.sysmmr (NOLOAD) : { . = 0x0D78; chip_mmr.o(SYSMMR38)}>MEM_SYSMMR
309     .bss.sysmmr (NOLOAD) : { . = 0x0D80; chip_mmr.o(SYSMMR39)}>MEM_SYSMMR
310     .bss.sysmmr (NOLOAD) : { . = 0x0D90; chip_mmr.o(SYSMMR40)}>MEM_SYSMMR
311     .bss.sysmmr (NOLOAD) : { . = 0x0DB8; chip_mmr.o(SYSMMR41)}>MEM_SYSMMR
312     .bss.sysmmr (NOLOAD) : { . = 0x0DC0; chip_mmr.o(SYSMMR42)}>MEM_SYSMMR
313     .bss.sysmmr (NOLOAD) : { . = 0x0DD0; chip_mmr.o(SYSMMR43)}>MEM_SYSMMR
314     .bss.sysmmr (NOLOAD) : { . = 0x0DF8; chip_mmr.o(SYSMMR44)}>MEM_SYSMMR
315     .bss.sysmmr (NOLOAD) : { . = 0x0E00; chip_mmr.o(SYSMMR45)}>MEM_SYSMMR
316     .bss.sysmmr (NOLOAD) : { . = 0x0E10; chip_mmr.o(SYSMMR46)}>MEM_SYSMMR
317     .bss.sysmmr (NOLOAD) : { . = 0x0E38; chip_mmr.o(SYSMMR47)}>MEM_SYSMMR
318     .bss.sysmmr (NOLOAD) : { . = 0x0E40; chip_mmr.o(SYSMMR48)}>MEM_SYSMMR
319     .bss.sysmmr (NOLOAD) : { . = 0x0E50; chip_mmr.o(SYSMMR49)}>MEM_SYSMMR
320     .bss.sysmmr (NOLOAD) : { . = 0x0E78; chip_mmr.o(SYSMMR50)}>MEM_SYSMMR
321     .bss.sysmmr (NOLOAD) : { . = 0x0E80; chip_mmr.o(SYSMMR51)}>MEM_SYSMMR
322     .bss.sysmmr (NOLOAD) : { . = 0x0E90; chip_mmr.o(SYSMMR52)}>MEM_SYSMMR
323     .bss.sysmmr (NOLOAD) : { . = 0x0EB8; chip_mmr.o(SYSMMR53)}>MEM_SYSMMR
324     .bss.sysmmr (NOLOAD) : { . = 0x0EC0; chip_mmr.o(SYSMMR54)}>MEM_SYSMMR
325     .bss.sysmmr (NOLOAD) : { . = 0x0ED0; chip_mmr.o(SYSMMR55)}>MEM_SYSMMR
326     .bss.sysmmr (NOLOAD) : { . = 0x0EF8; chip_mmr.o(SYSMMR56)}>MEM_SYSMMR
327     .bss.sysmmr (NOLOAD) : { . = 0x0F00; chip_mmr.o(SYSMMR57)}>MEM_SYSMMR
328     .bss.sysmmr (NOLOAD) : { . = 0x0F10; chip_mmr.o(SYSMMR58)}>MEM_SYSMMR
329     .bss.sysmmr (NOLOAD) : { . = 0x0F38; chip_mmr.o(SYSMMR59)}>MEM_SYSMMR
330     .bss.sysmmr (NOLOAD) : { . = 0x0F40; chip_mmr.o(SYSMMR60)}>MEM_SYSMMR
331     .bss.sysmmr (NOLOAD) : { . = 0x0F50; chip_mmr.o(SYSMMR61)}>MEM_SYSMMR
332     .bss.sysmmr (NOLOAD) : { . = 0x0F78; chip_mmr.o(SYSMMR62)}>MEM_SYSMMR
333     .bss.sysmmr (NOLOAD) : { . = 0x0F80; chip_mmr.o(SYSMMR63)}>MEM_SYSMMR
334     .bss.sysmmr (NOLOAD) : { . = 0x0F90; chip_mmr.o(SYSMMR64)}>MEM_SYSMMR
335     .bss.sysmmr (NOLOAD) : { . = 0x0FB8; chip_mmr.o(SYSMMR65)}>MEM_SYSMMR
336     .bss.sysmmr (NOLOAD) : { . = 0x0FC0; chip_mmr.o(SYSMMR66)}>MEM_SYSMMR
337     .bss.sysmmr (NOLOAD) : { . = 0x0FD0; chip_mmr.o(SYSMMR67)}>MEM_SYSMMR
338     .bss.sysmmr (NOLOAD) : { . = 0x0FF8; chip_mmr.o(SYSMMR68)}>MEM_SYSMMR
339     .bss.sysmmr (NOLOAD) : { . = 0x1000; chip_mmr.o(SYSMMR69)}>MEM_SYSMMR
340     .bss.sysmmr (NOLOAD) : { . = 0x1400; chip_mmr.o(SYSMMR70)}>MEM_SYSMMR
341     .bss.sysmmr (NOLOAD) : { . = 0x1480; chip_mmr.o(SYSMMR71)}>MEM_SYSMMR
342     .bss.sysmmr (NOLOAD) : { . = 0x1500; chip_mmr.o(SYSMMR72)}>MEM_SYSMMR
343     .bss.sysmmr (NOLOAD) : { . = 0x1700; chip_mmr.o(SYSMMR73)}>MEM_SYSMMR
344     .bss.sysmmr (NOLOAD) : { . = 0x2000; chip_mmr.o(SYSMMR74)}>MEM_SYSMMR
345     .bss.sysmmr (NOLOAD) : { . = 0x201C; chip_mmr.o(SYSMMR75)}>MEM_SYSMMR
346     .bss.sysmmr (NOLOAD) : { . = 0x2024; chip_mmr.o(SYSMMR76)}>MEM_SYSMMR
347     .bss.sysmmr (NOLOAD) : { . = 0x3000; chip_mmr.o(SYSMMR77)}>MEM_SYSMMR
348     .bss.sysmmr (NOLOAD) : { . = 0x302C; chip_mmr.o(SYSMMR78)}>MEM_SYSMMR
349     .bss.sysmmr (NOLOAD) : { . = 0x3060; chip_mmr.o(SYSMMR79)}>MEM_SYSMMR
350     .bss.sysmmr (NOLOAD) : { . = 0x30A0; chip_mmr.o(SYSMMR80)}>MEM_SYSMMR
351     .bss.sysmmr (NOLOAD) : { . = 0x3100; chip_mmr.o(SYSMMR81)}>MEM_SYSMMR
352     .bss.sysmmr (NOLOAD) : { . = 0x3180; chip_mmr.o(SYSMMR82)}>MEM_SYSMMR
353     .bss.sysmmr (NOLOAD) : { . = 0x3200; chip_mmr.o(SYSMMR83)}>MEM_SYSMMR
354     .bss.sysmmr (NOLOAD) : { . = 0x3210; chip_mmr.o(SYSMMR84)}>MEM_SYSMMR
355     .bss.sysmmr (NOLOAD) : { . = 0x3220; chip_mmr.o(SYSMMR85)}>MEM_SYSMMR
356     .bss.sysmmr (NOLOAD) : { . = 0x3240; chip_mmr.o(SYSMMR86)}>MEM_SYSMMR
357     .bss.sysmmr (NOLOAD) : { . = 0x3280; chip_mmr.o(SYSMMR87)}>MEM_SYSMMR
358     .bss.sysmmr (NOLOAD) : { . = 0x3288; chip_mmr.o(SYSMMR88)}>MEM_SYSMMR
359     .bss.sysmmr (NOLOAD) : { . = 0x3300; chip_mmr.o(SYSMMR89)}>MEM_SYSMMR
360     .bss.sysmmr (NOLOAD) : { . = 0x3340; chip_mmr.o(SYSMMR90)}>MEM_SYSMMR
361     .bss.sysmmr (NOLOAD) : { . = 0x3400; chip_mmr.o(SYSMMR91)}>MEM_SYSMMR
362     .bss.sysmmr (NOLOAD) : { . = 0x3500; chip_mmr.o(SYSMMR92)}>MEM_SYSMMR
363     .bss.sysmmr (NOLOAD) : { . = 0x3620; chip_mmr.o(SYSMMR93)}>MEM_SYSMMR
364     .bss.sysmmr (NOLOAD) : { . = 0x3680; chip_mmr.o(SYSMMR94)}>MEM_SYSMMR
365     .bss.sysmmr (NOLOAD) : { . = 0x3700; chip_mmr.o(SYSMMR95)}>MEM_SYSMMR
366     .bss.sysmmr (NOLOAD) : { . = 0x3800; chip_mmr.o(SYSMMR96)}>MEM_SYSMMR
367     .bss.sysmmr (NOLOAD) : { . = 0x3848; chip_mmr.o(SYSMMR97)}>MEM_SYSMMR
368     .bss.sysmmr (NOLOAD) : { . = 0x3880; chip_mmr.o(SYSMMR98)}>MEM_SYSMMR
369     .bss.sysmmr (NOLOAD) : { . = 0x38C0; chip_mmr.o(SYSMMR99)}>MEM_SYSMMR
370 */
371
372
373
374
375 /* Blackfin 共有のCORE MMR 
376     .bss.coremmr (NOLOAD) : {                    cpu_mmr.o(DMEMCTL)}> MEM_COREMMR
377     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(DCPLBA)}> MEM_COREMMR
378     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(DCPLBD)}> MEM_COREMMR
379     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(DTESTC)}> MEM_COREMMR
380     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(DTESTD)}> MEM_COREMMR
381     .bss.coremmr (NOLOAD) : { . = ALIGN(0x1000); cpu_mmr.o(IMEMCTL)}> MEM_COREMMR
382     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(ICPLBA)}> MEM_COREMMR
383     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(ICPLBD)}> MEM_COREMMR
384     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(ITESTC)}> MEM_COREMMR
385     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(ITESTD)}> MEM_COREMMR
386     .bss.coremmr (NOLOAD) : { . = ALIGN(0x1000); cpu_mmr.o(EVT)}> MEM_COREMMR
387     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(CEC)}> MEM_COREMMR
388     .bss.coremmr (NOLOAD) : { . = ALIGN(0x1000); cpu_mmr.o(CTMR)}> MEM_COREMMR
389     .bss.coremmr (NOLOAD) : { . = ALIGN(0x1000)+0x1000; cpu_mmr.o(DBG)}> MEM_COREMMR
390     .bss.coremmr (NOLOAD) : { . = ALIGN(0x1000); cpu_mmr.o(TBCTL)}> MEM_COREMMR
391     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(TBUF)}> MEM_COREMMR
392     .bss.coremmr (NOLOAD) : { . = ALIGN(0x1000); cpu_mmr.o(WPICTL)}> MEM_COREMMR
393     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0040); cpu_mmr.o(WPIADDR)}> MEM_COREMMR
394     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0040); cpu_mmr.o(WPICNT)}> MEM_COREMMR
395     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(WPDCTL)}> MEM_COREMMR
396     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0040); cpu_mmr.o(WPDADDR)}> MEM_COREMMR
397     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0040); cpu_mmr.o(WPDCNT)}> MEM_COREMMR
398     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(WPSTAT)}> MEM_COREMMR
399     .bss.coremmr (NOLOAD) : { . = ALIGN(0x1000); cpu_mmr.o(PFCTL)}> MEM_COREMMR
400     .bss.coremmr (NOLOAD) : { . = ALIGN(0x0100); cpu_mmr.o(PFCNT)}> MEM_COREMMR
401
402 */
403     .comment        0 : { *(.comment) }
404     .debug          0 : { *(.debug) }
405     .line           0 : { *(.line) }
406     .debug_srcinfo  0 : { *(.debug_srcinfo) }
407     .debug_sfnames  0 : { *(.debug_sfnames) }
408     .debug_aranges  0 : { *(.debug_aranges) }
409     .debug_pubnames 0 : { *(.debug_pubnames) }
410 }