0001
0002
0003
0004
0005
0006 #include <asm-generic/vmlinux.lds.h>
0007 #include <asm/cache.h>
0008 #include <asm/page.h>
0009 #include <asm/thread_info.h>
0010
0011 OUTPUT_ARCH(arc)
0012 ENTRY(res_service)
0013
0014 #ifdef CONFIG_CPU_BIG_ENDIAN
0015 jiffies = jiffies_64 + 4;
0016 #else
0017 jiffies = jiffies_64;
0018 #endif
0019
0020 SECTIONS
0021 {
0022
0023
0024
0025
0026
0027
0028 . = CONFIG_LINUX_LINK_BASE;
0029
0030 _int_vec_base_lds = .;
0031 .vector : {
0032 *(.vector)
0033 . = ALIGN(PAGE_SIZE);
0034 }
0035
0036 #ifdef CONFIG_ARC_HAS_ICCM
0037 .text.arcfp : {
0038 *(.text.arcfp)
0039 . = ALIGN(CONFIG_ARC_ICCM_SZ * 1024);
0040 }
0041 #endif
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055 __init_begin = .;
0056
0057 .init.ramfs : { INIT_RAM_FS }
0058
0059 . = ALIGN(PAGE_SIZE);
0060
0061 HEAD_TEXT_SECTION
0062 INIT_TEXT_SECTION(L1_CACHE_BYTES)
0063
0064
0065 .init.data : {
0066 INIT_DATA
0067 INIT_SETUP(L1_CACHE_BYTES)
0068 INIT_CALLS
0069 CON_INITCALL
0070 }
0071
0072 .init.arch.info : {
0073 __arch_info_begin = .;
0074 *(.arch.info.init)
0075 __arch_info_end = .;
0076 }
0077
0078 PERCPU_SECTION(L1_CACHE_BYTES)
0079
0080 . = ALIGN(PAGE_SIZE);
0081 __init_end = .;
0082
0083 .text : {
0084 _text = .;
0085 _stext = .;
0086 TEXT_TEXT
0087 SCHED_TEXT
0088 CPUIDLE_TEXT
0089 LOCK_TEXT
0090 KPROBES_TEXT
0091 IRQENTRY_TEXT
0092 SOFTIRQENTRY_TEXT
0093 *(.fixup)
0094 *(.gnu.warning)
0095 }
0096 EXCEPTION_TABLE(L1_CACHE_BYTES)
0097 _etext = .;
0098
0099 _sdata = .;
0100 RO_DATA(PAGE_SIZE)
0101
0102
0103
0104
0105
0106 RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
0107
0108 _edata = .;
0109
0110 BSS_SECTION(4, 4, 4)
0111
0112 #ifdef CONFIG_ARC_DW2_UNWIND
0113 . = ALIGN(PAGE_SIZE);
0114 .eh_frame : {
0115 __start_unwind = .;
0116 *(.eh_frame)
0117 __end_unwind = .;
0118 }
0119 #else
0120 /DISCARD/ : { *(.eh_frame) }
0121 #endif
0122
0123 . = ALIGN(PAGE_SIZE);
0124 _end = . ;
0125
0126 STABS_DEBUG
0127 ELF_DETAILS
0128 DISCARDS
0129
0130 .arcextmap 0 : {
0131 *(.gnu.linkonce.arcextmap.*)
0132 *(.arcextmap.*)
0133 }
0134
0135 #ifndef CONFIG_DEBUG_INFO
0136 /DISCARD/ : { *(.debug_frame) }
0137 /DISCARD/ : { *(.debug_aranges) }
0138 /DISCARD/ : { *(.debug_pubnames) }
0139 /DISCARD/ : { *(.debug_info) }
0140 /DISCARD/ : { *(.debug_abbrev) }
0141 /DISCARD/ : { *(.debug_line) }
0142 /DISCARD/ : { *(.debug_str) }
0143 /DISCARD/ : { *(.debug_loc) }
0144 /DISCARD/ : { *(.debug_macinfo) }
0145 /DISCARD/ : { *(.debug_ranges) }
0146 #endif
0147
0148 #ifdef CONFIG_ARC_HAS_DCCM
0149 . = CONFIG_ARC_DCCM_BASE;
0150 __arc_dccm_base = .;
0151 .data.arcfp : {
0152 *(.data.arcfp)
0153 }
0154 . = ALIGN(CONFIG_ARC_DCCM_SZ * 1024);
0155 #endif
0156 }