1#include <asm/asm-offsets.h> 2#include <asm-generic/vmlinux.lds.h> 3 4#undef mips 5#define mips mips 6OUTPUT_ARCH(mips) 7ENTRY(kernel_entry) 8jiffies = JIFFIES; 9SECTIONS 10{ 11#ifdef CONFIG_BOOT_ELF64 12 /* Read-only sections, merged into text segment: */ 13 /* . = 0xc000000000000000; */ 14 15 /* This is the value for an Origin kernel, taken from an IRIX kernel. */ 16 /* . = 0xc00000000001c000; */ 17 18 /* Set the vaddr for the text segment to a value 19 >= 0xa800 0000 0001 9000 if no symmon is going to configured 20 >= 0xa800 0000 0030 0000 otherwise */ 21 22 /* . = 0xa800000000300000; */ 23 /* . = 0xa800000000300000; */ 24 . = 0xffffffff80300000; 25#endif 26 . = LOADADDR; 27 /* read-only */ 28 _text = .; /* Text and read-only data */ 29 .text : { 30 TEXT_TEXT 31 SCHED_TEXT 32 LOCK_TEXT 33 *(.fixup) 34 *(.gnu.warning) 35 } =0 36 37 _etext = .; /* End of text section */ 38 39 . = ALIGN(16); /* Exception table */ 40 __start___ex_table = .; 41 __ex_table : { *(__ex_table) } 42 __stop___ex_table = .; 43 44 __start___dbe_table = .; /* Exception table for data bus errors */ 45 __dbe_table : { *(__dbe_table) } 46 __stop___dbe_table = .; 47 48 NOTES 49 50 RODATA 51 52 /* writeable */ 53 .data : { /* Data */ 54 . = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */ 55 /* 56 * This ALIGN is needed as a workaround for a bug a gcc bug upto 4.1 which 57 * limits the maximum alignment to at most 32kB and results in the following 58 * warning: 59 * 60 * CC arch/mips/kernel/init_task.o 61 * arch/mips/kernel/init_task.c:30: warning: alignment of ‘init_thread_union’ 62 * is greater than maximum object file alignment. Using 32768 63 */ 64 . = ALIGN(_PAGE_SIZE); 65 *(.data.init_task) 66 67 DATA_DATA 68 69 CONSTRUCTORS 70 } 71 _gp = . + 0x8000; 72 .lit8 : { *(.lit8) } 73 .lit4 : { *(.lit4) } 74 /* We want the small data sections together, so single-instruction offsets 75 can access them all, and initialized data all before uninitialized, so 76 we can shorten the on-disk segment size. */ 77 .sdata : { *(.sdata) } 78 79 . = ALIGN(_PAGE_SIZE); 80 __nosave_begin = .; 81 .data_nosave : { *(.data.nosave) } 82 . = ALIGN(_PAGE_SIZE); 83 __nosave_end = .; 84 85 . = ALIGN(32); 86 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 87 88 _edata = .; /* End of data section */ 89 90 /* will be freed after init */ 91 . = ALIGN(_PAGE_SIZE); /* Init code and data */ 92 __init_begin = .; 93 .init.text : { 94 _sinittext = .; 95 *(.init.text) 96 _einittext = .; 97 } 98 .init.data : { *(.init.data) } 99 . = ALIGN(16); 100 __setup_start = .; 101 .init.setup : { *(.init.setup) } 102 __setup_end = .; 103 104 __initcall_start = .; 105 .initcall.init : { 106 INITCALLS 107 } 108 __initcall_end = .; 109 110 __con_initcall_start = .; 111 .con_initcall.init : { *(.con_initcall.init) } 112 __con_initcall_end = .; 113 SECURITY_INIT 114 /* .exit.text is discarded at runtime, not link time, to deal with 115 references from .rodata */ 116 .exit.text : { *(.exit.text) } 117 .exit.data : { *(.exit.data) } 118#if defined(CONFIG_BLK_DEV_INITRD) 119 . = ALIGN(_PAGE_SIZE); 120 __initramfs_start = .; 121 .init.ramfs : { *(.init.ramfs) } 122 __initramfs_end = .; 123#endif 124 PERCPU(_PAGE_SIZE) 125 . = ALIGN(_PAGE_SIZE); 126 __init_end = .; 127 /* freed after init ends here */ 128 129 __bss_start = .; /* BSS */ 130 .sbss : { 131 *(.sbss) 132 *(.scommon) 133 } 134 .bss : { 135 *(.bss) 136 *(COMMON) 137 } 138 __bss_stop = .; 139 140 _end = . ; 141 142 /* Sections to be discarded */ 143 /DISCARD/ : { 144 *(.exitcall.exit) 145 146 /* ABI crap starts here */ 147 *(.MIPS.options) 148 *(.options) 149 *(.pdr) 150 *(.reginfo) 151 } 152 153 /* These mark the ABI of the kernel for debuggers. */ 154 .mdebug.abi32 : { KEEP(*(.mdebug.abi32)) } 155 .mdebug.abi64 : { KEEP(*(.mdebug.abi64)) } 156 157 /* This is the MIPS specific mdebug section. */ 158 .mdebug : { *(.mdebug) } 159 160 STABS_DEBUG 161 162 DWARF_DEBUG 163 164 /* These must appear regardless of . */ 165 .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } 166 .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } 167 .note : { *(.note) } 168} 169