Add the thread state check into test_codec as used in mpegplayer which makes it shoul...
[Rockbox.git] / apps / plugins / plugin.lds
blob57afb9a09ee7516348a7af0a2307903303880b98
1 #include "config.h"
3 /* These output formats should be in the config-files */
5 #ifdef CPU_COLDFIRE
6 OUTPUT_FORMAT(elf32-m68k)
7 #elif defined(CPU_ARM)
8 OUTPUT_FORMAT(elf32-littlearm)
9 #else
10 OUTPUT_FORMAT(elf32-sh)
11 #endif
13 #ifdef DEBUG
14 #define STUBOFFSET 0x10000
15 #else
16 #define STUBOFFSET 0
17 #endif
19 #if CONFIG_CPU==S3C2440
20 #include "s3c2440.h"
21 #define DRAMSIZE (MEMORYSIZE * 0x100000) - 0x100 - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE - LCD_BUFFER_SIZE - TTB_SIZE
22 #elif CONFIG_CPU==DM320
23 #include "dm320.h"
24 #define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE - LCD_BUFFER_SIZE
25 #else
26 #define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGIN_BUFFER_SIZE - STUBOFFSET - CODEC_SIZE
27 #endif
29 #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300)
30 #define ARCH_IRIVER
31 #endif
33 #ifdef ARCH_IRIVER
34 #define DRAMORIG 0x31000000
35 #define IRAMORIG 0x1000c000
36 #define IRAMSIZE 0xc000
37 #elif defined(IAUDIO_X5) || defined(IAUDIO_M5)
38 #define DRAMORIG 0x31000000
39 #define IRAMORIG 0x10010000
40 #define IRAMSIZE 0x10000
41 #elif defined(CPU_PP)
42 #define DRAMORIG 0x00000000
43 #define IRAMORIG 0x4000c000
44 #define IRAMSIZE 0xc000
45 #elif CONFIG_CPU == PNX0101
46 #define DRAMORIG 0xc00000 + STUBOFFSET
47 #define IRAMORIG 0x407000
48 #define IRAMSIZE 0x9000
49 #elif CONFIG_CPU == S3C2440
50 #define DRAMORIG 0x100 + STUBOFFSET
51 #define IRAMORIG DRAMORIG
52 #define IRAMSIZE 4K
53 #define IRAM DRAM
54 #elif CONFIG_CPU == IMX31L
55 #define DRAMORIG 0x80000000
56 #define IRAMORIG 0x1FFFC000
57 #define IRAMSIZE 0x4000
58 #elif CONFIG_CPU==DM320
59 #define DRAMORIG 0x00900000 + STUBOFFSET
60 #define IRAMORIG 0x00000100
61 #define IRAMSIZE 0x4000-0x100
62 #else
63 #define DRAMORIG 0x09000000 + STUBOFFSET
64 #endif
66 #define PLUGIN_LENGTH PLUGIN_BUFFER_SIZE
68 #define CODEC_ORIGIN (DRAMORIG + (DRAMSIZE))
69 #define PLUGIN_ORIGIN (CODEC_ORIGIN + CODEC_SIZE)
71 #ifdef CODEC
72 #define THIS_LENGTH CODEC_SIZE
73 #define THIS_ORIGIN CODEC_ORIGIN
74 #else
75 #define THIS_LENGTH PLUGIN_LENGTH
76 #define THIS_ORIGIN PLUGIN_ORIGIN
77 #endif
79 MEMORY
81    PLUGIN_RAM : ORIGIN = THIS_ORIGIN, LENGTH = THIS_LENGTH
82 #if defined(IRAMSIZE)
83    PLUGIN_IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
84 #endif
87 SECTIONS
89     .header : {
90         _plugin_start_addr = .;
91         plugin_start_addr = .;
92         KEEP(*(.header))
93     } > PLUGIN_RAM
95     .text :
96     {
97         *(.text*)
98 #ifdef CPU_ARM
99         *(.glue_7)
100         *(.glue_7t)
101 #endif
102     } > PLUGIN_RAM
104     .rodata :
105     {
106         *(.rodata*)
107         . = ALIGN(0x4);
108     } > PLUGIN_RAM
110     .data :
111     {
112         *(.data*)
113 #if defined(IRAMSIZE)
114         iramcopy = .;
115 #endif
116     } > PLUGIN_RAM
118     /DISCARD/ :
119     {
120         *(.eh_frame)
121     }
123 #if defined(IRAMSIZE)
124     .iram IRAMORIG : AT ( iramcopy)
125     {
126         iramstart = .;
127         *(.icode)
128         *(.irodata)
129         *(.idata)
130         iramend = .;
131     } > PLUGIN_IRAM
133     .ibss (NOLOAD) :
134     {
135         iedata = .;
136         *(.ibss)
137         . = ALIGN(0x4);
138         iend = .;
139     } > PLUGIN_IRAM
140 #endif
142     .bss (NOLOAD) :
143     {
144     plugin_bss_start = .;
145         *(.bss*)
146         *(COMMON)
147         . = ALIGN(0x4);
148         _plugin_end_addr = .;
149         plugin_end_addr = .;
150     } > PLUGIN_RAM
152     /* Special trick to avoid a linker error when no other sections are
153        left after garbage collection (plugin not for this platform) */
154     .comment 0 :
155     {
156         KEEP(*(.comment))
157     }