249 lines · 4.4 KB · Assembly
RawDownload
#ifdef CONFIG_PPC64#define PROVIDE32(x)	PROVIDE(__unused__##x)#else#define PROVIDE32(x)	PROVIDE(x)#endif#include <asm/page.h>#include <asm-generic/vmlinux.lds.h>#include <asm/cache.h> ENTRY(_stext) #ifdef CONFIG_PPC64OUTPUT_ARCH(powerpc:common64)jiffies = jiffies_64;#elseOUTPUT_ARCH(powerpc:common)jiffies = jiffies_64 + 4;#endifSECTIONS{	/* Sections to be discarded. */	/DISCARD/ : {	*(.exitcall.exit)	EXIT_DATA	} 	. = KERNELBASE; /* * Text, read only data and other permanent read-only sections */ 	/* Text and gots */	.text : AT(ADDR(.text) - LOAD_OFFSET) {		ALIGN_FUNCTION();		*(.text.head)		_text = .;		*(.text .fixup .text.init.refok .exit.text.refok)		SCHED_TEXT		LOCK_TEXT		KPROBES_TEXT #ifdef CONFIG_PPC32		*(.got1)		__got2_start = .;		*(.got2)		__got2_end = .;#endif /* CONFIG_PPC32 */ 		. = ALIGN(PAGE_SIZE);		_etext = .;		PROVIDE32 (etext = .);	} 	/* Read-only data */	RODATA 	/* Exception & bug tables */	__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {		__start___ex_table = .;		*(__ex_table)		__stop___ex_table = .;	} 	NOTES 	BUG_TABLE /* * Init sections discarded at runtime */	. = ALIGN(PAGE_SIZE);	__init_begin = .; 	.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {		_sinittext = .;		INIT_TEXT		_einittext = .;	} 	/* .exit.text is discarded at runtime, not link time,	 * to deal with references from __bug_table	 */	.exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {		EXIT_TEXT	} 	.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {		INIT_DATA		__vtop_table_begin = .;		*(.vtop_fixup);		__vtop_table_end = .;		__ptov_table_begin = .;		*(.ptov_fixup);		__ptov_table_end = .;#ifdef CONFIG_PPC_ISERIES		__dt_strings_start = .;		*(.dt_strings);		__dt_strings_end = .;#endif	} 	. = ALIGN(16);	.init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {		__setup_start = .;		*(.init.setup)		__setup_end = .;	} 	.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {		__initcall_start = .;		INITCALLS		__initcall_end = .;		} 	.con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {		__con_initcall_start = .;		*(.con_initcall.init)		__con_initcall_end = .;	} 	SECURITY_INIT 	. = ALIGN(8);	__ftr_fixup : AT(ADDR(__ftr_fixup) - LOAD_OFFSET) {		__start___ftr_fixup = .;		*(__ftr_fixup)		__stop___ftr_fixup = .;	}#ifdef CONFIG_PPC64	. = ALIGN(8);	__fw_ftr_fixup : AT(ADDR(__fw_ftr_fixup) - LOAD_OFFSET) {		__start___fw_ftr_fixup = .;		*(__fw_ftr_fixup)		__stop___fw_ftr_fixup = .;	}#endif#ifdef CONFIG_BLK_DEV_INITRD	. = ALIGN(PAGE_SIZE);	.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {		__initramfs_start = .;		*(.init.ramfs)		__initramfs_end = .;	}#endif	. = ALIGN(PAGE_SIZE);	.data.percpu  : AT(ADDR(.data.percpu) - LOAD_OFFSET) {		__per_cpu_start = .;		*(.data.percpu)		*(.data.percpu.shared_aligned)		__per_cpu_end = .;	} 	. = ALIGN(8);	.machine.desc : AT(ADDR(.machine.desc) - LOAD_OFFSET) {		__machine_desc_start = . ;		*(.machine.desc)		__machine_desc_end = . ;	} 	/* freed after init ends here */	. = ALIGN(PAGE_SIZE);	__init_end = .; /* * And now the various read/write data */ 	. = ALIGN(PAGE_SIZE);	_sdata = .; #ifdef CONFIG_PPC32	.data : AT(ADDR(.data) - LOAD_OFFSET) {		DATA_DATA		*(.sdata)		*(.got.plt) *(.got)	}#else	.data : AT(ADDR(.data) - LOAD_OFFSET) {		DATA_DATA		*(.data.rel*)		*(.toc1)		*(.branch_lt)	} 	.opd : AT(ADDR(.opd) - LOAD_OFFSET) {		*(.opd)	} 	.got : AT(ADDR(.got) - LOAD_OFFSET) {		__toc_start = .;		*(.got)		*(.toc)	}#endif 	. = ALIGN(PAGE_SIZE);	_edata  =  .;	PROVIDE32 (edata = .); 	/* The initial task and kernel stack */#ifdef CONFIG_PPC32	. = ALIGN(8192);#else	. = ALIGN(16384);#endif	.data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {		*(.data.init_task)	} 	. = ALIGN(PAGE_SIZE);	.data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {		*(.data.page_aligned)	} 	.data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {		*(.data.cacheline_aligned)	} 	. = ALIGN(L1_CACHE_BYTES);	.data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) {		*(.data.read_mostly)	} 	. = ALIGN(PAGE_SIZE);	.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {		__nosave_begin = .;		*(.data.nosave)		. = ALIGN(PAGE_SIZE);		__nosave_end = .;	} /* * And finally the bss */ 	.bss : AT(ADDR(.bss) - LOAD_OFFSET) {		__bss_start = .;		*(.sbss) *(.scommon)		*(.dynbss)		*(.bss)		*(COMMON)		__bss_stop = .;	} 	. = ALIGN(PAGE_SIZE);	_end = . ;	PROVIDE32 (end = .);}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t