1/* SPDX-License-Identifier: GPL-2.0+ */ 2 3MEMORY { .spl_mem : ORIGIN = IMAGE_TEXT_BASE, \ 4 LENGTH = IMAGE_MAX_SIZE } 5MEMORY { .bss_mem : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ 6 LENGTH = CONFIG_SPL_BSS_MAX_SIZE } 7 8OUTPUT_ARCH(mips) 9ENTRY(_start) 10SECTIONS 11{ 12 . = 0x00000000; 13 14 . = ALIGN(4); 15 .text : { 16 *(.text*) 17 } > .spl_mem 18 19 . = ALIGN(4); 20 .rodata : { 21 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) 22 } > .spl_mem 23 24 . = ALIGN(4); 25 .data : { 26 *(SORT_BY_ALIGNMENT(.data*)) 27 *(SORT_BY_ALIGNMENT(.sdata*)) 28 } > .spl_mem 29 30#if defined(CONFIG_SPL_DM) || defined(CONFIG_SPL_LOADER_SUPPORT) 31 . = ALIGN(4); 32 .u_boot_list : { 33 KEEP(*(SORT(.u_boot_list*))); 34 } > .spl_mem 35#endif 36 37 . = ALIGN(4); 38 __image_copy_end = .; 39 40 _image_binary_end = .; 41 42 .bss (NOLOAD) : { 43 __bss_start = .; 44 *(.bss*) 45 *(.sbss*) 46 *(COMMON) 47 . = ALIGN(4); 48 __bss_end = .; 49 } > .bss_mem 50 51 /* These mark the ABI of U-Boot for debuggers. */ 52 .mdebug.abi32 : { 53 KEEP(*(.mdebug.abi32)) 54 } 55 .mdebug.abi64 : { 56 KEEP(*(.mdebug.abi64)) 57 } 58 59 /* This is the MIPS specific mdebug section. */ 60 .mdebug : { *(.mdebug) } 61 62 /* Stabs debugging sections. */ 63 .stab 0 : { *(.stab) } 64 .stabstr 0 : { *(.stabstr) } 65 .stab.excl 0 : { *(.stab.excl) } 66 .stab.exclstr 0 : { *(.stab.exclstr) } 67 .stab.index 0 : { *(.stab.index) } 68 .stab.indexstr 0 : { *(.stab.indexstr) } 69 .comment 0 : { *(.comment) } 70 71 /* 72 * DWARF debug sections. 73 * Symbols in the DWARF debugging sections are relative to 74 * the beginning of the section so we begin them at 0. 75 */ 76 /* DWARF 1 */ 77 .debug 0 : { *(.debug) } 78 .line 0 : { *(.line) } 79 /* GNU DWARF 1 extensions */ 80 .debug_srcinfo 0 : { *(.debug_srcinfo) } 81 .debug_sfnames 0 : { *(.debug_sfnames) } 82 /* DWARF 1.1 and DWARF 2 */ 83 .debug_aranges 0 : { *(.debug_aranges) } 84 .debug_pubnames 0 : { *(.debug_pubnames) } 85 /* DWARF 2 */ 86 .debug_info 0 : { 87 *(.debug_info 88 .gnu.linkonce.wi.*) 89 } 90 .debug_abbrev 0 : { *(.debug_abbrev) } 91 .debug_line 0 : { *(.debug_line) } 92 .debug_frame 0 : { *(.debug_frame) } 93 .debug_str 0 : { *(.debug_str) } 94 .debug_loc 0 : { *(.debug_loc) } 95 .debug_macinfo 0 : { *(.debug_macinfo) } 96 .debug_pubtypes 0 : { *(.debug_pubtypes) } 97 /* DWARF 3 */ 98 .debug_ranges 0 : { *(.debug_ranges) } 99 /* SGI/MIPS DWARF 2 extensions */ 100 .debug_weaknames 0 : { *(.debug_weaknames) } 101 .debug_funcnames 0 : { *(.debug_funcnames) } 102 .debug_typenames 0 : { *(.debug_typenames) } 103 .debug_varnames 0 : { *(.debug_varnames) } 104 /* GNU DWARF 2 extensions */ 105 .debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) } 106 .debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) } 107 /* DWARF 4 */ 108 .debug_types 0 : { *(.debug_types) } 109 /* DWARF 5 */ 110 .debug_macro 0 : { *(.debug_macro) } 111 .debug_addr 0 : { *(.debug_addr) } 112 113 /DISCARD/ : { 114 /* ABI crap starts here */ 115 *(.MIPS.abiflags) 116 *(.MIPS.options) 117 *(.options) 118 *(.pdr) 119 *(.reginfo) 120 *(.eh_frame) 121 } 122} 123