Prepend user to subject string
[kugel-rb.git] / firmware / rom.lds
bloba759ed2f9f1b81b8c24b6af3e26c8ad8f0a229ea
1 #include "config.h"
3 ENTRY(start)
4 OUTPUT_FORMAT(elf32-sh)
5 INPUT(crt0.o)
6 MEMORY
8    DRAM : ORIGIN = 0x09000000, LENGTH = (2 * 0x100000) - 0x8000
9    IRAM : ORIGIN = 0x0f000000, LENGTH = 0x1000
10    FLASH : ORIGIN = 0x02000000 + ROM_START, LENGTH = 256K - ROM_START
12 SECTIONS
14     .vectors :
15     {
16         _datacopy = .;
17     } > FLASH
19     .data : AT ( _datacopy )
20     {
21         _datastart = .;
22         *(.resetvectors);
23         *(.vectors);
24         . = _datastart + 0x200;
25         *(.data)
26         . = ALIGN(0x4);
27         _dataend = .;         
28         . = ALIGN(0x10);  /* Maintain proper alignment for .text section */
29     } > DRAM
30     
31     /* TRICK ALERT! Newer versions of the linker don't allow output sections
32        to overlap even if one of them is empty, so advance the location pointer
33        "by hand" */
34     .text LOADADDR(.data) + SIZEOF(.data) :
35     {
36         *(.init.text)
37         *(.text)
38         . = ALIGN(0x4);
39     } > FLASH
41     .rodata :
42     {
43         *(.rodata)
44         *(.rodata.str1.4)
45         . = ALIGN(0x4);
46         _iramcopy = .;
47     } > FLASH
49     .iram 0xf000000 : AT ( _iramcopy )
50     {
51         _iramstart = .;
52         *(.icode)
53         *(.idata)
54         _iramend = .;
55     } > IRAM
56   
57     .stack :
58     {
59        *(.stack)
60        _stackbegin = .;
61        . += 0x2000;
62        _stackend = .;
63     } > DRAM
65     .bss :
66     {
67        _edata = .;
68         *(.bss)
69         *(COMMON)
70        _end = .;
71     } > DRAM
73     .mp3buf :
74     {
75         . = ALIGN(0x4);
76         _mp3buffer = .;
77     } > DRAM
79     .mp3end (0x09000000 + (2 * 0x100000) - 0x8000):
80     {
81         _mp3end = .;
82     } > DRAM
84     .plugin (0x09000000 + (2 * 0x100000) - 0x8000):
85     {
86         _pluginbuf = .;
87     }