source: rtems/tools/cpu/nios2/sample.ptf @ 16fd5a9

4.104.114.84.9
Last change on this file since 16fd5a9 was 16fd5a9, checked in by Joel Sherrill <joel.sherrill@…>, on Aug 15, 2006 at 9:02:55 PM

2006-08-15 Kolja Waschk <kawk@…>

  • linkcmds.c, linkcmds.h, memory.c, memory.h, sample.ptf: New files.
  • bridges.c: corrected detection of bridged connections
  • clocks.c: removed a printf
  • linkcmds.[ch] new files, added output of linker script
  • Makefile.am: added new files
  • memory.[ch]: new files, detection of memory in SOPC configuration
  • nios2gen.c: updated command line parsing and output control
  • output.[ch]: improved output of BSP header file
  • ptf.[ch]: added ptf_dump_ptf_item and small fixes
  • sample.ptf: new file, sample configuration for nios2gen
  • README: updated
  • Property mode set to 100644
File size: 11.6 KB
Line 
1N2GCOMM = "=============== Header output settings ===========================";
2
3BSPHEADER
4{
5  LEADTEXT =
6"/* Autogenerated by nios2gen, (C) 2006 K. Waschk rtemsdev/ixo.de */
7
8#ifndef __SOPC_H
9#define __SOPC_H 1
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#define CLOCK_FREQ_REF(clock) clock ## _FREQ
16#define CLOCK_FREQ(x) CLOCK_FREQ_REF(x)
17
18";
19
20  EPILOG =
21"
22#ifdef __cplusplus
23}
24#endif
25#endif
26";
27}
28
29N2GCOMM = "=============== Class templates ==================================";
30
31CLASS altera_nios2
32{
33    N2G_DEFINE_IS_AVAILABLE = "1";
34
35    SYSTEM_BUILDER_INFO
36    {
37        Clock_Source = "N2G_CLOCKREF_CLOCK";
38    }
39    SLAVE jtag_debug_module
40    {
41        SYSTEM_BUILDER_INFO { Base_Address = "BASE_ADDR"; }
42    }
43    WIZARD_SCRIPT_ARGUMENTS
44    {
45        cache_has_dcache = "HAS_DCACHE";
46        cache_has_icache = "HAS_ICACHE";
47        cache_dcache_size = "DCACHE_SIZE";
48        cache_icache_size = "ICACHE_SIZE";
49        cache_dcache_line_size = "DCACHE_LINE_SIZE";
50        cache_icache_line_size = "ICACHE_LINE_SIZE";
51        cache_dcache_bursts = "DCACHE_BURSTS";
52        cache_icache_burst_type = "ICACHE_BURST_TYPE";
53        hardware_multiply_present = "HAS_HWMULT";
54    }
55}
56
57CLASS altera_avalon_onchip_memory2
58{
59    N2G_DEFINE_IS_AVAILABLE = "1";
60
61    WIZARD_SCRIPT_ARGUMENTS
62    {
63        Writeable     = "WRITEABLE";
64        dual_port     = "DUAL_PORT";
65        Size_Value    = "SIZE_VALUE";
66        Size_Multiple = "SIZE_MULTIPLE";
67    }
68    SYSTEM_BUILDER_INFO
69    {
70        Clock_Source = "N2G_CLOCKREF_CLOCK";
71    }
72    SLAVE s1
73    {
74        N2G_DEFINE_CONNECTED_PORT = "S1";
75
76        SYSTEM_BUILDER_INFO
77        {
78            Base_Address   = "S1_BASE_ADDR";
79            Data_Width     = "S1_DATA_WIDTH";
80            Address_Width  = "S1_ADDR_WIDTH";
81            Address_Span   = "S1_ADDR_SPAN";
82        }
83    }
84    SLAVE s2
85    {
86        N2G_DEFINE_CONNECTED_PORT = "S2";
87
88        SYSTEM_BUILDER_INFO
89        {
90            Base_Address   = "S2_BASE_ADDR";
91            Data_Width     = "S2_DATA_WIDTH";
92            Address_Width  = "S2_ADDR_WIDTH";
93            Address_Span   = "S2_ADDR_SPAN";
94        }
95    }
96}
97
98CLASS sram_256k_x_16_bit
99{
100    N2G_DEFINE_IS_AVAILABLE = "1";
101
102    SLAVE sram
103    {
104        SYSTEM_BUILDER_INFO
105        {
106            Base_Address  = "BASE_ADDR";
107            Data_Width    = "DATA_WIDTH";
108            Address_Width = "ADDR_WIDTH";
109            Address_Span  = "ADDR_SPAN";
110        }
111    }
112}
113
114CLASS altera_avalon_sysid
115{
116    N2G_DEFINE_IS_AVAILABLE = "1";
117
118    SLAVE control_slave
119    {
120        SYSTEM_BUILDER_INFO
121        {
122            Base_Address = "BASE_ADDR";
123        }
124    }
125    WIZARD_SCRIPT_ARGUMENTS
126    {
127        id = "ID";
128        timestamp = "TIMESTAMP";
129    }
130}
131
132CLASS altera_avalon_timer
133{
134    N2G_DEFINE_IS_AVAILABLE = "1";
135
136    SLAVE s1
137    {
138        SYSTEM_BUILDER_INFO
139        {
140            Base_Address = "BASE_ADDR";
141            IRQ_MASTER { IRQ_Number = "IRQ"; }
142        }
143    }
144    WIZARD_SCRIPT_ARGUMENTS
145    {
146        snapshot = "SNAPSHOT";
147        always_run = "ALWAYS_RUN";
148        mult = "MULT";
149        period = "PERIOD";
150        period_units = "PERIOD_UNITS";
151        fixed_period = "FIXED_PERIOD";
152    }
153    SYSTEM_BUILDER_INFO
154    {
155        Clock_Source = "N2G_CLOCKREF_CLOCK";
156    }
157}
158
159
160CLASS altera_avalon_uart
161{
162    N2G_DEFINE_IS_AVAILABLE = "1";
163
164    SYSTEM_BUILDER_INFO
165    {
166        Clock_Source = "N2G_CLOCKREF_CLOCK";
167    }
168    WIZARD_SCRIPT_ARGUMENTS
169    {
170        use_cts_rts = "USE_CTS_RTS";
171        use_eop_register = "USE_EOP_REG";
172    }
173    SLAVE s1
174    {
175        SYSTEM_BUILDER_INFO
176        {
177            Base_Address = "BASE_ADDR";
178            IRQ_MASTER { IRQ_Number = "IRQ"; }
179        }
180    }
181}
182
183CLASS altera_avalon_jtag_uart
184{
185    N2G_DEFINE_IS_AVAILABLE = "1";
186
187    SLAVE avalon_jtag_slave
188    {
189        SYSTEM_BUILDER_INFO
190        {
191            Base_Address = "BASE_ADDR";
192            IRQ_MASTER { IRQ_Number = "IRQ"; }
193        }
194    }
195}
196
197CLASS altera_avalon_pio
198{
199    N2G_DEFINE_IS_AVAILABLE = "1";
200
201    SYSTEM_BUILDER_INFO
202    {
203        Clock_Source  = "N2G_CLOCKREF_CLOCK";
204    }
205    SLAVE
206    {
207        SYSTEM_BUILDER_INFO
208        {
209            Base_Address  = "BASE_ADDR";
210            IRQ_MASTER { IRQ_Number = "IRQ"; }
211        }
212    }
213}
214
215N2GCOMM = "=============== Linkcmds output settings =========================";
216
217LINKCMDS
218{
219    LEADTEXT = "
220OUTPUT_FORMAT( "elf32-littlenios2",
221               "elf32-littlenios2",
222               "elf32-littlenios2" )
223OUTPUT_ARCH( nios2 )
224ENTRY( _start )
225"
226
227    SECTION entry
228    {
229      COMMANDS =
230"         KEEP (*(.entry))
231";
232    }
233
234    SECTION exceptions
235    {
236      COMMANDS =
237"         PROVIDE (__ram_exceptions_start = ABSOLUTE(.));
238         . = ALIGN(0x20);
239         *(.irq)
240         KEEP (*(.exceptions.entry.label));
241         KEEP (*(.exceptions.entry.user));
242         KEEP (*(.exceptions.entry));
243         KEEP (*(.exceptions.irqtest.user));
244         KEEP (*(.exceptions.irqtest));
245         KEEP (*(.exceptions.irqhandler.user));
246         KEEP (*(.exceptions.irqhandler));
247         KEEP (*(.exceptions.irqreturn.user));
248         KEEP (*(.exceptions.irqreturn));
249         KEEP (*(.exceptions.notirq.label));
250         KEEP (*(.exceptions.notirq.user));
251         KEEP (*(.exceptions.notirq));
252         KEEP (*(.exceptions.soft.user));
253         KEEP (*(.exceptions.soft));
254         KEEP (*(.exceptions.unknown.user));
255         KEEP (*(.exceptions.unknown));
256         KEEP (*(.exceptions.exit.label));
257         KEEP (*(.exceptions.exit.user));
258         KEEP (*(.exceptions.exit));
259         KEEP (*(.exceptions));
260         PROVIDE (__ram_exceptions_end = ABSOLUTE(.));
261";
262    }
263
264    SECTION text
265    {
266      LOCATION = "SDRAM";
267      COMMANDS =
268"        PROVIDE (stext = ABSOLUTE(.));
269
270        *(.interp)
271        *(.hash)
272        *(.dynsym)
273        *(.dynstr)
274        *(.gnu.version)
275        *(.gnu.version_d)
276        *(.gnu.version_r)
277        *(.rel.init)
278        *(.rela.init)
279        *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
280        *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
281        *(.rel.fini)
282        *(.rela.fini)
283        *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
284        *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
285        *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
286        *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
287        *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
288        *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
289        *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
290        *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
291        *(.rel.ctors)
292        *(.rela.ctors)
293        *(.rel.dtors)
294        *(.rela.dtors)
295        *(.rel.got)
296        *(.rela.got)
297        *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
298        *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
299        *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
300        *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
301        *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
302        *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
303        *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
304        *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
305        *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
306        *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
307        *(.rel.plt)
308        *(.rela.plt)
309
310        KEEP (*(.init))
311        *(.plt)
312        *(.text .stub .text.* .gnu.linkonce.t.*)
313
314        /* Special FreeBSD sysctl sections.  */
315        . = ALIGN (16);
316        __start_set_sysctl_set = .;
317        *(set_sysctl_*);
318        __stop_set_sysctl_set = ABSOLUTE(.);
319        *(set_domain_*);
320        *(set_pseudo_*);
321
322        *(.gnu.warning.*)
323        KEEP (*(.fini))
324        PROVIDE (__etext = ABSOLUTE(.));
325        PROVIDE (_etext = ABSOLUTE(.));
326        PROVIDE (etext = ABSOLUTE(.));
327
328        *(.eh_frame_hdr)
329        /* Ensure the __preinit_array_start label is properly aligned.  We
330           could instead move the label definition inside the section, but
331           the linker would then create the section even if it turns out to
332           be empty, which isn't pretty.  */
333        . = ALIGN(32 / 8);
334        PROVIDE (__preinit_array_start = ABSOLUTE(.));
335        *(.preinit_array)
336        PROVIDE (__preinit_array_end = ABSOLUTE(.));
337        PROVIDE (__init_array_start = ABSOLUTE(.));
338        *(.init_array)
339        PROVIDE (__init_array_end = ABSOLUTE(.));
340        PROVIDE (__fini_array_start = ABSOLUTE(.));
341        *(.fini_array)
342        PROVIDE (__fini_array_end = ABSOLUTE(.));
343        SORT(CONSTRUCTORS)
344        KEEP (*(.eh_frame))
345        *(.gcc_except_table)
346        *(.dynamic)
347        PROVIDE (__CTOR_LIST__ = ABSOLUTE(.));
348        KEEP (*(.ctors))
349        KEEP (*(SORT(.ctors.*)))
350        PROVIDE (__CTOR_END__ = ABSOLUTE(.));
351        PROVIDE (__DTOR_LIST__ = ABSOLUTE(.));
352        KEEP (*(.dtors))
353        KEEP (*(SORT(.dtors.*)))
354        PROVIDE (__DTOR_END__ = ABSOLUTE(.));
355        KEEP (*(.jcr))
356        . = ALIGN(32 / 8);
357";
358    }
359
360    SECTION rodata
361    {
362      LOCATION = "SDRAM";
363      COMMANDS =
364"        PROVIDE (__ram_rodata_start = ABSOLUTE(.));
365        . = ALIGN(32 / 8);
366        *(.rodata .rodata.* .gnu.linkonce.r.*)
367        *(.rodata1)
368        . = ALIGN(32 / 8);
369        PROVIDE (__ram_rodata_end = ABSOLUTE(.));
370";
371    }
372
373    SECTION rwdata
374    {
375      LOCATION = "SDRAM";
376      COMMANDS =
377"        PROVIDE (__ram_rwdata_start = ABSOLUTE(.));
378        . = ALIGN(32 / 8);
379        *(.got.plt) *(.got)
380        *(.data1)
381        *(.data .data.* .gnu.linkonce.d.*)
382
383        _gp = ABSOLUTE(. + 0x8000);
384        PROVIDE(gp = _gp);
385
386        *(.sdata .sdata.* .gnu.linkonce.s.*)
387        *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
388
389        . = ALIGN(32 / 8);
390        _edata = ABSOLUTE(.);
391        PROVIDE (edata = ABSOLUTE(.));
392        PROVIDE (__ram_rwdata_end = ABSOLUTE(.));
393";
394    }
395
396    SECTION bss
397    {
398      LOCATION = "SDRAM";
399      COMMANDS =
400"        __bss_start = ABSOLUTE(.);
401        PROVIDE (__sbss_start = ABSOLUTE(.));
402        PROVIDE (___sbss_start = ABSOLUTE(.));
403
404        *(.dynsbss)
405        *(.sbss .sbss.* .gnu.linkonce.sb.*)
406        *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
407        *(.scommon)
408
409        PROVIDE (__sbss_end = ABSOLUTE(.));
410        PROVIDE (___sbss_end = ABSOLUTE(.));
411
412        *(.dynbss)
413        *(.bss .bss.* .gnu.linkonce.b.*)
414        *(COMMON)
415
416        . = ALIGN(32 / 8);
417        __bss_end = ABSOLUTE(.);
418";
419    }
420
421    STABS =
422"    .stab          0 : { *(.stab) }
423    .stabstr       0 : { *(.stabstr) }
424    .stab.excl     0 : { *(.stab.excl) }
425    .stab.exclstr  0 : { *(.stab.exclstr) }
426    .stab.index    0 : { *(.stab.index) }
427    .stab.indexstr 0 : { *(.stab.indexstr) }
428    .comment       0 : { *(.comment) }
429    /* DWARF debug sections.
430       Symbols in the DWARF debugging sections are relative to the beginning
431       of the section so we begin them at 0.  */
432    /* DWARF 1 */
433    .debug          0 : { *(.debug) }
434    .line           0 : { *(.line) }
435    /* GNU DWARF 1 extensions */
436    .debug_srcinfo  0 : { *(.debug_srcinfo) }
437    .debug_sfnames  0 : { *(.debug_sfnames) }
438    /* DWARF 1.1 and DWARF 2 */
439    .debug_aranges  0 : { *(.debug_aranges) }
440    .debug_pubnames 0 : { *(.debug_pubnames) }
441    /* DWARF 2 */
442    .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
443    .debug_abbrev   0 : { *(.debug_abbrev) }
444    .debug_line     0 : { *(.debug_line) }
445    .debug_frame    0 : { *(.debug_frame) }
446    .debug_str      0 : { *(.debug_str) }
447    .debug_loc      0 : { *(.debug_loc) }
448    .debug_macinfo  0 : { *(.debug_macinfo) }
449    /* SGI/MIPS DWARF 2 extensions */
450    .debug_weaknames 0 : { *(.debug_weaknames) }
451    .debug_funcnames 0 : { *(.debug_funcnames) }
452    .debug_typenames 0 : { *(.debug_typenames) }
453    .debug_varnames  0 : { *(.debug_varnames) }
454
455    /* Altera debug extensions */
456    .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) }
457";
458
459    HEAP = "SDRAM";
460    STACK = "SDRAM";
461}
462
Note: See TracBrowser for help on using the repository browser.