Root/target/linux/coldfire/files-2.6.31/arch/m68k/kernel/vmlinux-cf.lds

1/* ld script to make m68k Coldfire Linux kernel
2 *
3 * Derived from arch/m68k/kernel/vmlinux-std.lds
4 *
5 * Updated 11/26/2007 for new CodeSourcery toolset
6 * by Kurt Mahan <kmahan@freescale.com>
7 *
8 * Copyright Freescale Semiconductor, Inc. 2008-2009
9 * Jason Jin Jason.Jin@freescale.com
10 * Shrek Wu B16972@freescale.com
11 */
12
13#define LOAD_OFFSET 0x00000000
14
15#include <asm-generic/vmlinux.lds.h>
16#include <asm/page_offset.h>
17
18#define START_OFFSET 0x00020000
19#define IMAGE_START PAGE_OFFSET_RAW + START_OFFSET
20
21OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
22OUTPUT_ARCH(m68k)
23ENTRY(_stext)
24jiffies = jiffies_64 + 4;
25SECTIONS
26{
27  . = IMAGE_START;
28  .text.head : AT(ADDR(.text.head) - LOAD_OFFSET) {
29    _text = .; /* Text and read-only data */
30    HEAD_TEXT
31    } :text = 0x4e75
32
33  .text : AT(ADDR(.text) - LOAD_OFFSET) {
34    TEXT_TEXT
35    SCHED_TEXT
36    LOCK_TEXT
37    *(.fixup)
38    *(.gnu.warning)
39    } :text = 0x4e75
40
41  _etext = .; /* End of text section */
42
43  . = ALIGN(16);
44  __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
45    __start___ex_table = .;
46    *(__ex_table)
47    __stop___ex_table = .;
48  }
49
50  RODATA
51
52  . = ALIGN(8192);
53  .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */
54    DATA_DATA
55    CONSTRUCTORS
56  } :data
57
58
59  . = ALIGN(16);
60  .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET ) {
61    *(.data.cacheline_aligned)
62  } :data
63
64  _edata = .; /* End of data section */
65
66  . = ALIGN(8192); /* Initrd */
67  .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
68      __init_begin = .;
69    _sinittext = .;
70    INIT_TEXT
71    _einittext = .;
72  }
73
74  .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
75    INIT_DATA
76  }
77
78  . = ALIGN(16);
79  .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
80    __setup_start = .;
81    *(.init.setup)
82      __setup_end = .;
83  }
84
85  .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
86    __initcall_start = .;
87    INITCALLS
88    __initcall_end = .;
89  }
90
91  .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
92    __con_initcall_start = .;
93    *(.con_initcall.init)
94    __con_initcall_end = .;
95  }
96
97  SECURITY_INIT
98
99#ifdef CONFIG_BLK_DEV_INITRD
100  . = ALIGN(8192);
101  .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
102    __initramfs_start = .;
103    *(.init.ramfs)
104    __initramfs_end = .;
105  }
106#endif
107  NOTES
108  . = ALIGN(8192);
109  __init_end = .;
110
111  .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
112    *(.data.init_task) /* The initial task and kernel stack */
113  }
114
115  _sbss = .;
116  .bss : AT(ADDR(.bss) - LOAD_OFFSET) { /* BSS */
117    *(.bss)
118  }
119  _ebss = .;
120
121  _end = . ;
122
123  /DISCARD/ : {
124    EXIT_TEXT
125    EXIT_DATA
126    *(.exitcall.exit)
127    *(.discard)
128    }
129
130  STABS_DEBUG
131  .comment 0 : { *(.comment) }
132
133  /* Sections to be discarded */
134  /*DISCARDS*/
135
136}
137

Archive Download this file



interactive