1/*
2 * Linker Script for Suecreek.
3 *
4 * This script is run through the GNU C preprocessor to align the memory
5 * offsets with headers.
6 *
7 * Use spaces for formatting as cpp ignore tab sizes.
8 */
9
10
11#include <sof/lib/memory.h>
12#include <xtensa/config/core-isa.h>
13
14OUTPUT_ARCH(xtensa)
15
16MEMORY
17{
18  vector_reset_text :
19        org = XCHAL_RESET_VECTOR0_PADDR,
20        len = SOF_MEM_RESET_TEXT_SIZE
21  vector_reset_lit :
22        org = XCHAL_RESET_VECTOR0_PADDR + SOF_MEM_RESET_TEXT_SIZE,
23        len = SOF_MEM_RESET_LIT_SIZE
24  vector_memory_lit :
25        org = XCHAL_MEMERROR_VECTOR_PADDR + SOF_MEM_ERROR_LIT_SIZE,
26        len = SOF_MEM_ERROR_LIT_SIZE
27  vector_memory_text :
28        org = XCHAL_MEMERROR_VECTOR_PADDR,
29        len = SOF_MEM_ERROR_TEXT_SIZE
30  vector_base_text :
31        org = SOF_MEM_VECBASE,
32        len = SOF_MEM_VECBASE_LIT_SIZE
33  vector_int2_lit :
34        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL2_VECOFS - SOF_MEM_VECT_LIT_SIZE,
35        len = SOF_MEM_VECT_LIT_SIZE
36  vector_int2_text :
37        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL2_VECOFS,
38        len = SOF_MEM_VECT_TEXT_SIZE
39  vector_int3_lit :
40        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL3_VECOFS - SOF_MEM_VECT_LIT_SIZE,
41        len = SOF_MEM_VECT_LIT_SIZE
42  vector_int3_text :
43        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL3_VECOFS,
44        len = SOF_MEM_VECT_TEXT_SIZE
45  vector_int4_lit :
46        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL4_VECOFS - SOF_MEM_VECT_LIT_SIZE,
47        len = SOF_MEM_VECT_LIT_SIZE
48  vector_int4_text :
49        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL4_VECOFS,
50        len = SOF_MEM_VECT_TEXT_SIZE
51  vector_int5_lit :
52        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL5_VECOFS - SOF_MEM_VECT_LIT_SIZE,
53        len = SOF_MEM_VECT_LIT_SIZE
54  vector_int5_text :
55        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL5_VECOFS,
56        len = SOF_MEM_VECT_TEXT_SIZE
57  vector_int6_lit :
58        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL6_VECOFS - SOF_MEM_VECT_LIT_SIZE,
59        len = SOF_MEM_VECT_LIT_SIZE
60  vector_int6_text :
61        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL6_VECOFS,
62        len = SOF_MEM_VECT_TEXT_SIZE
63  vector_int7_lit :
64        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL7_VECOFS - SOF_MEM_VECT_LIT_SIZE,
65        len = SOF_MEM_VECT_LIT_SIZE
66  vector_int7_text :
67        org = SOF_MEM_VECBASE + XCHAL_INTLEVEL7_VECOFS,
68        len = SOF_MEM_VECT_TEXT_SIZE
69  vector_kernel_lit :
70        org = SOF_MEM_VECBASE + XCHAL_KERNEL_VECOFS - SOF_MEM_VECT_LIT_SIZE,
71        len = SOF_MEM_VECT_LIT_SIZE
72  vector_kernel_text :
73        org = SOF_MEM_VECBASE + XCHAL_KERNEL_VECOFS,
74        len = SOF_MEM_VECT_TEXT_SIZE
75  vector_user_lit :
76        org = SOF_MEM_VECBASE + XCHAL_USER_VECOFS - SOF_MEM_VECT_LIT_SIZE,
77        len = SOF_MEM_VECT_LIT_SIZE
78  vector_user_text :
79        org = SOF_MEM_VECBASE + XCHAL_USER_VECOFS,
80        len = SOF_MEM_VECT_TEXT_SIZE
81  vector_double_lit :
82        org = SOF_MEM_VECBASE + XCHAL_DOUBLEEXC_VECOFS - SOF_MEM_VECT_LIT_SIZE,
83        len = SOF_MEM_VECT_LIT_SIZE
84  vector_double_text :
85        org = SOF_MEM_VECBASE + XCHAL_DOUBLEEXC_VECOFS,
86        len = SOF_MEM_VECT_TEXT_SIZE
87  sof_fw :
88       	org = SOF_FW_BASE,
89        len = SOF_FW_MAX_SIZE,
90  static_uuid_entries_seg (!ari) :
91        org = UUID_ENTRY_ELF_BASE,
92        len = UUID_ENTRY_ELF_SIZE
93  static_log_entries_seg (!ari) :
94        org = LOG_ENTRY_ELF_BASE,
95        len = LOG_ENTRY_ELF_SIZE
96  fw_metadata_seg (!ari) :
97        org = EXT_MANIFEST_ELF_BASE,
98        len = EXT_MANIFEST_ELF_SIZE
99}
100
101PHDRS
102{
103  vector_reset_text_phdr PT_LOAD;
104  vector_reset_lit_phdr PT_LOAD;
105  vector_memory_lit_phdr PT_LOAD;
106  vector_memory_text_phdr PT_LOAD;
107  vector_base_text_phdr PT_LOAD;
108  vector_int2_lit_phdr PT_LOAD;
109  vector_int2_text_phdr PT_LOAD;
110  vector_int3_lit_phdr PT_LOAD;
111  vector_int3_text_phdr PT_LOAD;
112  vector_int4_lit_phdr PT_LOAD;
113  vector_int4_text_phdr PT_LOAD;
114  vector_int5_lit_phdr PT_LOAD;
115  vector_int5_text_phdr PT_LOAD;
116  vector_int6_lit_phdr PT_LOAD;
117  vector_int6_text_phdr PT_LOAD;
118  vector_int7_lit_phdr PT_LOAD;
119  vector_int7_text_phdr PT_LOAD;
120  vector_kernel_lit_phdr PT_LOAD;
121  vector_kernel_text_phdr PT_LOAD;
122  vector_user_lit_phdr PT_LOAD;
123  vector_user_text_phdr PT_LOAD;
124  vector_double_lit_phdr PT_LOAD;
125  vector_double_text_phdr PT_LOAD;
126  sof_fw_phdr PT_LOAD;
127  static_uuid_entries_phdr PT_NOTE;
128  static_log_entries_phdr PT_NOTE;
129  metadata_entries_phdr PT_NOTE;
130}
131
132/*  Default entry point:  */
133ENTRY(_ResetVector)
134_rom_store_table = 0;
135
136/* ABI0 does not use Window base */
137PROVIDE(_memmap_vecbase_reset = XCHAL_VECBASE_RESET_PADDR);
138
139/* Various memory-map dependent cache attribute settings: */
140_memmap_cacheattr_wb_base = 0x44024000;
141_memmap_cacheattr_wt_base = 0x11021000;
142_memmap_cacheattr_bp_base = 0x22022000;
143_memmap_cacheattr_unused_mask = 0x00F00FFF;
144_memmap_cacheattr_wb_trapnull = 0x4422422F;
145_memmap_cacheattr_wba_trapnull = 0x4422422F;
146_memmap_cacheattr_wbna_trapnull = 0x25222222;
147_memmap_cacheattr_wt_trapnull = 0x1122122F;
148_memmap_cacheattr_bp_trapnull = 0x2222222F;
149_memmap_cacheattr_wb_strict = 0x44F24FFF;
150_memmap_cacheattr_wt_strict = 0x11F21FFF;
151_memmap_cacheattr_bp_strict = 0x22F22FFF;
152_memmap_cacheattr_wb_allvalid = 0x44224222;
153_memmap_cacheattr_wt_allvalid = 0x11221222;
154_memmap_cacheattr_bp_allvalid = 0x22222222;
155_memmap_cacheattr_sue_creek = 0xf2ff4242;
156PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_sue_creek);
157
158_EXT_MAN_ALIGN_ = 16;
159EXTERN(ext_man_fw_ver)
160EXTERN(ext_man_cavs_config)
161
162SECTIONS
163{
164  .ResetVector.text : ALIGN(4)
165  {
166    _ResetVector_text_start = ABSOLUTE(.);
167    KEEP (*(.ResetVector.text))
168    _ResetVector_text_end = ABSOLUTE(.);
169  } >vector_reset_text :vector_reset_text_phdr
170
171  .ResetVector.literal : ALIGN(4)
172  {
173    _ResetVector_literal_start = ABSOLUTE(.);
174    *(.ResetVector.literal)
175    _ResetVector_literal_end = ABSOLUTE(.);
176  } >vector_reset_lit :vector_reset_lit_phdr
177
178 .MemoryExceptionVector.literal : ALIGN(4)
179  {
180    _MemoryExceptionVector_literal_start = ABSOLUTE(.);
181    KEEP (*(.MemoryExceptionVector.literal))
182    _MemoryExceptionVector_literal_end = ABSOLUTE(.);
183  } >vector_memory_lit :vector_memory_lit_phdr
184
185  .MemoryExceptionVector.text : ALIGN(4)
186  {
187    _MemoryExceptionVector_text_start = ABSOLUTE(.);
188    KEEP (*(.MemoryExceptionVector.text))
189    _MemoryExceptionVector_text_end = ABSOLUTE(.);
190  } >vector_memory_text :vector_memory_text_phdr
191
192  .WindowVectors.text : ALIGN(4)
193  {
194    _WindowVectors_text_start = ABSOLUTE(.);
195    KEEP (*(.WindowVectors.text))
196    _WindowVectors_text_end = ABSOLUTE(.);
197  } >vector_base_text :vector_base_text_phdr
198
199  .Level2InterruptVector.literal : ALIGN(4)
200  {
201    _Level2InterruptVector_literal_start = ABSOLUTE(.);
202    *(.Level2InterruptVector.literal)
203    _Level2InterruptVector_literal_end = ABSOLUTE(.);
204  } >vector_int2_lit :vector_int2_lit_phdr
205
206  .Level2InterruptVector.text : ALIGN(4)
207  {
208    _Level2InterruptVector_text_start = ABSOLUTE(.);
209    KEEP (*(.Level2InterruptVector.text))
210    _Level2InterruptVector_text_end = ABSOLUTE(.);
211  } >vector_int2_text :vector_int2_text_phdr
212
213  .Level3InterruptVector.literal : ALIGN(4)
214  {
215    _Level3InterruptVector_literal_start = ABSOLUTE(.);
216    *(.Level3InterruptVector.literal)
217    _Level3InterruptVector_literal_end = ABSOLUTE(.);
218  } >vector_int3_lit :vector_int3_lit_phdr
219
220  .Level3InterruptVector.text : ALIGN(4)
221  {
222    _Level3InterruptVector_text_start = ABSOLUTE(.);
223    KEEP (*(.Level3InterruptVector.text))
224    _Level3InterruptVector_text_end = ABSOLUTE(.);
225  } >vector_int3_text :vector_int3_text_phdr
226
227  .Level4InterruptVector.literal : ALIGN(4)
228  {
229    _Level4InterruptVector_literal_start = ABSOLUTE(.);
230    *(.Level4InterruptVector.literal)
231    _Level4InterruptVector_literal_end = ABSOLUTE(.);
232  } >vector_int4_lit :vector_int4_lit_phdr
233
234  .Level4InterruptVector.text : ALIGN(4)
235  {
236    _Level4InterruptVector_text_start = ABSOLUTE(.);
237    KEEP (*(.Level4InterruptVector.text))
238    _Level4InterruptVector_text_end = ABSOLUTE(.);
239  } >vector_int4_text :vector_int4_text_phdr
240
241  .Level5InterruptVector.literal : ALIGN(4)
242  {
243    _Level5InterruptVector_literal_start = ABSOLUTE(.);
244    *(.Level5InterruptVector.literal)
245    _Level5InterruptVector_literal_end = ABSOLUTE(.);
246  } >vector_int5_lit :vector_int5_lit_phdr
247
248  .Level5InterruptVector.text : ALIGN(4)
249  {
250    _Level5InterruptVector_text_start = ABSOLUTE(.);
251    KEEP (*(.Level5InterruptVector.text))
252    _Level5InterruptVector_text_end = ABSOLUTE(.);
253  } >vector_int5_text :vector_int5_text_phdr
254
255  .DebugExceptionVector.literal : ALIGN(4)
256  {
257    _DebugExceptionVector_literal_start = ABSOLUTE(.);
258    *(.DebugExceptionVector.literal)
259    _DebugExceptionVector_literal_end = ABSOLUTE(.);
260  } >vector_int6_lit :vector_int6_lit_phdr
261
262  .DebugExceptionVector.text : ALIGN(4)
263  {
264    _DebugExceptionVector_text_start = ABSOLUTE(.);
265    KEEP (*(.DebugExceptionVector.text))
266    _DebugExceptionVector_text_end = ABSOLUTE(.);
267  } >vector_int6_text :vector_int6_text_phdr
268
269  .NMIExceptionVector.literal : ALIGN(4)
270  {
271    _NMIExceptionVector_literal_start = ABSOLUTE(.);
272    *(.NMIExceptionVector.literal)
273    _NMIExceptionVector_literal_end = ABSOLUTE(.);
274  } >vector_int7_lit :vector_int7_lit_phdr
275
276  .NMIExceptionVector.text : ALIGN(4)
277  {
278    _NMIExceptionVector_text_start = ABSOLUTE(.);
279    KEEP (*(.NMIExceptionVector.text))
280    _NMIExceptionVector_text_end = ABSOLUTE(.);
281  } >vector_int7_text :vector_int7_text_phdr
282
283  .KernelExceptionVector.literal : ALIGN(4)
284  {
285    _KernelExceptionVector_literal_start = ABSOLUTE(.);
286    *(.KernelExceptionVector.literal)
287    _KernelExceptionVector_literal_end = ABSOLUTE(.);
288  } >vector_kernel_lit :vector_kernel_lit_phdr
289
290  .KernelExceptionVector.text : ALIGN(4)
291  {
292    _KernelExceptionVector_text_start = ABSOLUTE(.);
293    KEEP (*(.KernelExceptionVector.text))
294    _KernelExceptionVector_text_end = ABSOLUTE(.);
295  } >vector_kernel_text :vector_kernel_text_phdr
296
297  .UserExceptionVector.literal : ALIGN(4)
298  {
299    _UserExceptionVector_literal_start = ABSOLUTE(.);
300    *(.UserExceptionVector.literal)
301    _UserExceptionVector_literal_end = ABSOLUTE(.);
302  } >vector_user_lit :vector_user_lit_phdr
303
304  .UserExceptionVector.text : ALIGN(4)
305  {
306    _UserExceptionVector_text_start = ABSOLUTE(.);
307    KEEP (*(.UserExceptionVector.text))
308    _UserExceptionVector_text_end = ABSOLUTE(.);
309  } >vector_user_text :vector_user_text_phdr
310
311  .DoubleExceptionVector.literal : ALIGN(4)
312  {
313    _DoubleExceptionVector_literal_start = ABSOLUTE(.);
314    *(.DoubleExceptionVector.literal)
315    _DoubleExceptionVector_literal_end = ABSOLUTE(.);
316  } >vector_double_lit :vector_double_lit_phdr
317
318  .DoubleExceptionVector.text : ALIGN(4)
319  {
320    _DoubleExceptionVector_text_start = ABSOLUTE(.);
321    KEEP (*(.DoubleExceptionVector.text))
322    _DoubleExceptionVector_text_end = ABSOLUTE(.);
323  } >vector_double_text :vector_double_text_phdr
324
325  .ResetHandler.text : ALIGN(4)
326  {
327    _ResetHandler_text_start = ABSOLUTE(.);
328    KEEP (*(.ResetHandler.text))
329    _ResetHandler_text_end = ABSOLUTE(.);
330  } >sof_fw :sof_fw_phdr
331
332  .text : ALIGN(4)
333  {
334    _stext = .;
335    _text_start = ABSOLUTE(.);
336    KEEP (*(.MainEntry.text))
337    *(.entry.text)
338    *(.init.literal)
339    KEEP(*(.init))
340    *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
341    *(.fini.literal)
342    KEEP(*(.fini))
343    *(.gnu.version)
344    KEEP (*(.ResetHandler.text))
345    _text_end = ABSOLUTE(.);
346    _etext = .;
347  } >sof_fw :sof_fw_phdr
348
349  .rodata : ALIGN(SRAM_BANK_SIZE) /* TODO: it should be 4096 */
350  {
351    _rodata_start = ABSOLUTE(.);
352    *(.rodata)
353    *(.rodata.*)
354    *(.gnu.linkonce.r.*)
355    *(.rodata1)
356    __XT_EXCEPTION_TABLE__ = ABSOLUTE(.);
357    KEEP (*(.xt_except_table))
358    KEEP (*(.gcc_except_table))
359    *(.gnu.linkonce.e.*)
360    *(.gnu.version_r)
361    KEEP (*(.eh_frame))
362    /*  C++ constructor and destructor tables, properly ordered:  */
363    KEEP (*crtbegin.o(.ctors))
364    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
365    KEEP (*(SORT(.ctors.*)))
366    KEEP (*(.ctors))
367    KEEP (*crtbegin.o(.dtors))
368    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
369    KEEP (*(SORT(.dtors.*)))
370    KEEP (*(.dtors))
371    /*  C++ exception handlers table:  */
372    __XT_EXCEPTION_DESCS__ = ABSOLUTE(.);
373    *(.xt_except_desc)
374    *(.gnu.linkonce.h.*)
375    __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
376    *(.xt_except_desc_end)
377    *(.dynamic)
378    *(.gnu.version_d)
379    . = ALIGN(4);		/* this table MUST be 4-byte aligned */
380    _bss_table_start = ABSOLUTE(.);
381    LONG(_bss_start)
382    LONG(_bss_end)
383    _bss_table_end = ABSOLUTE(.);
384    _rodata_end = ABSOLUTE(.);
385  } >sof_fw :sof_fw_phdr
386
387  .module_init : ALIGN(4)
388  {
389    _module_init_start = ABSOLUTE(.);
390    *(*.module_init)
391    _module_init_end = ABSOLUTE(.);
392  } >sof_fw :sof_fw_phdr
393
394  .shared_data : ALIGN(PLATFORM_DCACHE_ALIGN)
395  {
396    _shared_data_start = ABSOLUTE(.);
397    *(*.shared_data)
398    _shared_data_end = ABSOLUTE(.);
399    . = ALIGN(PLATFORM_DCACHE_ALIGN);
400  } >sof_fw :sof_fw_phdr
401
402  .data : ALIGN(4)
403  {
404    _data_start = ABSOLUTE(.);
405    *(.data)
406    *(.data.*)
407    *(.gnu.linkonce.d.*)
408    KEEP(*(.gnu.linkonce.d.*personality*))
409    *(.data1)
410    *(.sdata)
411    *(.sdata.*)
412    *(.gnu.linkonce.s.*)
413    *(.sdata2)
414    *(.sdata2.*)
415    *(.gnu.linkonce.s2.*)
416    KEEP(*(.jcr))
417    _trace_ctx_start = ABSOLUTE(.);
418    *(.trace_ctx)
419    _trace_ctx_end = ABSOLUTE(.);
420    _data_end = ABSOLUTE(.);
421  } >sof_fw :sof_fw_phdr
422
423  .lit4 : ALIGN(4)
424  {
425    _lit4_start = ABSOLUTE(.);
426    *(*.lit4)
427    *(.lit4.*)
428    *(.gnu.linkonce.lit4.*)
429    _lit4_end = ABSOLUTE(.);
430  } >sof_fw :sof_fw_phdr
431
432  .fw_ready : ALIGN(4)
433  {
434    KEEP (*(.fw_ready))
435    KEEP (*(.fw_ready_metadata))
436  } >sof_fw :sof_fw_phdr
437
438  .bss (NOLOAD) : ALIGN(4096)
439  {
440    . = ALIGN (8);
441    _bss_start = ABSOLUTE(.);
442    *(.dynsbss)
443    *(.sbss)
444    *(.sbss.*)
445    *(.gnu.linkonce.sb.*)
446    *(.scommon)
447    *(.sbss2)
448    *(.sbss2.*)
449    *(.gnu.linkonce.sb2.*)
450    *(.dynbss)
451    *(.bss)
452    *(.bss.*)
453    *(.gnu.linkonce.b.*)
454    *(COMMON)
455
456	. = ALIGN (SRAM_BANK_SIZE);
457    _runtime_heap_start = ABSOLUTE(.);
458    . = . + HEAP_RUNTIME_SIZE;
459    _runtime_heap_end = ABSOLUTE(.);
460
461    . = ALIGN (HEAP_BUF_ALIGNMENT);
462    _buffer_heap_start = ABSOLUTE(.);
463    . = . + HEAP_BUFFER_SIZE;
464    _buffer_heap_end = ABSOLUTE(.);
465
466    . = ALIGN (SRAM_BANK_SIZE);
467    _system_heap_start = ABSOLUTE(.);
468    . = . + HEAP_SYSTEM_M_SIZE;
469    _system_heap_end = ABSOLUTE(.);
470
471    . = ALIGN (HEAP_BUF_ALIGNMENT);
472    _system_runtime_heap_start = ABSOLUTE(.);
473    . = . + HEAP_SYS_RUNTIME_M_SIZE;
474    _system_runtime_heap_end = ABSOLUTE(.);
475
476    . = ALIGN (PLATFORM_DCACHE_ALIGN);
477    _runtime_shared_heap_start = ABSOLUTE(.);
478    . = . + HEAP_RUNTIME_SHARED_SIZE;
479    . = ALIGN (PLATFORM_DCACHE_ALIGN);
480    _runtime_shared_heap_end = ABSOLUTE(.);
481
482    . = ALIGN (PLATFORM_DCACHE_ALIGN);
483    _system_shared_heap_start = ABSOLUTE(.);
484    . = . + HEAP_SYSTEM_SHARED_SIZE;
485    . = ALIGN (PLATFORM_DCACHE_ALIGN);
486    _system_shared_heap_end = ABSOLUTE(.);
487
488    . = ALIGN (4096);
489    _sof_stack_start = ABSOLUTE(.);
490    . = . + SOF_STACK_SIZE;
491    _sof_stack_end = ABSOLUTE(.);
492
493    . = ALIGN (SRAM_BANK_SIZE);
494    _sof_core_s_start = ABSOLUTE(.);
495    . = . + SOF_CORE_S_T_SIZE;
496    _sof_core_s_end = ABSOLUTE(.);
497
498    _bss_end = ABSOLUTE(.);
499  } >sof_fw :sof_fw_phdr
500
501  /* stack */
502  _end = _sof_stack_start;
503  PROVIDE(end = _sof_stack_start);
504  _stack_sentry = _sof_stack_start;
505  __stack = _sof_stack_end;
506
507  /* Secondary core size */
508  _core_s_size = SOF_CORE_S_SIZE;
509
510  /* System Heap */
511  _system_heap = _system_heap_start;
512
513  /* system runtime heap */
514  _system_runtime_heap = _system_runtime_heap_start;
515
516  /* Shared Heap */
517  _runtime_shared_heap = _runtime_shared_heap_start;
518  _system_shared_heap = _system_shared_heap_start;
519
520  /* module heap */
521  _module_heap = _runtime_heap_start;
522
523  /* buffer heap */
524  _buffer_heap = _buffer_heap_start;
525  _buffer_heap_end = _buffer_heap_end;
526
527  .debug  0 :  { *(.debug) }
528  .line  0 :  { *(.line) }
529  .debug_srcinfo  0 :  { *(.debug_srcinfo) }
530  .debug_sfnames  0 :  { *(.debug_sfnames) }
531  .debug_aranges  0 :  { *(.debug_aranges) }
532  .debug_pubnames  0 :  { *(.debug_pubnames) }
533  .debug_info  0 :  { *(.debug_info) }
534  .debug_abbrev  0 :  { *(.debug_abbrev) }
535  .debug_line  0 :  { *(.debug_line) }
536  .debug_frame  0 :  { *(.debug_frame) }
537  .debug_str  0 :  { *(.debug_str) }
538  .debug_loc  0 :  { *(.debug_loc) }
539  .debug_macinfo  0 :  { *(.debug_macinfo) }
540  .debug_weaknames  0 :  { *(.debug_weaknames) }
541  .debug_funcnames  0 :  { *(.debug_funcnames) }
542  .debug_typenames  0 :  { *(.debug_typenames) }
543  .debug_varnames  0 :  { *(.debug_varnames) }
544
545  .xt.insn 0 :
546  {
547    KEEP (*(.xt.insn))
548    KEEP (*(.gnu.linkonce.x.*))
549  }
550  .xt.prop 0 :
551  {
552    KEEP (*(.xt.prop))
553    KEEP (*(.xt.prop.*))
554    KEEP (*(.gnu.linkonce.prop.*))
555  }
556  .xt.lit 0 :
557  {
558    KEEP (*(.xt.lit))
559    KEEP (*(.xt.lit.*))
560    KEEP (*(.gnu.linkonce.p.*))
561  }
562  .xt.profile_range 0 :
563  {
564    KEEP (*(.xt.profile_range))
565    KEEP (*(.gnu.linkonce.profile_range.*))
566  }
567  .xt.profile_ranges 0 :
568  {
569    KEEP (*(.xt.profile_ranges))
570    KEEP (*(.gnu.linkonce.xt.profile_ranges.*))
571  }
572  .xt.profile_files 0 :
573  {
574    KEEP (*(.xt.profile_files))
575    KEEP (*(.gnu.linkonce.xt.profile_files.*))
576  }
577
578  .static_uuid_entries (COPY) : ALIGN(1024)
579  {
580    *(*.static_uuids)
581  } > static_uuid_entries_seg :static_uuid_entries_phdr
582
583  .static_log_entries (COPY) : ALIGN(1024)
584  {
585    *(*.static_log*)
586  } > static_log_entries_seg :static_log_entries_phdr
587
588  .fw_metadata (COPY) : ALIGN(1024)
589  {
590    KEEP (*(.fw_metadata))
591    . = ALIGN(_EXT_MAN_ALIGN_);
592  } >fw_metadata_seg :metadata_entries_phdr
593}
594