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