| /* ld script to make FRV Linux kernel | 
 |  * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>; | 
 |  */ | 
 | OUTPUT_FORMAT("elf32-frv", "elf32-frv", "elf32-frv") | 
 | OUTPUT_ARCH(frv) | 
 | ENTRY(_start) | 
 |  | 
 | #include <asm-generic/vmlinux.lds.h> | 
 | #include <asm/processor.h> | 
 | #include <asm/page.h> | 
 | #include <asm/cache.h> | 
 | #include <asm/thread_info.h> | 
 |  | 
 | jiffies = jiffies_64 + 4; | 
 |  | 
 | __page_offset = CONFIG_PAGE_OFFSET;	/* start of area covered by struct pages */ | 
 | __kernel_image_start = __page_offset;	/* address at which kernel image resides */ | 
 |  | 
 | SECTIONS | 
 | { | 
 |   . = __kernel_image_start; | 
 |  | 
 |   /* discardable initialisation code and data */ | 
 |   . = ALIGN(PAGE_SIZE);			/* Init code and data */ | 
 |   __init_begin = .; | 
 |  | 
 |   _sinittext = .; | 
 |   .init.text : { | 
 | 	HEAD_TEXT | 
 | #ifndef CONFIG_DEBUG_INFO | 
 | 	INIT_TEXT | 
 | 	EXIT_TEXT | 
 | 	EXIT_DATA | 
 | 	*(.exitcall.exit) | 
 | #endif | 
 |   } | 
 |   _einittext = .; | 
 |  | 
 |   INIT_DATA_SECTION(8) | 
 |   PERCPU_SECTION(L1_CACHE_BYTES) | 
 |  | 
 |   . = ALIGN(PAGE_SIZE); | 
 |   __init_end = .; | 
 |  | 
 |   .trap : { | 
 | 	/* trap table management - read entry-table.S before modifying */ | 
 | 	. = ALIGN(8192); | 
 | 	__trap_tables = .; | 
 | 	*(.trap.user) | 
 | 	*(.trap.kernel) | 
 | 	. = ALIGN(4096); | 
 | 	*(.trap.break) | 
 |   } | 
 |  | 
 |   /* Text and read-only data */ | 
 |   . = ALIGN(4); | 
 |   _text = .; | 
 |   _stext = .; | 
 |   .text : { | 
 | 	*(.text..start) | 
 | 	*(.text..entry) | 
 | 	*(.text..break) | 
 | 	*(.text..tlbmiss) | 
 | 	TEXT_TEXT | 
 | 	SCHED_TEXT | 
 | 	LOCK_TEXT | 
 | #ifdef CONFIG_DEBUG_INFO | 
 | 	INIT_TEXT | 
 | 	EXIT_TEXT | 
 | 	*(.exitcall.exit) | 
 | #endif | 
 | 	*(.fixup) | 
 | 	*(.gnu.warning) | 
 | 	*(.exitcall.exit) | 
 | 	} = 0x9090 | 
 |  | 
 |   _etext = .;			/* End of text section */ | 
 |  | 
 |   RODATA | 
 |  | 
 |   .rodata : { | 
 | 	*(.trap.vector) | 
 |  | 
 | 	/* this clause must not be modified - the ordering and adjacency are imperative */ | 
 | 	__trap_fixup_tables = .; | 
 | 	*(.trap.fixup.user .trap.fixup.kernel) | 
 |  | 
 | 	} | 
 |  | 
 |   EXCEPTION_TABLE(8) | 
 |  | 
 |   _sdata = .; | 
 |   .data : {			/* Data */ | 
 | 	INIT_TASK_DATA(THREAD_SIZE) | 
 | 	CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) | 
 | 	DATA_DATA | 
 | 	*(.data.*) | 
 | 	EXIT_DATA | 
 | 	CONSTRUCTORS | 
 | 	} | 
 |  | 
 |   _edata = .;			/* End of data section */ | 
 |  | 
 |   /* GP section */ | 
 |   . = ALIGN(L1_CACHE_BYTES); | 
 |   _gp = . + 2048; | 
 |   PROVIDE (gp = _gp); | 
 |  | 
 |   .sdata : { *(.sdata .sdata.*) } | 
 |  | 
 |   /* BSS */ | 
 |   . = ALIGN(L1_CACHE_BYTES); | 
 |   __bss_start = .; | 
 |  | 
 |   .sbss		: { *(.sbss .sbss.*) } | 
 |   .bss		: { *(.bss .bss.*) } | 
 |   .bss..stack	: { *(.bss) } | 
 |  | 
 |   __bss_stop = .; | 
 |   _end = . ; | 
 |   . = ALIGN(PAGE_SIZE); | 
 |   __kernel_image_end = .; | 
 |  | 
 |   STABS_DEBUG | 
 |   DWARF_DEBUG | 
 |  | 
 |   .comment 0 : { *(.comment) } | 
 |  | 
 |   DISCARDS | 
 | } | 
 |  | 
 | __kernel_image_size_no_bss = __bss_start - __kernel_image_start; |