1 /* This linker script generated from xt-genldscripts.tpp for LSP . */
2 /* Linker Script for ld -N */
5 dport0_0_seg : org = 0x3FF00000, len = 0x10
6 dram0_0_seg : org = 0x3FFE8000, len = 0x14000
7 iram1_0_seg : org = 0x40100000, len = 0x8000
8 irom0_0_seg : org = 0x40201010, len = 0x6B000
13 dport0_0_phdr PT_LOAD;
15 dram0_0_bss_phdr PT_LOAD;
21 /* Default entry point: */
22 ENTRY(call_user_start)
23 EXTERN(_DebugExceptionVector)
24 EXTERN(_DoubleExceptionVector)
25 EXTERN(_KernelExceptionVector)
26 EXTERN(_NMIExceptionVector)
27 EXTERN(_UserExceptionVector)
28 PROVIDE(_memmap_vecbase_reset = 0x40000000);
29 /* Various memory-map dependent cache attribute settings: */
30 _memmap_cacheattr_wb_base = 0x00000110;
31 _memmap_cacheattr_wt_base = 0x00000110;
32 _memmap_cacheattr_bp_base = 0x00000220;
33 _memmap_cacheattr_unused_mask = 0xFFFFF00F;
34 _memmap_cacheattr_wb_trapnull = 0x2222211F;
35 _memmap_cacheattr_wba_trapnull = 0x2222211F;
36 _memmap_cacheattr_wbna_trapnull = 0x2222211F;
37 _memmap_cacheattr_wt_trapnull = 0x2222211F;
38 _memmap_cacheattr_bp_trapnull = 0x2222222F;
39 _memmap_cacheattr_wb_strict = 0xFFFFF11F;
40 _memmap_cacheattr_wt_strict = 0xFFFFF11F;
41 _memmap_cacheattr_bp_strict = 0xFFFFF22F;
42 _memmap_cacheattr_wb_allvalid = 0x22222112;
43 _memmap_cacheattr_wt_allvalid = 0x22222112;
44 _memmap_cacheattr_bp_allvalid = 0x22222222;
45 PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_wb_trapnull);
50 .dport0.rodata : ALIGN(4)
52 _dport0_rodata_start = ABSOLUTE(.);
55 _dport0_rodata_end = ABSOLUTE(.);
56 } >dport0_0_seg :dport0_0_phdr
58 .dport0.literal : ALIGN(4)
60 _dport0_literal_start = ABSOLUTE(.);
63 _dport0_literal_end = ABSOLUTE(.);
64 } >dport0_0_seg :dport0_0_phdr
66 .dport0.data : ALIGN(4)
68 _dport0_data_start = ABSOLUTE(.);
71 _dport0_data_end = ABSOLUTE(.);
72 } >dport0_0_seg :dport0_0_phdr
76 _data_start = ABSOLUTE(.);
88 _data_end = ABSOLUTE(.);
89 } >dram0_0_seg :dram0_0_phdr
93 _rodata_start = ABSOLUTE(.);
99 __XT_EXCEPTION_TABLE__ = ABSOLUTE(.);
105 /* C++ constructor and destructor tables, properly ordered: */
106 KEEP (*crtbegin.o(.ctors))
107 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
108 KEEP (*(SORT(.ctors.*)))
110 KEEP (*crtbegin.o(.dtors))
111 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
112 KEEP (*(SORT(.dtors.*)))
114 /* C++ exception handlers table: */
115 __XT_EXCEPTION_DESCS__ = ABSOLUTE(.);
118 __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
119 *(.xt_except_desc_end)
122 . = ALIGN(4); /* this table MUST be 4-byte aligned */
123 _bss_table_start = ABSOLUTE(.);
126 _bss_table_end = ABSOLUTE(.);
127 _rodata_end = ABSOLUTE(.);
128 } >dram0_0_seg :dram0_0_phdr
130 .bss ALIGN(8) (NOLOAD) : ALIGN(4)
133 _bss_start = ABSOLUTE(.);
137 *(.gnu.linkonce.sb.*)
141 *(.gnu.linkonce.sb2.*)
148 _bss_end = ABSOLUTE(.);
149 _heap_start = ABSOLUTE(.);
150 /* _stack_sentry = ALIGN(0x8); */
151 } >dram0_0_seg :dram0_0_bss_phdr
152 /* __stack = 0x3ffc8000; */
154 .irom0.text : ALIGN(4)
156 _irom0_text_start = ABSOLUTE(.);
158 *libat.a:(.literal.* .text.*)
159 *libcrypto.a:(.literal.* .text.*)
160 *libespnow.a:(.literal.* .text.*)
161 *libjson.a:(.literal.* .text.*)
162 *liblwip.a:(.literal.* .text.*)
163 *libnet80211.a:(.literal.* .text.*)
164 *libsmartconfig.a:(.literal.* .text.*)
165 *libssl.a:(.literal.* .text.*)
166 *libupgrade.a:(.literal.* .text.*)
167 *libwpa.a:(.literal.* .text.*)
168 *libwpa2.a:(.literal.* .text.*)
169 *libwps.a:(.literal.* .text.*)
171 *libmbedtls.a:(.literal.* .text.*)
173 *libm.a:(.literal .text .literal.* .text.*)
175 *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
176 _irom0_text_end = ABSOLUTE(.);
177 } >irom0_0_seg :irom0_0_phdr
182 _text_start = ABSOLUTE(.);
185 *(.DebugExceptionVector.text)
187 *(.NMIExceptionVector.text)
189 *(.KernelExceptionVector.text)
195 *(.UserExceptionVector.text)
201 *(.DoubleExceptionVector.text)
210 *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
214 _text_end = ABSOLUTE(.);
216 } >iram1_0_seg :iram1_0_phdr
220 _lit4_start = ABSOLUTE(.);
223 *(.gnu.linkonce.lit4.*)
224 _lit4_end = ABSOLUTE(.);
225 } >iram1_0_seg :iram1_0_phdr
228 /* get ROM code address */
229 INCLUDE "eagle.rom.addr.v6.ld"