mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 20:18:18 +00:00 
			
		
		
		
	u_boot_list is not only used by DM, but also by some SPL image load methods such as spl_nor.c. This patch adds an option CONFIG_SPL_LOADER_SUPPORT in conjunction with CONFIG_SPL_DM surrounding the u_boot_list section to make sure SPL image loaders can be correctly built into u-boot SPL without DM enabled. Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
		
			
				
	
	
		
			123 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| 
 | |
| MEMORY { .spl_mem : ORIGIN = IMAGE_TEXT_BASE, \
 | |
| 		LENGTH = IMAGE_MAX_SIZE }
 | |
| MEMORY { .bss_mem : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
 | |
| 		LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
 | |
| 
 | |
| OUTPUT_ARCH(mips)
 | |
| ENTRY(_start)
 | |
| SECTIONS
 | |
| {
 | |
| 	. = 0x00000000;
 | |
| 
 | |
| 	. = ALIGN(4);
 | |
| 	.text : {
 | |
| 		*(.text*)
 | |
| 	} > .spl_mem
 | |
| 
 | |
| 	. = ALIGN(4);
 | |
| 	.rodata : {
 | |
| 		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
 | |
| 	} > .spl_mem
 | |
| 
 | |
| 	. = ALIGN(4);
 | |
| 	.data : {
 | |
| 		*(SORT_BY_ALIGNMENT(.data*))
 | |
| 		*(SORT_BY_ALIGNMENT(.sdata*))
 | |
| 	} > .spl_mem
 | |
| 
 | |
| #if defined(CONFIG_SPL_DM) || defined(CONFIG_SPL_LOADER_SUPPORT)
 | |
| 	. = ALIGN(4);
 | |
| 	.u_boot_list : {
 | |
| 		KEEP(*(SORT(.u_boot_list*)));
 | |
| 	} > .spl_mem
 | |
| #endif
 | |
| 
 | |
| 	. = ALIGN(4);
 | |
| 	__image_copy_end = .;
 | |
| 
 | |
| 	_image_binary_end = .;
 | |
| 
 | |
| 	.bss (NOLOAD) : {
 | |
| 		__bss_start = .;
 | |
| 		*(.bss*)
 | |
| 		*(.sbss*)
 | |
| 		*(COMMON)
 | |
| 		. = ALIGN(4);
 | |
| 		__bss_end = .;
 | |
| 	} > .bss_mem
 | |
| 
 | |
| 	/* These mark the ABI of U-Boot for debuggers. */
 | |
| 	.mdebug.abi32 : {
 | |
| 		KEEP(*(.mdebug.abi32))
 | |
| 	}
 | |
| 	.mdebug.abi64 : {
 | |
| 		KEEP(*(.mdebug.abi64))
 | |
| 	}
 | |
| 
 | |
| 	/* This is the MIPS specific mdebug section. */
 | |
| 	.mdebug : { *(.mdebug) }
 | |
| 
 | |
| 	/* Stabs debugging sections.  */
 | |
| 	.stab 0 : { *(.stab) }
 | |
| 	.stabstr 0 : { *(.stabstr) }
 | |
| 	.stab.excl 0 : { *(.stab.excl) }
 | |
| 	.stab.exclstr 0 : { *(.stab.exclstr) }
 | |
| 	.stab.index 0 : { *(.stab.index) }
 | |
| 	.stab.indexstr 0 : { *(.stab.indexstr) }
 | |
| 	.comment 0 : { *(.comment) }
 | |
| 
 | |
| 	/*
 | |
| 	 * DWARF debug sections.
 | |
| 	 * Symbols in the DWARF debugging sections are relative to
 | |
| 	 * the beginning of the section so we begin them at 0.
 | |
| 	 */
 | |
| 	/* DWARF 1 */
 | |
| 	.debug 0 : { *(.debug) }
 | |
| 	.line 0 : { *(.line) }
 | |
| 	/* GNU DWARF 1 extensions */
 | |
| 	.debug_srcinfo 0 : { *(.debug_srcinfo) }
 | |
| 	.debug_sfnames 0 : { *(.debug_sfnames) }
 | |
| 	/* DWARF 1.1 and DWARF 2 */
 | |
| 	.debug_aranges 0 : { *(.debug_aranges) }
 | |
| 	.debug_pubnames 0 : { *(.debug_pubnames) }
 | |
| 	/* DWARF 2 */
 | |
| 	.debug_info 0 : {
 | |
| 		*(.debug_info
 | |
| 		.gnu.linkonce.wi.*)
 | |
| 	}
 | |
| 	.debug_abbrev 0 : { *(.debug_abbrev) }
 | |
| 	.debug_line 0 : { *(.debug_line) }
 | |
| 	.debug_frame 0 : { *(.debug_frame) }
 | |
| 	.debug_str 0 : { *(.debug_str) }
 | |
| 	.debug_loc 0 : { *(.debug_loc) }
 | |
| 	.debug_macinfo 0 : { *(.debug_macinfo) }
 | |
| 	.debug_pubtypes 0 : { *(.debug_pubtypes) }
 | |
| 	/* DWARF 3 */
 | |
| 	.debug_ranges 0 : { *(.debug_ranges) }
 | |
| 	/* SGI/MIPS DWARF 2 extensions */
 | |
| 	.debug_weaknames 0 : { *(.debug_weaknames) }
 | |
| 	.debug_funcnames 0 : { *(.debug_funcnames) }
 | |
| 	.debug_typenames 0 : { *(.debug_typenames) }
 | |
| 	.debug_varnames 0 : { *(.debug_varnames) }
 | |
| 	/* GNU DWARF 2 extensions */
 | |
| 	.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
 | |
| 	.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
 | |
| 	/* DWARF 4 */
 | |
| 	.debug_types 0 : { *(.debug_types) }
 | |
| 	/* DWARF 5 */
 | |
| 	.debug_macro 0 : { *(.debug_macro) }
 | |
| 	.debug_addr 0 : { *(.debug_addr) }
 | |
| 
 | |
| 	/DISCARD/ : {
 | |
| 		/* ABI crap starts here */
 | |
| 		*(.MIPS.abiflags)
 | |
| 		*(.MIPS.options)
 | |
| 		*(.options)
 | |
| 		*(.pdr)
 | |
| 		*(.reginfo)
 | |
| 		*(.eh_frame)
 | |
| 	}
 | |
| }
 |