xref: /openbmc/linux/arch/alpha/kernel/vmlinux.lds.S (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
2441110a5SKees Cook
3441110a5SKees Cook#define EMITS_PT_NOTE
4172c8b85SKees Cook#define RO_EXCEPTION_TABLE_ALIGN	16
5441110a5SKees Cook
61da177e4SLinus Torvalds#include <asm-generic/vmlinux.lds.h>
7de078ef5SSam Ravnborg#include <asm/thread_info.h>
80f06c063STejun Heo#include <asm/cache.h>
9b2b5d37dSSam Ravnborg#include <asm/page.h>
10ec221208SDavid Howells#include <asm/setup.h>
111da177e4SLinus Torvalds
121da177e4SLinus TorvaldsOUTPUT_FORMAT("elf64-alpha")
131da177e4SLinus TorvaldsOUTPUT_ARCH(alpha)
141da177e4SLinus TorvaldsENTRY(__start)
1565182e6eSKees CookPHDRS { text PT_LOAD; note PT_NOTE; }
161da177e4SLinus Torvaldsjiffies = jiffies_64;
171da177e4SLinus TorvaldsSECTIONS
181da177e4SLinus Torvalds{
191da177e4SLinus Torvalds#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
201da177e4SLinus Torvalds	. = 0xfffffc0000310000;
211da177e4SLinus Torvalds#else
221da177e4SLinus Torvalds	. = 0xfffffc0001010000;
231da177e4SLinus Torvalds#endif
241da177e4SLinus Torvalds
251da177e4SLinus Torvalds	_text = .;	/* Text and read-only data */
261da177e4SLinus Torvalds	.text : {
2792ca5234STim Abbott		HEAD_TEXT
287664709bSSam Ravnborg		TEXT_TEXT
291da177e4SLinus Torvalds		SCHED_TEXT
301da177e4SLinus Torvalds		LOCK_TEXT
311da177e4SLinus Torvalds		*(.fixup)
321da177e4SLinus Torvalds		*(.gnu.warning)
3365182e6eSKees Cook	} :text
34ec221208SDavid Howells	swapper_pg_dir = SWAPPER_PGD;
351da177e4SLinus Torvalds	_etext = .;	/* End of text section */
361da177e4SLinus Torvalds
37c8231825SKees Cook	RO_DATA(4096)
381da177e4SLinus Torvalds
391da177e4SLinus Torvalds	/* Will be freed after init */
409d93f005SGeoffrey Thomas	__init_begin = ALIGN(PAGE_SIZE);
419d93f005SGeoffrey Thomas	INIT_TEXT_SECTION(PAGE_SIZE)
429d93f005SGeoffrey Thomas	INIT_DATA_SECTION(16)
430415b00dSTejun Heo	PERCPU_SECTION(L1_CACHE_BYTES)
449d93f005SGeoffrey Thomas	/* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page
459d93f005SGeoffrey Thomas	   needed for the THREAD_SIZE aligned init_task gets freed after init */
469d93f005SGeoffrey Thomas	. = ALIGN(THREAD_SIZE);
471da177e4SLinus Torvalds	__init_end = .;
481da177e4SLinus Torvalds	/* Freed after init ends here */
491da177e4SLinus Torvalds
50a2d063acSSteven Rostedt	_sdata = .;	/* Start of rw data section */
511da177e4SLinus Torvalds	_data = .;
52c9174047SKees Cook	RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
531da177e4SLinus Torvalds
54b2b5d37dSSam Ravnborg	.got : {
55b2b5d37dSSam Ravnborg		*(.got)
56b2b5d37dSSam Ravnborg	}
57b2b5d37dSSam Ravnborg	.sdata : {
58b2b5d37dSSam Ravnborg		*(.sdata)
59b2b5d37dSSam Ravnborg	}
601da177e4SLinus Torvalds	_edata = .;	/* End of data section */
611da177e4SLinus Torvalds
629d93f005SGeoffrey Thomas	BSS_SECTION(0, 0, 0)
631da177e4SLinus Torvalds	_end = .;
641da177e4SLinus Torvalds
65b2b5d37dSSam Ravnborg	.mdebug 0 : {
66b2b5d37dSSam Ravnborg		*(.mdebug)
67b2b5d37dSSam Ravnborg	}
68b2b5d37dSSam Ravnborg	.note 0 : {
69b2b5d37dSSam Ravnborg		*(.note)
70b2b5d37dSSam Ravnborg	}
711da177e4SLinus Torvalds
72b2b5d37dSSam Ravnborg	STABS_DEBUG
73b2b5d37dSSam Ravnborg	DWARF_DEBUG
74*c604abc3SKees Cook	ELF_DETAILS
75023bf6f1STejun Heo
76023bf6f1STejun Heo	DISCARDS
771da177e4SLinus Torvalds}
78