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