mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01:00 
			
		
		
		
	MIPS: provide a default u-boot-spl.lds
Provide a default linker script for SPL binaries. Start address and size of text section and BSS section are configurable. All sections are arranged in a way that only relevant sections are kept in the code section for maximum size reduction. All other sections are kept but moved outside the code section to help with debugging. Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Acked-by: Marek Vasut <marex@denx.de>
This commit is contained in:
		| @@ -65,7 +65,7 @@ else | |||||||
| PF_ABICALLS			:= -mabicalls | PF_ABICALLS			:= -mabicalls | ||||||
| PF_PIC				:= -fpic | PF_PIC				:= -fpic | ||||||
| PF_PIE				:= -pie | PF_PIE				:= -pie | ||||||
| PF_OBJCOPY			:= -j .got -j .u_boot_list -j .rel.dyn -j .padding | PF_OBJCOPY			:= -j .got -j .rel.dyn -j .padding | ||||||
| PF_OBJCOPY			+= -j .dtb.init.rodata | PF_OBJCOPY			+= -j .dtb.init.rodata | ||||||
| endif | endif | ||||||
|  |  | ||||||
| @@ -74,4 +74,5 @@ PLATFORM_CPPFLAGS		+= -msoft-float | |||||||
| PLATFORM_LDFLAGS		+= -G 0 -static -n -nostdlib | PLATFORM_LDFLAGS		+= -G 0 -static -n -nostdlib | ||||||
| PLATFORM_RELFLAGS		+= -ffunction-sections -fdata-sections | PLATFORM_RELFLAGS		+= -ffunction-sections -fdata-sections | ||||||
| LDFLAGS_FINAL			+= --gc-sections $(PF_PIE) | LDFLAGS_FINAL			+= --gc-sections $(PF_PIE) | ||||||
| OBJCOPYFLAGS			+= -j .text -j .rodata -j .data $(PF_OBJCOPY) | OBJCOPYFLAGS			+= -j .text -j .rodata -j .data -j .u_boot_list | ||||||
|  | OBJCOPYFLAGS			+= $(PF_OBJCOPY) | ||||||
|   | |||||||
							
								
								
									
										90
									
								
								arch/mips/cpu/u-boot-spl.lds
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								arch/mips/cpu/u-boot-spl.lds
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | |||||||
|  | /* | ||||||
|  |  * SPDX-License-Identifier:	GPL-2.0+ | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | MEMORY { .spl_mem : ORIGIN = CONFIG_SPL_TEXT_BASE, \ | ||||||
|  | 		LENGTH = CONFIG_SPL_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 | ||||||
|  |  | ||||||
|  | #ifdef CONFIG_SPL_DM | ||||||
|  | 	. = ALIGN(4); | ||||||
|  | 	.u_boot_list : { | ||||||
|  | 		KEEP(*(SORT(.u_boot_list*))); | ||||||
|  | 	} > .spl_mem | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | 	. = ALIGN(4); | ||||||
|  | 	__image_copy_end = .; | ||||||
|  |  | ||||||
|  | 	.bss (NOLOAD) : { | ||||||
|  | 		__bss_start = .; | ||||||
|  | 		*(.bss*) | ||||||
|  | 		*(.sbss*) | ||||||
|  | 		*(COMMON) | ||||||
|  | 		. = ALIGN(4); | ||||||
|  | 		__bss_end = .; | ||||||
|  | 	} > .bss_mem | ||||||
|  |  | ||||||
|  | 	.rel.dyn (NOLOAD) : { | ||||||
|  | 		*(.rel.dyn) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.dynsym : { | ||||||
|  | 		*(.dynsym) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.dynbss : { | ||||||
|  | 		*(.dynbss) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.dynstr : { | ||||||
|  | 		*(.dynstr) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.dynamic : { | ||||||
|  | 		*(.dynamic) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.plt : { | ||||||
|  | 		*(.plt) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.interp : { | ||||||
|  | 		*(.interp) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.gnu : { | ||||||
|  | 		*(.gnu*) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.MIPS.stubs : { | ||||||
|  | 		*(.MIPS.stubs) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	.hash : { | ||||||
|  | 		*(.hash) | ||||||
|  | 	} | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user