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