156 lines · 2.4 KB · Assembly
RawDownload
/* * ld script for the c6x kernel * *  Copyright (C) 2010, 2011 Texas Instruments Incorporated *  Mark Salter <msalter@redhat.com> */#include <asm-generic/vmlinux.lds.h>#include <asm/thread_info.h>#include <asm/page.h> ENTRY(_c_int00) #if defined(CONFIG_CPU_BIG_ENDIAN)jiffies = jiffies_64 + 4;#elsejiffies = jiffies_64;#endif #define	READONLY_SEGMENT_START	\	. = PAGE_OFFSET;#define	READWRITE_SEGMENT_START	\	. = ALIGN(128);		\	_data_lma = .; SECTIONS{	/*	 * Start kernel read only segment	 */	READONLY_SEGMENT_START 	.vectors :	{		_vectors_start = .;		*(.vectors)		. = ALIGN(0x400);		_vectors_end = .;	} 	/*	 * This section contains data which may be shared with other	 * cores. It needs to be a fixed offset from PAGE_OFFSET	 * regardless of kernel configuration.	 */	.virtio_ipc_dev :	{		*(.virtio_ipc_dev)	} 	. = ALIGN(PAGE_SIZE);	__init_begin = .;	.init :	{		_sinittext = .;		HEAD_TEXT		INIT_TEXT		_einittext = .;	} 	INIT_DATA_SECTION(16) 	PERCPU_SECTION(128) 	. = ALIGN(PAGE_SIZE);	__init_end = .; 	.text :	{		_text = .;		_stext = .;		TEXT_TEXT		SCHED_TEXT		LOCK_TEXT		IRQENTRY_TEXT		KPROBES_TEXT		*(.fixup)		*(.gnu.warning)	} 	EXCEPTION_TABLE(16)	NOTES 	RO_DATA_SECTION(PAGE_SIZE)	.const :	{		*(.const .const.* .gnu.linkonce.r.*)		*(.switch)	} 	. = ALIGN (8) ;	__fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET)	{		_fdt_start = . ;	/* place for fdt blob */		*(__fdt_blob) ;		/* Any link-placed DTB */		BYTE(0);		/* section always has contents */	        . = _fdt_start + 0x4000;	/* Pad up to 16kbyte */		_fdt_end = . ;	} 	_etext = .; 	/*	 * Start kernel read-write segment.	 */	READWRITE_SEGMENT_START	_sdata = .; 	.fardata : AT(ADDR(.fardata) - LOAD_OFFSET)	{		INIT_TASK_DATA(THREAD_SIZE)		NOSAVE_DATA		PAGE_ALIGNED_DATA(PAGE_SIZE)		CACHELINE_ALIGNED_DATA(128)		READ_MOSTLY_DATA(128)		DATA_DATA		CONSTRUCTORS		*(.data1)		*(.fardata .fardata.*)		*(.data.debug_bpt)	} 	.neardata ALIGN(8) : AT(ADDR(.neardata) - LOAD_OFFSET)	{		*(.neardata2 .neardata2.* .gnu.linkonce.s2.*)		*(.neardata .neardata.* .gnu.linkonce.s.*)		. = ALIGN(8);	} 	_edata = .; 	__bss_start = .;	SBSS(8)	BSS(8)	.far :	{		. = ALIGN(8);		*(.dynfar)		*(.far .far.* .gnu.linkonce.b.*)		. = ALIGN(8);	}	__bss_stop = .; 	_end = .; 	DWARF_DEBUG 	/DISCARD/ :	{		  EXIT_TEXT		  EXIT_DATA		  EXIT_CALL		  *(.discard)		  *(.discard.*)		  *(.interp)	}}