Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 2 | /* |
| 3 | * vmlinux.lds.S -- master linker script for m68knommu arch |
| 4 | * |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 5 | * (C) Copyright 2002-2012, Greg Ungerer <gerg@snapgear.com> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 6 | * |
Lucas De Marchi | 25985ed | 2011-03-30 22:57:33 -0300 | [diff] [blame] | 7 | * This linker script is equipped to build either ROM loaded or RAM |
Greg Ungerer | 1c952af | 2006-06-28 16:44:14 +1000 | [diff] [blame] | 8 | * run kernels. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 9 | */ |
| 10 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 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 | |
Tim Abbott | f4bed4f | 2009-10-18 13:23:49 -0400 | [diff] [blame] | 20 | #include <asm/page.h> |
Tim Abbott | 49612a5 | 2009-10-18 13:23:51 -0400 | [diff] [blame] | 21 | #include <asm/thread_info.h> |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 22 | #include <asm-generic/vmlinux.lds.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 23 | |
| 24 | OUTPUT_ARCH(m68k) |
| 25 | ENTRY(_start) |
| 26 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 27 | jiffies = jiffies_64 + 4; |
| 28 | |
| 29 | SECTIONS { |
| 30 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 31 | #ifdef CONFIG_ROMVEC |
| 32 | . = CONFIG_ROMVEC; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 33 | .romvec : { |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 34 | __rom_start = .; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 35 | _romvec = .; |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 36 | *(.romvec) |
Denys Vlasenko | 2c31c34 | 2010-02-20 01:03:54 +0100 | [diff] [blame] | 37 | *(.data..initvect) |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 38 | } |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 39 | #endif |
| 40 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 41 | . = KTEXT_ADDR; |
| 42 | |
| 43 | _text = .; |
| 44 | _stext = .; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 45 | .text : { |
Greg Ungerer | 9b0e741 | 2008-07-11 15:29:36 +1000 | [diff] [blame] | 46 | HEAD_TEXT |
Sam Ravnborg | 7664709 | 2007-05-13 00:31:33 +0200 | [diff] [blame] | 47 | TEXT_TEXT |
Greg Ungerer | 3079114 | 2017-11-14 11:50:07 +1000 | [diff] [blame] | 48 | IRQENTRY_TEXT |
| 49 | SOFTIRQENTRY_TEXT |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 50 | SCHED_TEXT |
Chris Metcalf | 6727ad9 | 2016-10-07 17:02:55 -0700 | [diff] [blame] | 51 | CPUIDLE_TEXT |
Sebastian Siewior | 779125c | 2008-05-01 12:16:46 +1000 | [diff] [blame] | 52 | LOCK_TEXT |
Greg Ungerer | ed865e3 | 2011-10-19 13:50:35 +1000 | [diff] [blame] | 53 | *(.fixup) |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 54 | . = ALIGN(16); |
| 55 | } |
| 56 | _etext = .; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 57 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 58 | #ifdef KDATA_ADDR |
| 59 | . = KDATA_ADDR; |
| 60 | #endif |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 61 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 62 | _sdata = .; |
| 63 | RO_DATA_SECTION(PAGE_SIZE) |
| 64 | RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) |
| 65 | _edata = .; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 66 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 67 | EXCEPTION_TABLE(16) |
| 68 | NOTES |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 69 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 70 | . = ALIGN(PAGE_SIZE); |
| 71 | __init_begin = .; |
| 72 | INIT_TEXT_SECTION(PAGE_SIZE) |
| 73 | INIT_DATA_SECTION(16) |
| 74 | PERCPU_SECTION(16) |
Greg Ungerer | ed865e3 | 2011-10-19 13:50:35 +1000 | [diff] [blame] | 75 | .m68k_fixup : { |
| 76 | __start_fixup = .; |
| 77 | *(.m68k_fixup) |
| 78 | __stop_fixup = .; |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 79 | } |
Tim Abbott | 53749f7 | 2009-10-18 13:23:55 -0400 | [diff] [blame] | 80 | .init.data : { |
Tim Abbott | f4bed4f | 2009-10-18 13:23:49 -0400 | [diff] [blame] | 81 | . = ALIGN(PAGE_SIZE); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 82 | __init_end = .; |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 83 | } |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 84 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 85 | BSS_SECTION(0, 0, 0) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 86 | |
Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 87 | _end = .; |
| 88 | |
| 89 | STABS_DEBUG |
| 90 | .comment 0 : { *(.comment) } |
| 91 | |
| 92 | /* Sections to be discarded */ |
Tejun Heo | 023bf6f | 2009-07-09 11:27:40 +0900 | [diff] [blame] | 93 | DISCARDS |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 94 | } |
| 95 | |