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