| 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 | BSS_SECTION(0, 0, 0) |
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 82 | |
| Greg Ungerer | f84f52a | 2012-01-05 15:51:13 +1000 | [diff] [blame] | 83 | _end = .; |
| 84 | |||||
| 85 | STABS_DEBUG | ||||
| 86 | .comment 0 : { *(.comment) } | ||||
| 87 | |||||
| 88 | /* Sections to be discarded */ | ||||
| Tejun Heo | 023bf6f | 2009-07-09 11:27:40 +0900 | [diff] [blame] | 89 | DISCARDS |
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 90 | } |
| 91 | |||||