blob: cf6edda389719535e25d505dfdc31d885995cffb [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002/*
3 * vmlinux.lds.S -- master linker script for m68knommu arch
4 *
Greg Ungererf84f52a2012-01-05 15:51:13 +10005 * (C) Copyright 2002-2012, Greg Ungerer <gerg@snapgear.com>
Linus Torvalds1da177e2005-04-16 15:20:36 -07006 *
Lucas De Marchi25985ed2011-03-30 22:57:33 -03007 * This linker script is equipped to build either ROM loaded or RAM
Greg Ungerer1c952af2006-06-28 16:44:14 +10008 * run kernels.
Linus Torvalds1da177e2005-04-16 15:20:36 -07009 */
10
Greg Ungererf84f52a2012-01-05 15:51:13 +100011#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
Tim Abbottf4bed4f2009-10-18 13:23:49 -040020#include <asm/page.h>
Tim Abbott49612a52009-10-18 13:23:51 -040021#include <asm/thread_info.h>
Greg Ungererf84f52a2012-01-05 15:51:13 +100022#include <asm-generic/vmlinux.lds.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070023
24OUTPUT_ARCH(m68k)
25ENTRY(_start)
26
Linus Torvalds1da177e2005-04-16 15:20:36 -070027jiffies = jiffies_64 + 4;
28
29SECTIONS {
30
Greg Ungererf84f52a2012-01-05 15:51:13 +100031#ifdef CONFIG_ROMVEC
32 . = CONFIG_ROMVEC;
Linus Torvalds1da177e2005-04-16 15:20:36 -070033 .romvec : {
Greg Ungererf84f52a2012-01-05 15:51:13 +100034 __rom_start = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070035 _romvec = .;
Greg Ungererf84f52a2012-01-05 15:51:13 +100036 *(.romvec)
Denys Vlasenko2c31c342010-02-20 01:03:54 +010037 *(.data..initvect)
Greg Ungererf84f52a2012-01-05 15:51:13 +100038 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070039#endif
40
Greg Ungererf84f52a2012-01-05 15:51:13 +100041 . = KTEXT_ADDR;
42
43 _text = .;
44 _stext = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070045 .text : {
Greg Ungerer9b0e7412008-07-11 15:29:36 +100046 HEAD_TEXT
Sam Ravnborg76647092007-05-13 00:31:33 +020047 TEXT_TEXT
Greg Ungerer30791142017-11-14 11:50:07 +100048 IRQENTRY_TEXT
49 SOFTIRQENTRY_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070050 SCHED_TEXT
Chris Metcalf6727ad92016-10-07 17:02:55 -070051 CPUIDLE_TEXT
Sebastian Siewior779125c2008-05-01 12:16:46 +100052 LOCK_TEXT
Greg Ungerered865e32011-10-19 13:50:35 +100053 *(.fixup)
Greg Ungererf84f52a2012-01-05 15:51:13 +100054 . = ALIGN(16);
55 }
56 _etext = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070057
Greg Ungererf84f52a2012-01-05 15:51:13 +100058#ifdef KDATA_ADDR
59 . = KDATA_ADDR;
60#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070061
Greg Ungererf84f52a2012-01-05 15:51:13 +100062 _sdata = .;
63 RO_DATA_SECTION(PAGE_SIZE)
64 RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
65 _edata = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070066
Greg Ungererf84f52a2012-01-05 15:51:13 +100067 EXCEPTION_TABLE(16)
68 NOTES
Linus Torvalds1da177e2005-04-16 15:20:36 -070069
Greg Ungererf84f52a2012-01-05 15:51:13 +100070 . = ALIGN(PAGE_SIZE);
71 __init_begin = .;
72 INIT_TEXT_SECTION(PAGE_SIZE)
73 INIT_DATA_SECTION(16)
74 PERCPU_SECTION(16)
Greg Ungerered865e32011-10-19 13:50:35 +100075 .m68k_fixup : {
76 __start_fixup = .;
77 *(.m68k_fixup)
78 __stop_fixup = .;
Greg Ungererf84f52a2012-01-05 15:51:13 +100079 }
Tim Abbott53749f72009-10-18 13:23:55 -040080 .init.data : {
Tim Abbottf4bed4f2009-10-18 13:23:49 -040081 . = ALIGN(PAGE_SIZE);
Linus Torvalds1da177e2005-04-16 15:20:36 -070082 __init_end = .;
Greg Ungererf84f52a2012-01-05 15:51:13 +100083 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070084
Greg Ungererf84f52a2012-01-05 15:51:13 +100085 BSS_SECTION(0, 0, 0)
Linus Torvalds1da177e2005-04-16 15:20:36 -070086
Greg Ungererf84f52a2012-01-05 15:51:13 +100087 _end = .;
88
89 STABS_DEBUG
90 .comment 0 : { *(.comment) }
91
92 /* Sections to be discarded */
Tejun Heo023bf6f2009-07-09 11:27:40 +090093 DISCARDS
Linus Torvalds1da177e2005-04-16 15:20:36 -070094}
95