1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | /* SPDX-License-Identifier: GPL-2.0 */ /* * 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([31mCONFIG_CPU_BIG_ENDIAN[0m) jiffies = jiffies_64 + 4; #else jiffies = 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 CPUIDLE_TEXT LOCK_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT KPROBES_TEXT *(.fixup) *(.gnu.warning) } EXCEPTION_TABLE(16) NOTES RO_DATA_SECTION(PAGE_SIZE) .const : { *(.const .const.* .gnu.linkonce.r.*) *(.switch) } _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); } BUG_TABLE _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) } } |