xref: /openbmc/linux/arch/alpha/kernel/vmlinux.lds.S (revision 565d76cb)
1#include <asm-generic/vmlinux.lds.h>
2#include <asm/thread_info.h>
3#include <asm/cache.h>
4#include <asm/page.h>
5
6OUTPUT_FORMAT("elf64-alpha")
7OUTPUT_ARCH(alpha)
8ENTRY(__start)
9PHDRS { kernel PT_LOAD; note PT_NOTE; }
10jiffies = jiffies_64;
11SECTIONS
12{
13#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
14	. = 0xfffffc0000310000;
15#else
16	. = 0xfffffc0001010000;
17#endif
18
19	_text = .;	/* Text and read-only data */
20	.text : {
21		HEAD_TEXT
22		TEXT_TEXT
23		SCHED_TEXT
24		LOCK_TEXT
25		*(.fixup)
26		*(.gnu.warning)
27	} :kernel
28	_etext = .;	/* End of text section */
29
30	NOTES :kernel :note
31	.dummy : {
32		*(.dummy)
33	} :kernel
34
35	RODATA
36	EXCEPTION_TABLE(16)
37
38	/* Will be freed after init */
39	__init_begin = ALIGN(PAGE_SIZE);
40	INIT_TEXT_SECTION(PAGE_SIZE)
41	INIT_DATA_SECTION(16)
42	PERCPU(L1_CACHE_BYTES, PAGE_SIZE)
43	/* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page
44	   needed for the THREAD_SIZE aligned init_task gets freed after init */
45	. = ALIGN(THREAD_SIZE);
46	__init_end = .;
47	/* Freed after init ends here */
48
49	_data = .;
50	RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
51
52	.got : {
53		*(.got)
54	}
55	.sdata : {
56		*(.sdata)
57	}
58	_edata = .;	/* End of data section */
59
60	BSS_SECTION(0, 0, 0)
61	_end = .;
62
63	.mdebug 0 : {
64		*(.mdebug)
65	}
66	.note 0 : {
67		*(.note)
68	}
69
70	STABS_DEBUG
71	DWARF_DEBUG
72
73	DISCARDS
74}
75