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) 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 RODATA 49 50 /* writeable */ 51 .data : { /* Data */ 52 . = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */ 53 *(.data.init_task) 54 55 *(.data) 56 57 CONSTRUCTORS 58 } 59 _gp = . + 0x8000; 60 .lit8 : { *(.lit8) } 61 .lit4 : { *(.lit4) } 62 /* We want the small data sections together, so single-instruction offsets 63 can access them all, and initialized data all before uninitialized, so 64 we can shorten the on-disk segment size. */ 65 .sdata : { *(.sdata) } 66 67 . = ALIGN(_PAGE_SIZE); 68 __nosave_begin = .; 69 .data_nosave : { *(.data.nosave) } 70 . = ALIGN(_PAGE_SIZE); 71 __nosave_end = .; 72 73 . = ALIGN(32); 74 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 75 76 _edata = .; /* End of data section */ 77 78 /* will be freed after init */ 79 . = ALIGN(_PAGE_SIZE); /* Init code and data */ 80 __init_begin = .; 81 .init.text : { 82 _sinittext = .; 83 *(.init.text) 84 _einittext = .; 85 } 86 .init.data : { *(.init.data) } 87 . = ALIGN(16); 88 __setup_start = .; 89 .init.setup : { *(.init.setup) } 90 __setup_end = .; 91 92 __initcall_start = .; 93 .initcall.init : { 94 *(.initcall1.init) 95 *(.initcall2.init) 96 *(.initcall3.init) 97 *(.initcall4.init) 98 *(.initcall5.init) 99 *(.initcall6.init) 100 *(.initcall7.init) 101 } 102 __initcall_end = .; 103 104 __con_initcall_start = .; 105 .con_initcall.init : { *(.con_initcall.init) } 106 __con_initcall_end = .; 107 SECURITY_INIT 108 /* .exit.text is discarded at runtime, not link time, to deal with 109 references from .rodata */ 110 .exit.text : { *(.exit.text) } 111 . = ALIGN(_PAGE_SIZE); 112 __initramfs_start = .; 113 .init.ramfs : { *(.init.ramfs) } 114 __initramfs_end = .; 115 . = ALIGN(32); 116 __per_cpu_start = .; 117 .data.percpu : { *(.data.percpu) } 118 __per_cpu_end = .; 119 . = ALIGN(_PAGE_SIZE); 120 __init_end = .; 121 /* freed after init ends here */ 122 123 __bss_start = .; /* BSS */ 124 .sbss : { 125 *(.sbss) 126 *(.scommon) 127 } 128 .bss : { 129 *(.bss) 130 *(COMMON) 131 } 132 __bss_stop = .; 133 134 _end = . ; 135 136 /* Sections to be discarded */ 137 /DISCARD/ : { 138 *(.exit.data) 139 *(.exitcall.exit) 140 141 /* ABI crap starts here */ 142 *(.comment) 143 *(.MIPS.options) 144 *(.note) 145 *(.options) 146 *(.pdr) 147 *(.reginfo) 148 *(.mdebug*) 149 } 150 151 /* This is the MIPS specific mdebug section. */ 152 .mdebug : { *(.mdebug) } 153 154 STABS_DEBUG 155 156 DWARF_DEBUG 157 158 /* These must appear regardless of . */ 159 .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } 160 .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } 161 .note : { *(.note) } 162} 163