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	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
96