• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* ld script to make M32R Linux kernel
2 */
3
4#include <asm-generic/vmlinux.lds.h>
5#include <asm/addrspace.h>
6#include <asm/page.h>
7
8OUTPUT_ARCH(m32r)
9#if defined(__LITTLE_ENDIAN__)
10       jiffies = jiffies_64;
11#else
12       jiffies = jiffies_64 + 4;
13#endif
14
15kernel_entry = boot - 0x80000000;
16ENTRY(kernel_entry)
17
18SECTIONS
19{
20  . = CONFIG_MEMORY_START + __PAGE_OFFSET;
21  eit_vector = .;
22
23  . = . + 0x1000;
24  .empty_zero_page : { *(.empty_zero_page) } = 0
25
26  /* read-only */
27  _text = .;			/* Text and read-only data */
28  .boot : { *(.boot) } = 0
29  .text : {
30	*(.text.head)
31	TEXT_TEXT
32	SCHED_TEXT
33	LOCK_TEXT
34	*(.fixup)
35	*(.gnu.warning)
36	} = 0x9090
37#ifdef CONFIG_SMP
38  . = ALIGN(65536);
39  .eit_vector4 : { *(.eit_vector4) }
40#endif
41  _etext = .;			/* End of text section */
42
43  . = ALIGN(16);		/* Exception table */
44  __start___ex_table = .;
45  __ex_table : { *(__ex_table) }
46  __stop___ex_table = .;
47
48  RODATA
49
50  /* writeable */
51  .data : {			/* Data */
52	*(.spu)
53	*(.spi)
54	DATA_DATA
55	CONSTRUCTORS
56	}
57
58  . = ALIGN(4096);
59  __nosave_begin = .;
60  .data_nosave : { *(.data.nosave) }
61  . = ALIGN(4096);
62  __nosave_end = .;
63
64  . = ALIGN(32);
65  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
66
67  _edata = .;			/* End of data section */
68
69  . = ALIGN(8192);		/* init_task */
70  .data.init_task : { *(.data.init_task) }
71
72  /* will be freed after init */
73  . = ALIGN(4096);		/* Init code and data */
74  __init_begin = .;
75  .init.text : {
76	_sinittext = .;
77	INIT_TEXT
78	_einittext = .;
79  }
80  .init.data : { INIT_DATA }
81  . = ALIGN(16);
82  __setup_start = .;
83  .init.setup : { *(.init.setup) }
84  __setup_end = .;
85  __initcall_start = .;
86  .initcall.init : {
87	INITCALLS
88  }
89  __initcall_end = .;
90  __con_initcall_start = .;
91  .con_initcall.init : { *(.con_initcall.init) }
92  __con_initcall_end = .;
93  SECURITY_INIT
94  . = ALIGN(4);
95  __alt_instructions = .;
96  .altinstructions : { *(.altinstructions) }
97  __alt_instructions_end = .;
98  .altinstr_replacement : { *(.altinstr_replacement) }
99  /* .exit.text is discard at runtime, not link time, to deal with references
100     from .altinstructions and .eh_frame */
101  .exit.text : { EXIT_TEXT }
102  .exit.data : { EXIT_DATA }
103
104#ifdef CONFIG_BLK_DEV_INITRD
105  . = ALIGN(4096);
106  __initramfs_start = .;
107  .init.ramfs : { *(.init.ramfs) }
108  __initramfs_end = .;
109#endif
110
111  PERCPU(4096)
112  . = ALIGN(4096);
113  __init_end = .;
114  /* freed after init ends here */
115
116  __bss_start = .;		/* BSS */
117  .bss : { *(.bss) }
118  . = ALIGN(4);
119  __bss_stop = .;
120
121  _end = . ;
122
123  /* Sections to be discarded */
124  /DISCARD/ : {
125	EXIT_TEXT
126	EXIT_DATA
127	*(.exitcall.exit)
128	}
129
130  /* Stabs debugging sections.  */
131  .stab 0 : { *(.stab) }
132  .stabstr 0 : { *(.stabstr) }
133  .stab.excl 0 : { *(.stab.excl) }
134  .stab.exclstr 0 : { *(.stab.exclstr) }
135  .stab.index 0 : { *(.stab.index) }
136  .stab.indexstr 0 : { *(.stab.indexstr) }
137  .comment 0 : { *(.comment) }
138}
139