Tom Rini | 10e4779 | 2018-05-06 17:58:06 -0400 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 2 | |
Tom Rini | 2aaa27d | 2019-01-22 17:09:26 -0500 | [diff] [blame] | 3 | MEMORY { .spl_mem : ORIGIN = IMAGE_TEXT_BASE, \ |
| 4 | LENGTH = IMAGE_MAX_SIZE } |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 5 | MEMORY { .bss_mem : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \ |
| 6 | LENGTH = CONFIG_SPL_BSS_MAX_SIZE } |
| 7 | |
| 8 | OUTPUT_ARCH(mips) |
| 9 | ENTRY(_start) |
| 10 | SECTIONS |
| 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 | #ifdef CONFIG_SPL_DM |
| 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 | .bss (NOLOAD) : { |
| 41 | __bss_start = .; |
| 42 | *(.bss*) |
| 43 | *(.sbss*) |
| 44 | *(COMMON) |
| 45 | . = ALIGN(4); |
| 46 | __bss_end = .; |
| 47 | } > .bss_mem |
| 48 | |
Daniel Schwierzeck | ce2b89e | 2019-01-06 20:42:43 +0100 | [diff] [blame] | 49 | /* These mark the ABI of U-Boot for debuggers. */ |
| 50 | .mdebug.abi32 : { |
| 51 | KEEP(*(.mdebug.abi32)) |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 52 | } |
Daniel Schwierzeck | ce2b89e | 2019-01-06 20:42:43 +0100 | [diff] [blame] | 53 | .mdebug.abi64 : { |
| 54 | KEEP(*(.mdebug.abi64)) |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 55 | } |
| 56 | |
Daniel Schwierzeck | ce2b89e | 2019-01-06 20:42:43 +0100 | [diff] [blame] | 57 | /* This is the MIPS specific mdebug section. */ |
| 58 | .mdebug : { *(.mdebug) } |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 59 | |
Daniel Schwierzeck | ce2b89e | 2019-01-06 20:42:43 +0100 | [diff] [blame] | 60 | /* Stabs debugging sections. */ |
| 61 | .stab 0 : { *(.stab) } |
| 62 | .stabstr 0 : { *(.stabstr) } |
| 63 | .stab.excl 0 : { *(.stab.excl) } |
| 64 | .stab.exclstr 0 : { *(.stab.exclstr) } |
| 65 | .stab.index 0 : { *(.stab.index) } |
| 66 | .stab.indexstr 0 : { *(.stab.indexstr) } |
| 67 | .comment 0 : { *(.comment) } |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 68 | |
Daniel Schwierzeck | ce2b89e | 2019-01-06 20:42:43 +0100 | [diff] [blame] | 69 | /* |
| 70 | * DWARF debug sections. |
| 71 | * Symbols in the DWARF debugging sections are relative to |
| 72 | * the beginning of the section so we begin them at 0. |
| 73 | */ |
| 74 | /* DWARF 1 */ |
| 75 | .debug 0 : { *(.debug) } |
| 76 | .line 0 : { *(.line) } |
| 77 | /* GNU DWARF 1 extensions */ |
| 78 | .debug_srcinfo 0 : { *(.debug_srcinfo) } |
| 79 | .debug_sfnames 0 : { *(.debug_sfnames) } |
| 80 | /* DWARF 1.1 and DWARF 2 */ |
| 81 | .debug_aranges 0 : { *(.debug_aranges) } |
| 82 | .debug_pubnames 0 : { *(.debug_pubnames) } |
| 83 | /* DWARF 2 */ |
| 84 | .debug_info 0 : { |
| 85 | *(.debug_info |
| 86 | .gnu.linkonce.wi.*) |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 87 | } |
Daniel Schwierzeck | ce2b89e | 2019-01-06 20:42:43 +0100 | [diff] [blame] | 88 | .debug_abbrev 0 : { *(.debug_abbrev) } |
| 89 | .debug_line 0 : { *(.debug_line) } |
| 90 | .debug_frame 0 : { *(.debug_frame) } |
| 91 | .debug_str 0 : { *(.debug_str) } |
| 92 | .debug_loc 0 : { *(.debug_loc) } |
| 93 | .debug_macinfo 0 : { *(.debug_macinfo) } |
| 94 | .debug_pubtypes 0 : { *(.debug_pubtypes) } |
| 95 | /* DWARF 3 */ |
| 96 | .debug_ranges 0 : { *(.debug_ranges) } |
| 97 | /* SGI/MIPS DWARF 2 extensions */ |
| 98 | .debug_weaknames 0 : { *(.debug_weaknames) } |
| 99 | .debug_funcnames 0 : { *(.debug_funcnames) } |
| 100 | .debug_typenames 0 : { *(.debug_typenames) } |
| 101 | .debug_varnames 0 : { *(.debug_varnames) } |
| 102 | /* GNU DWARF 2 extensions */ |
| 103 | .debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) } |
| 104 | .debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) } |
| 105 | /* DWARF 4 */ |
| 106 | .debug_types 0 : { *(.debug_types) } |
| 107 | /* DWARF 5 */ |
| 108 | .debug_macro 0 : { *(.debug_macro) } |
| 109 | .debug_addr 0 : { *(.debug_addr) } |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 110 | |
Daniel Schwierzeck | ce2b89e | 2019-01-06 20:42:43 +0100 | [diff] [blame] | 111 | /DISCARD/ : { |
| 112 | /* ABI crap starts here */ |
| 113 | *(.MIPS.abiflags) |
| 114 | *(.MIPS.options) |
| 115 | *(.options) |
| 116 | *(.pdr) |
| 117 | *(.reginfo) |
| 118 | *(.eh_frame) |
Daniel Schwierzeck | 848a7cc | 2016-05-26 15:28:38 +0200 | [diff] [blame] | 119 | } |
| 120 | } |