Loading...
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
24OUTPUT_ARCH(m68k)
25ENTRY(_start)
26
27jiffies = jiffies_64 + 4;
28
29SECTIONS {
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(PAGE_SIZE)
64 RW_DATA(16, PAGE_SIZE, THREAD_SIZE)
65 _edata = .;
66
67 EXCEPTION_TABLE(16)
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(4, 0, 4)
85
86 _end = .;
87
88 STABS_DEBUG
89 ELF_DETAILS
90
91 /* Sections to be discarded */
92 DISCARDS
93}
94
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
23OUTPUT_ARCH(m68k)
24ENTRY(_start)
25
26jiffies = jiffies_64 + 4;
27
28SECTIONS {
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 SCHED_TEXT
48 CPUIDLE_TEXT
49 LOCK_TEXT
50 *(.fixup)
51 . = ALIGN(16);
52 }
53 _etext = .;
54
55#ifdef KDATA_ADDR
56 . = KDATA_ADDR;
57#endif
58
59 _sdata = .;
60 RO_DATA_SECTION(PAGE_SIZE)
61 RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
62 _edata = .;
63
64 EXCEPTION_TABLE(16)
65 NOTES
66
67 . = ALIGN(PAGE_SIZE);
68 __init_begin = .;
69 INIT_TEXT_SECTION(PAGE_SIZE)
70 INIT_DATA_SECTION(16)
71 PERCPU_SECTION(16)
72 .m68k_fixup : {
73 __start_fixup = .;
74 *(.m68k_fixup)
75 __stop_fixup = .;
76 }
77 .init.data : {
78 . = ALIGN(PAGE_SIZE);
79 __init_end = .;
80 }
81
82 BSS_SECTION(0, 0, 0)
83
84 _end = .;
85
86 STABS_DEBUG
87 .comment 0 : { *(.comment) }
88
89 /* Sections to be discarded */
90 DISCARDS
91}
92