blob: cebecfb76fbf6e87e02836651d5b7279cff00350 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <asm-generic/vmlinux.lds.h>
Sam Ravnborgde078ef2009-09-25 19:53:43 +02002#include <asm/thread_info.h>
Tejun Heo0f06c062011-01-25 14:27:38 +01003#include <asm/cache.h>
Sam Ravnborgb2b5d372007-10-16 01:26:35 -07004#include <asm/page.h>
David Howellsec221202012-03-28 18:11:12 +01005#include <asm/setup.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07006
7OUTPUT_FORMAT("elf64-alpha")
8OUTPUT_ARCH(alpha)
9ENTRY(__start)
Roland McGrathcaf45dd2007-07-19 01:48:37 -070010PHDRS { kernel PT_LOAD; note PT_NOTE; }
Linus Torvalds1da177e2005-04-16 15:20:36 -070011jiffies = jiffies_64;
12SECTIONS
13{
14#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070015 . = 0xfffffc0000310000;
Linus Torvalds1da177e2005-04-16 15:20:36 -070016#else
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070017 . = 0xfffffc0001010000;
Linus Torvalds1da177e2005-04-16 15:20:36 -070018#endif
19
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070020 _text = .; /* Text and read-only data */
21 .text : {
Tim Abbott92ca5232009-04-25 22:10:58 -040022 HEAD_TEXT
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070023 TEXT_TEXT
24 SCHED_TEXT
Chris Metcalf6727ad92016-10-07 17:02:55 -070025 CPUIDLE_TEXT
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070026 LOCK_TEXT
27 *(.fixup)
28 *(.gnu.warning)
29 } :kernel
David Howellsec221202012-03-28 18:11:12 +010030 swapper_pg_dir = SWAPPER_PGD;
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070031 _etext = .; /* End of text section */
Linus Torvalds1da177e2005-04-16 15:20:36 -070032
Bastian Blank51597ac2008-07-04 10:00:00 -070033 NOTES :kernel :note
34 .dummy : {
35 *(.dummy)
36 } :kernel
37
38 RODATA
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040039 EXCEPTION_TABLE(16)
Linus Torvalds1da177e2005-04-16 15:20:36 -070040
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070041 /* Will be freed after init */
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040042 __init_begin = ALIGN(PAGE_SIZE);
43 INIT_TEXT_SECTION(PAGE_SIZE)
44 INIT_DATA_SECTION(16)
Tejun Heo0415b00d12011-03-24 18:50:09 +010045 PERCPU_SECTION(L1_CACHE_BYTES)
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040046 /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page
47 needed for the THREAD_SIZE aligned init_task gets freed after init */
48 . = ALIGN(THREAD_SIZE);
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070049 __init_end = .;
50 /* Freed after init ends here */
Linus Torvalds1da177e2005-04-16 15:20:36 -070051
Steven Rostedta2d063a2011-05-19 21:34:58 -040052 _sdata = .; /* Start of rw data section */
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070053 _data = .;
Tejun Heo0f06c062011-01-25 14:27:38 +010054 RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
Linus Torvalds1da177e2005-04-16 15:20:36 -070055
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070056 .got : {
57 *(.got)
58 }
59 .sdata : {
60 *(.sdata)
61 }
62 _edata = .; /* End of data section */
Linus Torvalds1da177e2005-04-16 15:20:36 -070063
Geoffrey Thomas9d93f002009-09-24 10:36:26 -040064 BSS_SECTION(0, 0, 0)
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070065 _end = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070066
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070067 .mdebug 0 : {
68 *(.mdebug)
69 }
70 .note 0 : {
71 *(.note)
72 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070073
Sam Ravnborgb2b5d372007-10-16 01:26:35 -070074 STABS_DEBUG
75 DWARF_DEBUG
Tejun Heo023bf6f2009-07-09 11:27:40 +090076
77 DISCARDS
Linus Torvalds1da177e2005-04-16 15:20:36 -070078}