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