1/* MN10300 Main kernel linker script 2 * 3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Written by David Howells (dhowells@redhat.com) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public Licence 8 * as published by the Free Software Foundation; either version 9 * 2 of the Licence, or (at your option) any later version. 10 */ 11#define __VMLINUX_LDS__ 12#include <asm-generic/vmlinux.lds.h> 13#include <asm/thread_info.h> 14#include <asm/page.h> 15 16OUTPUT_FORMAT("elf32-am33lin", "elf32-am33lin", "elf32-am33lin") 17OUTPUT_ARCH(mn10300) 18ENTRY(_start) 19jiffies = jiffies_64; 20#ifndef CONFIG_MN10300_CURRENT_IN_E2 21current = __current; 22#endif 23SECTIONS 24{ 25 . = CONFIG_KERNEL_TEXT_ADDRESS; 26 /* read-only */ 27 _stext = .; 28 _text = .; /* Text and read-only data */ 29 .text : { 30 HEAD_TEXT 31 TEXT_TEXT 32 SCHED_TEXT 33 LOCK_TEXT 34 KPROBES_TEXT 35 *(.fixup) 36 *(.gnu.warning) 37 } = 0xcb 38 39 _etext = .; /* End of text section */ 40 41 EXCEPTION_TABLE(16) 42 BUG_TABLE 43 44 RO_DATA(PAGE_SIZE) 45 46 /* writeable */ 47 _sdata = .; /* Start of rw data section */ 48 RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE) 49 _edata = .; 50 51 /* might get freed after init */ 52 . = ALIGN(PAGE_SIZE); 53 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { 54 __smp_locks = .; 55 *(.smp_locks) 56 __smp_locks_end = .; 57 } 58 59 /* will be freed after init */ 60 . = ALIGN(PAGE_SIZE); /* Init code and data */ 61 __init_begin = .; 62 INIT_TEXT_SECTION(PAGE_SIZE) 63 INIT_DATA_SECTION(16) 64 . = ALIGN(4); 65 __alt_instructions = .; 66 .altinstructions : { *(.altinstructions) } 67 __alt_instructions_end = .; 68 .altinstr_replacement : { *(.altinstr_replacement) } 69 /* .exit.text is discard at runtime, not link time, to deal with references 70 from .altinstructions and .eh_frame */ 71 .exit.text : { EXIT_TEXT; } 72 .exit.data : { EXIT_DATA; } 73 74 PERCPU_SECTION(32) 75 . = ALIGN(PAGE_SIZE); 76 __init_end = .; 77 /* freed after init ends here */ 78 79 BSS_SECTION(0, PAGE_SIZE, 4) 80 81 _end = . ; 82 83 /* This is where the kernel creates the early boot page tables */ 84 . = ALIGN(PAGE_SIZE); 85 pg0 = .; 86 87 STABS_DEBUG 88 89 DWARF_DEBUG 90 91 /* Sections to be discarded */ 92 DISCARDS 93} 94