183d290c5STom Rini/* SPDX-License-Identifier: GPL-2.0+ */ 2cb5dbca8SGabor Juhos/* 3cb5dbca8SGabor Juhos * (C) Copyright 2003 4cb5dbca8SGabor Juhos * Wolfgang Denk Engineering, <wd@denx.de> 5cb5dbca8SGabor Juhos */ 6cb5dbca8SGabor Juhos 7cb5dbca8SGabor JuhosOUTPUT_ARCH(mips) 8cb5dbca8SGabor JuhosENTRY(_start) 9cb5dbca8SGabor JuhosSECTIONS 10cb5dbca8SGabor Juhos{ 11cb5dbca8SGabor Juhos . = 0x00000000; 12cb5dbca8SGabor Juhos 13cb5dbca8SGabor Juhos . = ALIGN(4); 14cb5dbca8SGabor Juhos .text : { 15d263cda5SPaul Burton __text_start = .; 16cb5dbca8SGabor Juhos *(.text*) 17d263cda5SPaul Burton __text_end = .; 18cb5dbca8SGabor Juhos } 19cb5dbca8SGabor Juhos 20cb5dbca8SGabor Juhos . = ALIGN(4); 21cb5dbca8SGabor Juhos .rodata : { 22cb5dbca8SGabor Juhos *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) 23cb5dbca8SGabor Juhos } 24cb5dbca8SGabor Juhos 25cb5dbca8SGabor Juhos . = ALIGN(4); 26cb5dbca8SGabor Juhos .data : { 27cb5dbca8SGabor Juhos *(.data*) 28cb5dbca8SGabor Juhos } 29cb5dbca8SGabor Juhos 30cb5dbca8SGabor Juhos . = ALIGN(4); 31cb5dbca8SGabor Juhos .sdata : { 32cb5dbca8SGabor Juhos *(.sdata*) 33cb5dbca8SGabor Juhos } 34cb5dbca8SGabor Juhos 35cb5dbca8SGabor Juhos . = ALIGN(4); 36cb5dbca8SGabor Juhos .u_boot_list : { 37ef123c52SAlbert ARIBAUD KEEP(*(SORT(.u_boot_list*))); 38cb5dbca8SGabor Juhos } 39cb5dbca8SGabor Juhos 40cb5dbca8SGabor Juhos . = ALIGN(4); 413420bf1cSDaniel Schwierzeck __image_copy_end = .; 42a0af08b9SPaul Burton __init_end = .; 433420bf1cSDaniel Schwierzeck 4496301464SDaniel Schwierzeck .data.reloc : { 45703ec9ddSPaul Burton __rel_start = .; 4696301464SDaniel Schwierzeck /* 4796301464SDaniel Schwierzeck * Space for relocation table 4896301464SDaniel Schwierzeck * This needs to be filled so that the 4996301464SDaniel Schwierzeck * mips-reloc tool can overwrite the content. 5096301464SDaniel Schwierzeck * An invalid value is left at the start of the 5196301464SDaniel Schwierzeck * section to abort relocation if the table 5296301464SDaniel Schwierzeck * has not been filled in. 5396301464SDaniel Schwierzeck */ 5496301464SDaniel Schwierzeck LONG(0xFFFFFFFF); 5596301464SDaniel Schwierzeck FILL(0); 5696301464SDaniel Schwierzeck . += CONFIG_MIPS_RELOCATION_TABLE_SIZE - 4; 57265072baSDaniel Schwierzeck } 58265072baSDaniel Schwierzeck 5996301464SDaniel Schwierzeck . = ALIGN(4); 6079fd7e64SDaniel Schwierzeck _end = .; 610ba8926eSGabor Juhos 62703ec9ddSPaul Burton .bss __rel_start (OVERLAY) : { 63a52852c5SDaniel Schwierzeck __bss_start = .; 64a52852c5SDaniel Schwierzeck *(.sbss.*) 65a52852c5SDaniel Schwierzeck *(.bss.*) 66a52852c5SDaniel Schwierzeck *(COMMON) 67a52852c5SDaniel Schwierzeck . = ALIGN(4); 68a52852c5SDaniel Schwierzeck __bss_end = .; 69cb5dbca8SGabor Juhos } 700ba8926eSGabor Juhos 71*2fdadc0fSDaniel Schwierzeck /* These mark the ABI of U-Boot for debuggers. */ 72*2fdadc0fSDaniel Schwierzeck .mdebug.abi32 : { 73*2fdadc0fSDaniel Schwierzeck KEEP(*(.mdebug.abi32)) 74*2fdadc0fSDaniel Schwierzeck } 75*2fdadc0fSDaniel Schwierzeck .mdebug.abi64 : { 76*2fdadc0fSDaniel Schwierzeck KEEP(*(.mdebug.abi64)) 7779fd7e64SDaniel Schwierzeck } 7879fd7e64SDaniel Schwierzeck 79*2fdadc0fSDaniel Schwierzeck /* This is the MIPS specific mdebug section. */ 80*2fdadc0fSDaniel Schwierzeck .mdebug : { *(.mdebug) } 8179fd7e64SDaniel Schwierzeck 82*2fdadc0fSDaniel Schwierzeck /* Stabs debugging sections. */ 83*2fdadc0fSDaniel Schwierzeck .stab 0 : { *(.stab) } 84*2fdadc0fSDaniel Schwierzeck .stabstr 0 : { *(.stabstr) } 85*2fdadc0fSDaniel Schwierzeck .stab.excl 0 : { *(.stab.excl) } 86*2fdadc0fSDaniel Schwierzeck .stab.exclstr 0 : { *(.stab.exclstr) } 87*2fdadc0fSDaniel Schwierzeck .stab.index 0 : { *(.stab.index) } 88*2fdadc0fSDaniel Schwierzeck .stab.indexstr 0 : { *(.stab.indexstr) } 89*2fdadc0fSDaniel Schwierzeck .comment 0 : { *(.comment) } 9079fd7e64SDaniel Schwierzeck 91*2fdadc0fSDaniel Schwierzeck /* 92*2fdadc0fSDaniel Schwierzeck * DWARF debug sections. 93*2fdadc0fSDaniel Schwierzeck * Symbols in the DWARF debugging sections are relative to 94*2fdadc0fSDaniel Schwierzeck * the beginning of the section so we begin them at 0. 95*2fdadc0fSDaniel Schwierzeck */ 96*2fdadc0fSDaniel Schwierzeck /* DWARF 1 */ 97*2fdadc0fSDaniel Schwierzeck .debug 0 : { *(.debug) } 98*2fdadc0fSDaniel Schwierzeck .line 0 : { *(.line) } 99*2fdadc0fSDaniel Schwierzeck /* GNU DWARF 1 extensions */ 100*2fdadc0fSDaniel Schwierzeck .debug_srcinfo 0 : { *(.debug_srcinfo) } 101*2fdadc0fSDaniel Schwierzeck .debug_sfnames 0 : { *(.debug_sfnames) } 102*2fdadc0fSDaniel Schwierzeck /* DWARF 1.1 and DWARF 2 */ 103*2fdadc0fSDaniel Schwierzeck .debug_aranges 0 : { *(.debug_aranges) } 104*2fdadc0fSDaniel Schwierzeck .debug_pubnames 0 : { *(.debug_pubnames) } 105*2fdadc0fSDaniel Schwierzeck /* DWARF 2 */ 106*2fdadc0fSDaniel Schwierzeck .debug_info 0 : { 107*2fdadc0fSDaniel Schwierzeck *(.debug_info 108*2fdadc0fSDaniel Schwierzeck .gnu.linkonce.wi.*) 10979fd7e64SDaniel Schwierzeck } 110*2fdadc0fSDaniel Schwierzeck .debug_abbrev 0 : { *(.debug_abbrev) } 111*2fdadc0fSDaniel Schwierzeck .debug_line 0 : { *(.debug_line) } 112*2fdadc0fSDaniel Schwierzeck .debug_frame 0 : { *(.debug_frame) } 113*2fdadc0fSDaniel Schwierzeck .debug_str 0 : { *(.debug_str) } 114*2fdadc0fSDaniel Schwierzeck .debug_loc 0 : { *(.debug_loc) } 115*2fdadc0fSDaniel Schwierzeck .debug_macinfo 0 : { *(.debug_macinfo) } 116*2fdadc0fSDaniel Schwierzeck .debug_pubtypes 0 : { *(.debug_pubtypes) } 117*2fdadc0fSDaniel Schwierzeck /* DWARF 3 */ 118*2fdadc0fSDaniel Schwierzeck .debug_ranges 0 : { *(.debug_ranges) } 119*2fdadc0fSDaniel Schwierzeck /* SGI/MIPS DWARF 2 extensions */ 120*2fdadc0fSDaniel Schwierzeck .debug_weaknames 0 : { *(.debug_weaknames) } 121*2fdadc0fSDaniel Schwierzeck .debug_funcnames 0 : { *(.debug_funcnames) } 122*2fdadc0fSDaniel Schwierzeck .debug_typenames 0 : { *(.debug_typenames) } 123*2fdadc0fSDaniel Schwierzeck .debug_varnames 0 : { *(.debug_varnames) } 124*2fdadc0fSDaniel Schwierzeck /* GNU DWARF 2 extensions */ 125*2fdadc0fSDaniel Schwierzeck .debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) } 126*2fdadc0fSDaniel Schwierzeck .debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) } 127*2fdadc0fSDaniel Schwierzeck /* DWARF 4 */ 128*2fdadc0fSDaniel Schwierzeck .debug_types 0 : { *(.debug_types) } 129*2fdadc0fSDaniel Schwierzeck /* DWARF 5 */ 130*2fdadc0fSDaniel Schwierzeck .debug_macro 0 : { *(.debug_macro) } 131*2fdadc0fSDaniel Schwierzeck .debug_addr 0 : { *(.debug_addr) } 13279fd7e64SDaniel Schwierzeck 133*2fdadc0fSDaniel Schwierzeck /DISCARD/ : { 134*2fdadc0fSDaniel Schwierzeck /* ABI crap starts here */ 135*2fdadc0fSDaniel Schwierzeck *(.MIPS.abiflags) 136*2fdadc0fSDaniel Schwierzeck *(.MIPS.options) 137*2fdadc0fSDaniel Schwierzeck *(.options) 138*2fdadc0fSDaniel Schwierzeck *(.pdr) 139*2fdadc0fSDaniel Schwierzeck *(.reginfo) 140*2fdadc0fSDaniel Schwierzeck *(.eh_frame) 1410ba8926eSGabor Juhos } 142cb5dbca8SGabor Juhos} 143