GNU Linux-libre 4.9.309-gnu1
[releases.git] / arch / m68k / kernel / vmlinux-nommu.lds
1 /*
2  *      vmlinux.lds.S -- master linker script for m68knommu arch
3  *
4  *      (C) Copyright 2002-2012, Greg Ungerer <gerg@snapgear.com>
5  *
6  *      This linker script is equipped to build either ROM loaded or RAM
7  *      run kernels.
8  */
9
10 #if defined(CONFIG_RAMKERNEL)
11 #define KTEXT_ADDR      CONFIG_KERNELBASE
12 #endif
13 #if defined(CONFIG_ROMKERNEL)
14 #define KTEXT_ADDR      CONFIG_ROMSTART
15 #define KDATA_ADDR      CONFIG_KERNELBASE
16 #define LOAD_OFFSET     KDATA_ADDR + (ADDR(.text) + SIZEOF(.text))
17 #endif
18
19 #include <asm/page.h>
20 #include <asm/thread_info.h>
21 #include <asm-generic/vmlinux.lds.h>
22
23 OUTPUT_ARCH(m68k)
24 ENTRY(_start)
25
26 jiffies = jiffies_64 + 4;
27
28 SECTIONS {
29
30 #ifdef CONFIG_ROMVEC
31         . = CONFIG_ROMVEC;
32         .romvec : {
33                 __rom_start = .;
34                 _romvec = .;
35                 *(.romvec)
36                 *(.data..initvect)
37         }
38 #endif
39
40         . = KTEXT_ADDR;
41
42         _text = .;
43         _stext = .;
44         .text : {
45                 HEAD_TEXT
46                 TEXT_TEXT
47                 IRQENTRY_TEXT
48                 SOFTIRQENTRY_TEXT
49                 SCHED_TEXT
50                 CPUIDLE_TEXT
51                 LOCK_TEXT
52                 *(.fixup)
53                 . = ALIGN(16);
54         }
55         _etext = .;
56
57 #ifdef KDATA_ADDR
58         . = KDATA_ADDR;
59 #endif
60
61         _sdata = .;
62         RO_DATA_SECTION(PAGE_SIZE)
63         RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
64         _edata = .;
65
66         EXCEPTION_TABLE(16)
67         NOTES
68
69         . = ALIGN(PAGE_SIZE);
70         __init_begin = .;
71         INIT_TEXT_SECTION(PAGE_SIZE)
72         INIT_DATA_SECTION(16)
73         PERCPU_SECTION(16)
74         .m68k_fixup : {
75                 __start_fixup = .;
76                 *(.m68k_fixup)
77                 __stop_fixup = .;
78         }
79         .init.data : {
80                 . = ALIGN(PAGE_SIZE);
81                 __init_end = .;
82         }
83
84         BSS_SECTION(0, 0, 0)
85
86         _end = .;
87
88         STABS_DEBUG
89         .comment 0 : { *(.comment) }
90
91         /* Sections to be discarded */
92         DISCARDS
93 }
94