Merge remote-tracking branch 'remotes/powerpc/topic/xive' into kvm-ppc-next
[linux/fpc-iii.git] / arch / frv / kernel / vmlinux.lds.S
blobaa6e573d57da46d1cb05bec37cb9dfcc7bfac13f
1 /* ld script to make FRV Linux kernel
2  * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>;
3  */
4 OUTPUT_FORMAT("elf32-frv", "elf32-frv", "elf32-frv")
5 OUTPUT_ARCH(frv)
6 ENTRY(_start)
8 #include <asm-generic/vmlinux.lds.h>
9 #include <asm/processor.h>
10 #include <asm/page.h>
11 #include <asm/cache.h>
12 #include <asm/thread_info.h>
14 jiffies = jiffies_64 + 4;
16 __page_offset = CONFIG_PAGE_OFFSET;     /* start of area covered by struct pages */
17 __kernel_image_start = __page_offset;   /* address at which kernel image resides */
19 SECTIONS
21   . = __kernel_image_start;
23   /* discardable initialisation code and data */
24   . = ALIGN(PAGE_SIZE);                 /* Init code and data */
25   __init_begin = .;
27   _sinittext = .;
28   .init.text : {
29         HEAD_TEXT
30 #ifndef CONFIG_DEBUG_INFO
31         INIT_TEXT
32         EXIT_TEXT
33         EXIT_DATA
34         *(.exitcall.exit)
35 #endif
36   }
37   _einittext = .;
39   INIT_DATA_SECTION(8)
40   PERCPU_SECTION(L1_CACHE_BYTES)
42   . = ALIGN(PAGE_SIZE);
43   __init_end = .;
45   .trap : {
46         /* trap table management - read entry-table.S before modifying */
47         . = ALIGN(8192);
48         __trap_tables = .;
49         *(.trap.user)
50         *(.trap.kernel)
51         . = ALIGN(4096);
52         *(.trap.break)
53   }
55   /* Text and read-only data */
56   . = ALIGN(4);
57   _text = .;
58   _stext = .;
59   .text : {
60         *(.text..start)
61         *(.text..entry)
62         *(.text..break)
63         *(.text..tlbmiss)
64         TEXT_TEXT
65         SCHED_TEXT
66         CPUIDLE_TEXT
67         LOCK_TEXT
68 #ifdef CONFIG_DEBUG_INFO
69         INIT_TEXT
70         EXIT_TEXT
71         *(.exitcall.exit)
72 #endif
73         *(.fixup)
74         *(.gnu.warning)
75         *(.exitcall.exit)
76         } = 0x9090
78   _etext = .;                   /* End of text section */
80   RODATA
82   .rodata : {
83         *(.trap.vector)
85         /* this clause must not be modified - the ordering and adjacency are imperative */
86         __trap_fixup_tables = .;
87         *(.trap.fixup.user .trap.fixup.kernel)
89         }
91   EXCEPTION_TABLE(8)
93   _sdata = .;
94   .data : {                     /* Data */
95         INIT_TASK_DATA(THREAD_SIZE)
96         CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
97         DATA_DATA
98         *(.data.*)
99         EXIT_DATA
100         CONSTRUCTORS
101         }
103   _edata = .;                   /* End of data section */
105   /* GP section */
106   . = ALIGN(L1_CACHE_BYTES);
107   _gp = . + 2048;
108   PROVIDE (gp = _gp);
110   .sdata : { *(.sdata .sdata.*) }
112   /* BSS */
113   . = ALIGN(L1_CACHE_BYTES);
114   __bss_start = .;
116   .sbss         : { *(.sbss .sbss.*) }
117   .bss          : { *(.bss .bss.*) }
118   .bss..stack   : { *(.bss) }
120   __bss_stop = .;
121   _end = . ;
122   . = ALIGN(PAGE_SIZE);
123   __kernel_image_end = .;
125   STABS_DEBUG
126   DWARF_DEBUG
128   .comment 0 : { *(.comment) }
130   DISCARDS
133 __kernel_image_size_no_bss = __bss_start - __kernel_image_start;