xref: /openbmc/u-boot/arch/mips/cpu/u-boot-spl.lds (revision 2f41ade79e5969ebea03a7dcadbeae8e03787d7e)
183d290c5STom Rini/* SPDX-License-Identifier: GPL-2.0+ */
207f5b966SDaniel Schwierzeck
3*2f41ade7STom RiniMEMORY { .spl_mem : ORIGIN = IMAGE_TEXT_BASE, \
4*2f41ade7STom Rini		LENGTH = IMAGE_MAX_SIZE }
507f5b966SDaniel SchwierzeckMEMORY { .bss_mem : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
607f5b966SDaniel Schwierzeck		LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
707f5b966SDaniel Schwierzeck
807f5b966SDaniel SchwierzeckOUTPUT_ARCH(mips)
907f5b966SDaniel SchwierzeckENTRY(_start)
1007f5b966SDaniel SchwierzeckSECTIONS
1107f5b966SDaniel Schwierzeck{
1207f5b966SDaniel Schwierzeck	. = 0x00000000;
1307f5b966SDaniel Schwierzeck
1407f5b966SDaniel Schwierzeck	. = ALIGN(4);
1507f5b966SDaniel Schwierzeck	.text : {
1607f5b966SDaniel Schwierzeck		*(.text*)
1707f5b966SDaniel Schwierzeck	} > .spl_mem
1807f5b966SDaniel Schwierzeck
1907f5b966SDaniel Schwierzeck	. = ALIGN(4);
2007f5b966SDaniel Schwierzeck	.rodata : {
2107f5b966SDaniel Schwierzeck		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
2207f5b966SDaniel Schwierzeck	} > .spl_mem
2307f5b966SDaniel Schwierzeck
2407f5b966SDaniel Schwierzeck	. = ALIGN(4);
2507f5b966SDaniel Schwierzeck	.data : {
2607f5b966SDaniel Schwierzeck		*(SORT_BY_ALIGNMENT(.data*))
2707f5b966SDaniel Schwierzeck		*(SORT_BY_ALIGNMENT(.sdata*))
2807f5b966SDaniel Schwierzeck	} > .spl_mem
2907f5b966SDaniel Schwierzeck
3007f5b966SDaniel Schwierzeck#ifdef CONFIG_SPL_DM
3107f5b966SDaniel Schwierzeck	. = ALIGN(4);
3207f5b966SDaniel Schwierzeck	.u_boot_list : {
3307f5b966SDaniel Schwierzeck		KEEP(*(SORT(.u_boot_list*)));
3407f5b966SDaniel Schwierzeck	} > .spl_mem
3507f5b966SDaniel Schwierzeck#endif
3607f5b966SDaniel Schwierzeck
3707f5b966SDaniel Schwierzeck	. = ALIGN(4);
3807f5b966SDaniel Schwierzeck	__image_copy_end = .;
3907f5b966SDaniel Schwierzeck
4007f5b966SDaniel Schwierzeck	.bss (NOLOAD) : {
4107f5b966SDaniel Schwierzeck		__bss_start = .;
4207f5b966SDaniel Schwierzeck		*(.bss*)
4307f5b966SDaniel Schwierzeck		*(.sbss*)
4407f5b966SDaniel Schwierzeck		*(COMMON)
4507f5b966SDaniel Schwierzeck		. = ALIGN(4);
4607f5b966SDaniel Schwierzeck		__bss_end = .;
4707f5b966SDaniel Schwierzeck	} > .bss_mem
4807f5b966SDaniel Schwierzeck
492fdadc0fSDaniel Schwierzeck	/* These mark the ABI of U-Boot for debuggers. */
502fdadc0fSDaniel Schwierzeck	.mdebug.abi32 : {
512fdadc0fSDaniel Schwierzeck		KEEP(*(.mdebug.abi32))
522fdadc0fSDaniel Schwierzeck	}
532fdadc0fSDaniel Schwierzeck	.mdebug.abi64 : {
542fdadc0fSDaniel Schwierzeck		KEEP(*(.mdebug.abi64))
5507f5b966SDaniel Schwierzeck	}
5607f5b966SDaniel Schwierzeck
572fdadc0fSDaniel Schwierzeck	/* This is the MIPS specific mdebug section. */
582fdadc0fSDaniel Schwierzeck	.mdebug : { *(.mdebug) }
5907f5b966SDaniel Schwierzeck
602fdadc0fSDaniel Schwierzeck	/* Stabs debugging sections.  */
612fdadc0fSDaniel Schwierzeck	.stab 0 : { *(.stab) }
622fdadc0fSDaniel Schwierzeck	.stabstr 0 : { *(.stabstr) }
632fdadc0fSDaniel Schwierzeck	.stab.excl 0 : { *(.stab.excl) }
642fdadc0fSDaniel Schwierzeck	.stab.exclstr 0 : { *(.stab.exclstr) }
652fdadc0fSDaniel Schwierzeck	.stab.index 0 : { *(.stab.index) }
662fdadc0fSDaniel Schwierzeck	.stab.indexstr 0 : { *(.stab.indexstr) }
672fdadc0fSDaniel Schwierzeck	.comment 0 : { *(.comment) }
6807f5b966SDaniel Schwierzeck
692fdadc0fSDaniel Schwierzeck	/*
702fdadc0fSDaniel Schwierzeck	 * DWARF debug sections.
712fdadc0fSDaniel Schwierzeck	 * Symbols in the DWARF debugging sections are relative to
722fdadc0fSDaniel Schwierzeck	 * the beginning of the section so we begin them at 0.
732fdadc0fSDaniel Schwierzeck	 */
742fdadc0fSDaniel Schwierzeck	/* DWARF 1 */
752fdadc0fSDaniel Schwierzeck	.debug 0 : { *(.debug) }
762fdadc0fSDaniel Schwierzeck	.line 0 : { *(.line) }
772fdadc0fSDaniel Schwierzeck	/* GNU DWARF 1 extensions */
782fdadc0fSDaniel Schwierzeck	.debug_srcinfo 0 : { *(.debug_srcinfo) }
792fdadc0fSDaniel Schwierzeck	.debug_sfnames 0 : { *(.debug_sfnames) }
802fdadc0fSDaniel Schwierzeck	/* DWARF 1.1 and DWARF 2 */
812fdadc0fSDaniel Schwierzeck	.debug_aranges 0 : { *(.debug_aranges) }
822fdadc0fSDaniel Schwierzeck	.debug_pubnames 0 : { *(.debug_pubnames) }
832fdadc0fSDaniel Schwierzeck	/* DWARF 2 */
842fdadc0fSDaniel Schwierzeck	.debug_info 0 : {
852fdadc0fSDaniel Schwierzeck		*(.debug_info
862fdadc0fSDaniel Schwierzeck		.gnu.linkonce.wi.*)
8707f5b966SDaniel Schwierzeck	}
882fdadc0fSDaniel Schwierzeck	.debug_abbrev 0 : { *(.debug_abbrev) }
892fdadc0fSDaniel Schwierzeck	.debug_line 0 : { *(.debug_line) }
902fdadc0fSDaniel Schwierzeck	.debug_frame 0 : { *(.debug_frame) }
912fdadc0fSDaniel Schwierzeck	.debug_str 0 : { *(.debug_str) }
922fdadc0fSDaniel Schwierzeck	.debug_loc 0 : { *(.debug_loc) }
932fdadc0fSDaniel Schwierzeck	.debug_macinfo 0 : { *(.debug_macinfo) }
942fdadc0fSDaniel Schwierzeck	.debug_pubtypes 0 : { *(.debug_pubtypes) }
952fdadc0fSDaniel Schwierzeck	/* DWARF 3 */
962fdadc0fSDaniel Schwierzeck	.debug_ranges 0 : { *(.debug_ranges) }
972fdadc0fSDaniel Schwierzeck	/* SGI/MIPS DWARF 2 extensions */
982fdadc0fSDaniel Schwierzeck	.debug_weaknames 0 : { *(.debug_weaknames) }
992fdadc0fSDaniel Schwierzeck	.debug_funcnames 0 : { *(.debug_funcnames) }
1002fdadc0fSDaniel Schwierzeck	.debug_typenames 0 : { *(.debug_typenames) }
1012fdadc0fSDaniel Schwierzeck	.debug_varnames 0 : { *(.debug_varnames) }
1022fdadc0fSDaniel Schwierzeck	/* GNU DWARF 2 extensions */
1032fdadc0fSDaniel Schwierzeck	.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
1042fdadc0fSDaniel Schwierzeck	.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
1052fdadc0fSDaniel Schwierzeck	/* DWARF 4 */
1062fdadc0fSDaniel Schwierzeck	.debug_types 0 : { *(.debug_types) }
1072fdadc0fSDaniel Schwierzeck	/* DWARF 5 */
1082fdadc0fSDaniel Schwierzeck	.debug_macro 0 : { *(.debug_macro) }
1092fdadc0fSDaniel Schwierzeck	.debug_addr 0 : { *(.debug_addr) }
11007f5b966SDaniel Schwierzeck
1112fdadc0fSDaniel Schwierzeck	/DISCARD/ : {
1122fdadc0fSDaniel Schwierzeck		/* ABI crap starts here */
1132fdadc0fSDaniel Schwierzeck		*(.MIPS.abiflags)
1142fdadc0fSDaniel Schwierzeck		*(.MIPS.options)
1152fdadc0fSDaniel Schwierzeck		*(.options)
1162fdadc0fSDaniel Schwierzeck		*(.pdr)
1172fdadc0fSDaniel Schwierzeck		*(.reginfo)
1182fdadc0fSDaniel Schwierzeck		*(.eh_frame)
11907f5b966SDaniel Schwierzeck	}
12007f5b966SDaniel Schwierzeck}
121