1 /* SPDX-License-Identifier: GPL-2.0-only */ !! 1 #if defined(CONFIG_MMU) && !defined(CONFIG_COLDFIRE) 2 /* !! 2 PHDRS 3 * Copyright (C) 2004, 2007-2010, 2011-2012 Sy << 4 */ << 5 << 6 #include <asm-generic/vmlinux.lds.h> << 7 #include <asm/cache.h> << 8 #include <asm/page.h> << 9 #include <asm/thread_info.h> << 10 << 11 OUTPUT_ARCH(arc) << 12 ENTRY(res_service) << 13 << 14 #ifdef CONFIG_CPU_BIG_ENDIAN << 15 jiffies = jiffies_64 + 4; << 16 #else << 17 jiffies = jiffies_64; << 18 #endif << 19 << 20 SECTIONS << 21 { 3 { 22 /* !! 4 text PT_LOAD FILEHDR PHDRS FLAGS (7); 23 * ICCM starts at 0x8000_0000. So if k !! 5 data PT_LOAD FLAGS (7); 24 * address, make sure peripheral at 0x !! 6 } 25 * Essentially vector is also in ICCM. !! 7 #ifdef CONFIG_SUN3 26 */ !! 8 #include "vmlinux-sun3.lds" 27 << 28 . = CONFIG_LINUX_LINK_BASE; << 29 << 30 _int_vec_base_lds = .; << 31 .vector : { << 32 *(.vector) << 33 . = ALIGN(PAGE_SIZE); << 34 } << 35 << 36 #ifdef CONFIG_ARC_HAS_ICCM << 37 .text.arcfp : { << 38 *(.text.arcfp) << 39 . = ALIGN(CONFIG_ARC_ICCM_SZ * << 40 } << 41 #endif << 42 << 43 /* << 44 * The reason for having a separate su << 45 * prevent objdump from including it i << 46 * << 47 * Reason for having .init.ramfs above << 48 * binary blob is tucked away to one s << 49 * between .init.text and .text, avoid << 50 * errors because of calls from .init. << 51 * Yes such calls do exist. e.g. << 52 * decompress_inflate.c:gunzip( ) << 53 */ << 54 << 55 __init_begin = .; << 56 << 57 .init.ramfs : { INIT_RAM_FS } << 58 << 59 . = ALIGN(PAGE_SIZE); << 60 << 61 HEAD_TEXT_SECTION << 62 INIT_TEXT_SECTION(L1_CACHE_BYTES) << 63 << 64 /* INIT_DATA_SECTION open-coded: speci << 65 .init.data : { << 66 INIT_DATA << 67 INIT_SETUP(L1_CACHE_BYTES) << 68 INIT_CALLS << 69 CON_INITCALL << 70 } << 71 << 72 .init.arch.info : { << 73 __arch_info_begin = .; << 74 *(.arch.info.init) << 75 __arch_info_end = .; << 76 } << 77 << 78 PERCPU_SECTION(L1_CACHE_BYTES) << 79 << 80 . = ALIGN(PAGE_SIZE); << 81 __init_end = .; << 82 << 83 .text : { << 84 _text = .; << 85 _stext = .; << 86 TEXT_TEXT << 87 SCHED_TEXT << 88 LOCK_TEXT << 89 KPROBES_TEXT << 90 IRQENTRY_TEXT << 91 SOFTIRQENTRY_TEXT << 92 *(.fixup) << 93 *(.gnu.warning) << 94 } << 95 EXCEPTION_TABLE(L1_CACHE_BYTES) << 96 _etext = .; << 97 << 98 _sdata = .; << 99 RO_DATA(PAGE_SIZE) << 100 << 101 /* << 102 * 1. this is .data essentially << 103 * 2. THREAD_SIZE for init.task, must << 104 */ << 105 RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THR << 106 << 107 _edata = .; << 108 << 109 BSS_SECTION(4, 4, 4) << 110 << 111 #ifdef CONFIG_ARC_DW2_UNWIND << 112 . = ALIGN(PAGE_SIZE); << 113 .eh_frame : { << 114 __start_unwind = .; << 115 *(.eh_frame) << 116 __end_unwind = .; << 117 } << 118 #else 9 #else 119 /DISCARD/ : { *(.eh_frame) } !! 10 #include "vmlinux-std.lds" 120 #endif 11 #endif 121 !! 12 #else 122 . = ALIGN(PAGE_SIZE); !! 13 #include "vmlinux-nommu.lds" 123 _end = . ; << 124 << 125 STABS_DEBUG << 126 ELF_DETAILS << 127 DISCARDS << 128 << 129 .arcextmap 0 : { << 130 *(.gnu.linkonce.arcextmap.*) << 131 *(.arcextmap.*) << 132 } << 133 << 134 #ifndef CONFIG_DEBUG_INFO << 135 /DISCARD/ : { *(.debug_frame) } << 136 /DISCARD/ : { *(.debug_aranges) } << 137 /DISCARD/ : { *(.debug_pubnames) } << 138 /DISCARD/ : { *(.debug_info) } << 139 /DISCARD/ : { *(.debug_abbrev) } << 140 /DISCARD/ : { *(.debug_line) } << 141 /DISCARD/ : { *(.debug_str) } << 142 /DISCARD/ : { *(.debug_loc) } << 143 /DISCARD/ : { *(.debug_macinfo) } << 144 /DISCARD/ : { *(.debug_ranges) } << 145 #endif << 146 << 147 #ifdef CONFIG_ARC_HAS_DCCM << 148 . = CONFIG_ARC_DCCM_BASE; << 149 __arc_dccm_base = .; << 150 .data.arcfp : { << 151 *(.data.arcfp) << 152 } << 153 . = ALIGN(CONFIG_ARC_DCCM_SZ * 1024); << 154 #endif 14 #endif 155 } <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.