xref: /openbmc/linux/arch/alpha/kernel/vmlinux.lds.S (revision 81d67439)
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_SECTION(L1_CACHE_BYTES)
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	_sdata = .;	/* Start of rw data section */
50	_data = .;
51	RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
52
53	.got : {
54		*(.got)
55	}
56	.sdata : {
57		*(.sdata)
58	}
59	_edata = .;	/* End of data section */
60
61	BSS_SECTION(0, 0, 0)
62	_end = .;
63
64	.mdebug 0 : {
65		*(.mdebug)
66	}
67	.note 0 : {
68		*(.note)
69	}
70
71	STABS_DEBUG
72	DWARF_DEBUG
73
74	DISCARDS
75}
76