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