1*6ce89324SYegor Yefremov/* 2*6ce89324SYegor Yefremov * Copyright (c) 2004-2008 Texas Instruments 3*6ce89324SYegor Yefremov * 4*6ce89324SYegor Yefremov * (C) Copyright 2002 5*6ce89324SYegor Yefremov * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de> 6*6ce89324SYegor Yefremov * 7*6ce89324SYegor Yefremov * See file CREDITS for list of people who contributed to this 8*6ce89324SYegor Yefremov * project. 9*6ce89324SYegor Yefremov * 10*6ce89324SYegor Yefremov * This program is free software; you can redistribute it and/or 11*6ce89324SYegor Yefremov * modify it under the terms of the GNU General Public License as 12*6ce89324SYegor Yefremov * published by the Free Software Foundation; either version 2 of 13*6ce89324SYegor Yefremov * the License, or (at your option) any later version. 14*6ce89324SYegor Yefremov * 15*6ce89324SYegor Yefremov * This program is distributed in the hope that it will be useful, 16*6ce89324SYegor Yefremov * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*6ce89324SYegor Yefremov * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*6ce89324SYegor Yefremov * GNU General Public License for more details. 19*6ce89324SYegor Yefremov * 20*6ce89324SYegor Yefremov * You should have received a copy of the GNU General Public License 21*6ce89324SYegor Yefremov * along with this program; if not, write to the Free Software 22*6ce89324SYegor Yefremov * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 23*6ce89324SYegor Yefremov * MA 02111-1307 USA 24*6ce89324SYegor Yefremov */ 25*6ce89324SYegor Yefremov 26*6ce89324SYegor YefremovOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") 27*6ce89324SYegor YefremovOUTPUT_ARCH(arm) 28*6ce89324SYegor YefremovENTRY(_start) 29*6ce89324SYegor YefremovSECTIONS 30*6ce89324SYegor Yefremov{ 31*6ce89324SYegor Yefremov . = 0x00000000; 32*6ce89324SYegor Yefremov 33*6ce89324SYegor Yefremov . = ALIGN(4); 34*6ce89324SYegor Yefremov .text : 35*6ce89324SYegor Yefremov { 36*6ce89324SYegor Yefremov *(.__image_copy_start) 37*6ce89324SYegor Yefremov *(.vectors) 38*6ce89324SYegor Yefremov CPUDIR/start.o (.text*) 39*6ce89324SYegor Yefremov board/vscom/baltos/built-in.o (.text*) 40*6ce89324SYegor Yefremov *(.text*) 41*6ce89324SYegor Yefremov } 42*6ce89324SYegor Yefremov 43*6ce89324SYegor Yefremov . = ALIGN(4); 44*6ce89324SYegor Yefremov .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } 45*6ce89324SYegor Yefremov 46*6ce89324SYegor Yefremov . = ALIGN(4); 47*6ce89324SYegor Yefremov .data : { 48*6ce89324SYegor Yefremov *(.data*) 49*6ce89324SYegor Yefremov } 50*6ce89324SYegor Yefremov 51*6ce89324SYegor Yefremov . = ALIGN(4); 52*6ce89324SYegor Yefremov 53*6ce89324SYegor Yefremov . = .; 54*6ce89324SYegor Yefremov 55*6ce89324SYegor Yefremov . = ALIGN(4); 56*6ce89324SYegor Yefremov .u_boot_list : { 57*6ce89324SYegor Yefremov KEEP(*(SORT(.u_boot_list*))); 58*6ce89324SYegor Yefremov } 59*6ce89324SYegor Yefremov 60*6ce89324SYegor Yefremov . = ALIGN(4); 61*6ce89324SYegor Yefremov 62*6ce89324SYegor Yefremov .image_copy_end : 63*6ce89324SYegor Yefremov { 64*6ce89324SYegor Yefremov *(.__image_copy_end) 65*6ce89324SYegor Yefremov } 66*6ce89324SYegor Yefremov 67*6ce89324SYegor Yefremov .rel_dyn_start : 68*6ce89324SYegor Yefremov { 69*6ce89324SYegor Yefremov *(.__rel_dyn_start) 70*6ce89324SYegor Yefremov } 71*6ce89324SYegor Yefremov 72*6ce89324SYegor Yefremov .rel.dyn : { 73*6ce89324SYegor Yefremov *(.rel*) 74*6ce89324SYegor Yefremov } 75*6ce89324SYegor Yefremov 76*6ce89324SYegor Yefremov .rel_dyn_end : 77*6ce89324SYegor Yefremov { 78*6ce89324SYegor Yefremov *(.__rel_dyn_end) 79*6ce89324SYegor Yefremov } 80*6ce89324SYegor Yefremov 81*6ce89324SYegor Yefremov .hash : { *(.hash*) } 82*6ce89324SYegor Yefremov 83*6ce89324SYegor Yefremov .end : 84*6ce89324SYegor Yefremov { 85*6ce89324SYegor Yefremov *(.__end) 86*6ce89324SYegor Yefremov } 87*6ce89324SYegor Yefremov 88*6ce89324SYegor Yefremov _image_binary_end = .; 89*6ce89324SYegor Yefremov 90*6ce89324SYegor Yefremov /* 91*6ce89324SYegor Yefremov * Deprecated: this MMU section is used by pxa at present but 92*6ce89324SYegor Yefremov * should not be used by new boards/CPUs. 93*6ce89324SYegor Yefremov */ 94*6ce89324SYegor Yefremov . = ALIGN(4096); 95*6ce89324SYegor Yefremov .mmutable : { 96*6ce89324SYegor Yefremov *(.mmutable) 97*6ce89324SYegor Yefremov } 98*6ce89324SYegor Yefremov 99*6ce89324SYegor Yefremov/* 100*6ce89324SYegor Yefremov * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c 101*6ce89324SYegor Yefremov * __bss_base and __bss_limit are for linker only (overlay ordering) 102*6ce89324SYegor Yefremov */ 103*6ce89324SYegor Yefremov 104*6ce89324SYegor Yefremov .bss_start __rel_dyn_start (OVERLAY) : { 105*6ce89324SYegor Yefremov KEEP(*(.__bss_start)); 106*6ce89324SYegor Yefremov __bss_base = .; 107*6ce89324SYegor Yefremov } 108*6ce89324SYegor Yefremov 109*6ce89324SYegor Yefremov .bss __bss_base (OVERLAY) : { 110*6ce89324SYegor Yefremov *(.bss*) 111*6ce89324SYegor Yefremov . = ALIGN(4); 112*6ce89324SYegor Yefremov __bss_limit = .; 113*6ce89324SYegor Yefremov } 114*6ce89324SYegor Yefremov 115*6ce89324SYegor Yefremov .bss_end __bss_limit (OVERLAY) : { 116*6ce89324SYegor Yefremov KEEP(*(.__bss_end)); 117*6ce89324SYegor Yefremov } 118*6ce89324SYegor Yefremov 119*6ce89324SYegor Yefremov .dynsym _image_binary_end : { *(.dynsym) } 120*6ce89324SYegor Yefremov .dynbss : { *(.dynbss) } 121*6ce89324SYegor Yefremov .dynstr : { *(.dynstr*) } 122*6ce89324SYegor Yefremov .dynamic : { *(.dynamic*) } 123*6ce89324SYegor Yefremov .gnu.hash : { *(.gnu.hash) } 124*6ce89324SYegor Yefremov .plt : { *(.plt*) } 125*6ce89324SYegor Yefremov .interp : { *(.interp*) } 126*6ce89324SYegor Yefremov .gnu : { *(.gnu*) } 127*6ce89324SYegor Yefremov .ARM.exidx : { *(.ARM.exidx*) } 128*6ce89324SYegor Yefremov} 129