xref: /openbmc/linux/arch/sparc/kernel/vmlinux.lds.S (revision 01ba2bdc6b639764745ff678caf3fb9e5bcd745a)
11da177e4SLinus Torvalds/* ld script to make SparcLinux kernel */
21da177e4SLinus Torvalds
31da177e4SLinus Torvalds#include <asm-generic/vmlinux.lds.h>
4bcbe40ebSSam Ravnborg#include <asm/page.h>
51da177e4SLinus Torvalds
61da177e4SLinus TorvaldsOUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
71da177e4SLinus TorvaldsOUTPUT_ARCH(sparc)
81da177e4SLinus TorvaldsENTRY(_start)
91da177e4SLinus Torvaldsjiffies = jiffies_64 + 4;
101da177e4SLinus TorvaldsSECTIONS
111da177e4SLinus Torvalds{
121da177e4SLinus Torvalds	. = 0x10000 + SIZEOF_HEADERS;
131da177e4SLinus Torvalds	.text 0xf0004000 :
141da177e4SLinus Torvalds	{
15fd593d12SEric W. Biederman		_text = .;
167664709bSSam Ravnborg		TEXT_TEXT
171da177e4SLinus Torvalds		SCHED_TEXT
181da177e4SLinus Torvalds		LOCK_TEXT
191da177e4SLinus Torvalds		*(.gnu.warning)
201da177e4SLinus Torvalds	} = 0
211da177e4SLinus Torvalds	_etext = .;
221da177e4SLinus Torvalds	PROVIDE (etext = .);
231da177e4SLinus Torvalds	RODATA
24bcbe40ebSSam Ravnborg	.data :	{
25ca967258SSam Ravnborg		DATA_DATA
261da177e4SLinus Torvalds		CONSTRUCTORS
271da177e4SLinus Torvalds	}
28bcbe40ebSSam Ravnborg	.data1 : {
29bcbe40ebSSam Ravnborg		*(.data1)
30bcbe40ebSSam Ravnborg	}
311da177e4SLinus Torvalds	_edata = .;
321da177e4SLinus Torvalds	PROVIDE (edata = .);
33bcbe40ebSSam Ravnborg
34bcbe40ebSSam Ravnborg	.fixup : {
351da177e4SLinus Torvalds		__start___fixup = .;
36bcbe40ebSSam Ravnborg		*(.fixup)
371da177e4SLinus Torvalds		__stop___fixup = .;
38bcbe40ebSSam Ravnborg	}
39bcbe40ebSSam Ravnborg	__ex_table : {
401da177e4SLinus Torvalds		__start___ex_table = .;
41bcbe40ebSSam Ravnborg		*(__ex_table)
421da177e4SLinus Torvalds		__stop___ex_table = .;
43bcbe40ebSSam Ravnborg	}
441da177e4SLinus Torvalds
450c0d345eSDavid S. Miller	NOTES
460c0d345eSDavid S. Miller
47bcbe40ebSSam Ravnborg	. = ALIGN(PAGE_SIZE);
481da177e4SLinus Torvalds	__init_begin = .;
49ab5da288SMartin Habets	.init.text : {
50bcbe40ebSSam Ravnborg		_sinittext = .;
51*01ba2bdcSSam Ravnborg		INIT_TEXT
52ab5da288SMartin Habets		_einittext = .;
531da177e4SLinus Torvalds	}
54bcbe40ebSSam Ravnborg	__init_text_end = .;
55bcbe40ebSSam Ravnborg	.init.data : {
56*01ba2bdcSSam Ravnborg		INIT_DATA
57bcbe40ebSSam Ravnborg	}
58bcbe40ebSSam Ravnborg	. = ALIGN(16);
59bcbe40ebSSam Ravnborg	.init.setup : {
60bcbe40ebSSam Ravnborg		__setup_start = .;
61bcbe40ebSSam Ravnborg		*(.init.setup)
62bcbe40ebSSam Ravnborg		__setup_end = .;
63bcbe40ebSSam Ravnborg	}
64bcbe40ebSSam Ravnborg	.initcall.init : {
65bcbe40ebSSam Ravnborg		__initcall_start = .;
66bcbe40ebSSam Ravnborg		INITCALLS
671da177e4SLinus Torvalds	__initcall_end = .;
68bcbe40ebSSam Ravnborg	}
69bcbe40ebSSam Ravnborg	.con_initcall.init : {
701da177e4SLinus Torvalds		__con_initcall_start = .;
71bcbe40ebSSam Ravnborg		*(.con_initcall.init)
721da177e4SLinus Torvalds		__con_initcall_end = .;
73bcbe40ebSSam Ravnborg	}
741da177e4SLinus Torvalds	SECURITY_INIT
7567d38229SJean-Paul Saman
7667d38229SJean-Paul Saman#ifdef CONFIG_BLK_DEV_INITRD
77bcbe40ebSSam Ravnborg	. = ALIGN(PAGE_SIZE);
78bcbe40ebSSam Ravnborg	.init.ramfs : {
791da177e4SLinus Torvalds	__initramfs_start = .;
80bcbe40ebSSam Ravnborg		*(.init.ramfs)
811da177e4SLinus Torvalds	__initramfs_end = .;
82bcbe40ebSSam Ravnborg	}
8367d38229SJean-Paul Saman#endif
8467d38229SJean-Paul Saman
85bcbe40ebSSam Ravnborg	PERCPU(PAGE_SIZE)
86bcbe40ebSSam Ravnborg	. = ALIGN(PAGE_SIZE);
871da177e4SLinus Torvalds	__init_end = .;
881da177e4SLinus Torvalds	. = ALIGN(32);
89bcbe40ebSSam Ravnborg	.data.cacheline_aligned : {
90bcbe40ebSSam Ravnborg		*(.data.cacheline_aligned)
91bcbe40ebSSam Ravnborg	}
921da177e4SLinus Torvalds
931da177e4SLinus Torvalds	__bss_start = .;
94bcbe40ebSSam Ravnborg	.sbss : {
95bcbe40ebSSam Ravnborg		*(.sbss)
96bcbe40ebSSam Ravnborg		*(.scommon) }
97bcbe40ebSSam Ravnborg	.bss : {
981da177e4SLinus Torvalds		*(.dynbss)
991da177e4SLinus Torvalds		*(.bss)
1001da177e4SLinus Torvalds		*(COMMON)
1011da177e4SLinus Torvalds	}
1021da177e4SLinus Torvalds	_end = . ;
1031da177e4SLinus Torvalds	PROVIDE (end = .);
104bcbe40ebSSam Ravnborg	/DISCARD/ : {
105*01ba2bdcSSam Ravnborg		EXIT_TEXT
106*01ba2bdcSSam Ravnborg		EXIT_DATA
107bcbe40ebSSam Ravnborg		*(.exitcall.exit)
108bcbe40ebSSam Ravnborg	}
109d5784b57SDavid S. Miller
110d5784b57SDavid S. Miller	STABS_DEBUG
111d5784b57SDavid S. Miller	DWARF_DEBUG
1121da177e4SLinus Torvalds}
113