Merge ../linus
[linux-2.6] / arch / v850 / kernel / fpga85e2c.ld
1 /* Linker script for the FPGA implementation of the V850E2 NA85E2C cpu core
2    (CONFIG_V850E2_FPGA85E2C).  */
3
4 MEMORY {
5         /* Reset vector.  */
6         RESET    : ORIGIN = 0, LENGTH = 0x10
7         /* Interrupt vectors.  */
8         INTV      : ORIGIN = 0x10, LENGTH = 0x470
9         /* The `window' in RAM were we're allowed to load stuff.  */
10         RAM_LOW   : ORIGIN = 0x480, LENGTH = 0x0005FB80
11         /* Some more ram above the window were we can put bss &c.  */
12         RAM_HIGH  : ORIGIN = 0x00060000, LENGTH = 0x000A0000
13         /* This is the area visible from the outside world (we can use
14            this only for uninitialized data).  */
15         VISIBLE   : ORIGIN = 0x00200000, LENGTH = 0x00060000
16 }
17
18 SECTIONS {
19         .reset : {
20                 __kram_start = . ;
21                 __intv_start = . ;
22                         *(.intv.reset)  /* Reset vector */
23         } > RESET
24
25         .ram_low : {
26                 __r0_ram = . ;          /* Must be near address 0.  */
27                 . = . + 32 ;
28
29                 TEXT_CONTENTS
30                 DATA_CONTENTS
31                 ROOT_FS_CONTENTS
32                 RAMK_INIT_CONTENTS_NO_END
33                 INITRAMFS_CONTENTS
34         } > RAM_LOW
35
36         /* Where the interrupt vectors are initially loaded.  */
37         __intv_load_start = . ;
38
39         .intv : {
40                         *(.intv.common) /* Vectors common to all v850e proc. */
41                         *(.intv.mach)   /* Machine-specific int. vectors.  */
42                 __intv_end = . ;
43         } > INTV  AT> RAM_LOW
44
45         .ram_high : {
46                 /* This is here so that when we free init memory the
47                    load-time copy of the interrupt vectors and any empty
48                    space at the end of the `RAM_LOW' area is freed too.  */
49                 . = ALIGN (4096);
50                 __init_end = . ;
51
52                 BSS_CONTENTS
53                 __kram_end = . ;
54                 BOOTMAP_CONTENTS
55         } > RAM_HIGH
56
57         .visible : {
58                 _memcons_output = . ;
59                 . = . + 0x8000 ;
60                 _memcons_output_end = . ;
61         } > VISIBLE
62 }