Packard Bell Vibe: manual - add a few plugin keymaps.
[kugel-rb.git] / firmware / target / sh / archos / boot.lds
blobb3c2c90a6cead6de6b048b6e5e098fadca608449
1 #include "config.h"
3 ENTRY(start)
4 OUTPUT_FORMAT(elf32-sh)
5 STARTUP(target/sh/crt0.o)
7 #define DRAMSIZE (MEMORYSIZE * 0x100000)
9 #define DRAMORIG 0x09000000
10 #define IRAMORIG 0x0f000000
11 #define IRAMSIZE 0x1000
12 #define FLASHORIG 0x02000000 + ROM_START
13 #define FLASHSIZE 256K - ROM_START
15 MEMORY
17    DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
18    IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
19    FLASH : ORIGIN = FLASHORIG, LENGTH = FLASHSIZE
22 SECTIONS
24     .vectors :
25     {
26         _datacopy = .;
27     } > FLASH
29     .data : AT ( _datacopy )
30     {
31         _datastart = .;
32         KEEP(*(.resetvectors));
33         *(.resetvectors);
34         KEEP(*(.vectors));
35         *(.vectors);
36         . = ALIGN(0x200);
37         *(.icode)
38         *(.irodata)
39         *(.idata)
40         *(.data*)
41         . = ALIGN(0x4);
42         _dataend = .;
43         . = ALIGN(0x10);  /* Maintain proper alignment for .text section */
44     } > IRAM
46     /* TRICK ALERT! Newer versions of the linker don't allow output sections
47        to overlap even if one of them is empty, so advance the location pointer
48        "by hand" */
49     .text LOADADDR(.data) + SIZEOF(.data) :
50     {
51         *(.init.text)
52         *(.text*)
53         . = ALIGN(0x4);
54     } > FLASH
56     .rodata :
57     {
58         *(.rodata*)
59         . = ALIGN(0x4);
60         _iramcopy = .;
61     } > FLASH
63     .stack :
64     {
65        *(.stack)
66        _stackbegin = .;
67        stackbegin = .;
68        . += 0x2000;
69        _stackend = .;
70        stackend = .;
71     } > IRAM
73     .bss :
74     {
75        _edata = .;
76         *(.ibss)
77         *(.bss*)
78         *(COMMON)
79        _end = .;
80     } > IRAM