1*a47a12beSStefan Roese/* 2*a47a12beSStefan Roese * (C) Copyright 2006 3*a47a12beSStefan Roese * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4*a47a12beSStefan Roese * 5*a47a12beSStefan Roese * See file CREDITS for list of people who contributed to this 6*a47a12beSStefan Roese * project. 7*a47a12beSStefan Roese * 8*a47a12beSStefan Roese * This program is free software; you can redistribute it and/or 9*a47a12beSStefan Roese * modify it under the terms of the GNU General Public License as 10*a47a12beSStefan Roese * published by the Free Software Foundation; either version 2 of 11*a47a12beSStefan Roese * the License, or (at your option) any later version. 12*a47a12beSStefan Roese * 13*a47a12beSStefan Roese * This program is distributed in the hope that it will be useful, 14*a47a12beSStefan Roese * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*a47a12beSStefan Roese * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*a47a12beSStefan Roese * GNU General Public License for more details. 17*a47a12beSStefan Roese * 18*a47a12beSStefan Roese * You should have received a copy of the GNU General Public License 19*a47a12beSStefan Roese * along with this program; if not, write to the Free Software 20*a47a12beSStefan Roese * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21*a47a12beSStefan Roese * MA 02111-1307 USA 22*a47a12beSStefan Roese */ 23*a47a12beSStefan Roese 24*a47a12beSStefan RoeseOUTPUT_ARCH(powerpc) 25*a47a12beSStefan RoeseSECTIONS 26*a47a12beSStefan Roese{ 27*a47a12beSStefan Roese /* Read-only sections, merged into text segment: */ 28*a47a12beSStefan Roese . = + SIZEOF_HEADERS; 29*a47a12beSStefan Roese .interp : { *(.interp) } 30*a47a12beSStefan Roese .hash : { *(.hash) } 31*a47a12beSStefan Roese .dynsym : { *(.dynsym) } 32*a47a12beSStefan Roese .dynstr : { *(.dynstr) } 33*a47a12beSStefan Roese .rel.text : { *(.rel.text) } 34*a47a12beSStefan Roese .rela.text : { *(.rela.text) } 35*a47a12beSStefan Roese .rel.data : { *(.rel.data) } 36*a47a12beSStefan Roese .rela.data : { *(.rela.data) } 37*a47a12beSStefan Roese .rel.rodata : { *(.rel.rodata) } 38*a47a12beSStefan Roese .rela.rodata : { *(.rela.rodata) } 39*a47a12beSStefan Roese .rel.got : { *(.rel.got) } 40*a47a12beSStefan Roese .rela.got : { *(.rela.got) } 41*a47a12beSStefan Roese .rel.ctors : { *(.rel.ctors) } 42*a47a12beSStefan Roese .rela.ctors : { *(.rela.ctors) } 43*a47a12beSStefan Roese .rel.dtors : { *(.rel.dtors) } 44*a47a12beSStefan Roese .rela.dtors : { *(.rela.dtors) } 45*a47a12beSStefan Roese .rel.bss : { *(.rel.bss) } 46*a47a12beSStefan Roese .rela.bss : { *(.rela.bss) } 47*a47a12beSStefan Roese .rel.plt : { *(.rel.plt) } 48*a47a12beSStefan Roese .rela.plt : { *(.rela.plt) } 49*a47a12beSStefan Roese .init : { *(.init) } 50*a47a12beSStefan Roese .plt : { *(.plt) } 51*a47a12beSStefan Roese .text : 52*a47a12beSStefan Roese { 53*a47a12beSStefan Roese arch/powerpc/cpu/mpc83xx/start.o (.text) 54*a47a12beSStefan Roese *(.text) 55*a47a12beSStefan Roese *(.got1) 56*a47a12beSStefan Roese . = ALIGN(16); 57*a47a12beSStefan Roese *(.eh_frame) 58*a47a12beSStefan Roese *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) 59*a47a12beSStefan Roese } 60*a47a12beSStefan Roese .fini : { *(.fini) } =0 61*a47a12beSStefan Roese .ctors : { *(.ctors) } 62*a47a12beSStefan Roese .dtors : { *(.dtors) } 63*a47a12beSStefan Roese 64*a47a12beSStefan Roese /* Read-write section, merged into data segment: */ 65*a47a12beSStefan Roese . = (. + 0x0FFF) & 0xFFFFF000; 66*a47a12beSStefan Roese _erotext = .; 67*a47a12beSStefan Roese PROVIDE (erotext = .); 68*a47a12beSStefan Roese .reloc : 69*a47a12beSStefan Roese { 70*a47a12beSStefan Roese *(.got) 71*a47a12beSStefan Roese _GOT2_TABLE_ = .; 72*a47a12beSStefan Roese *(.got2) 73*a47a12beSStefan Roese _FIXUP_TABLE_ = .; 74*a47a12beSStefan Roese *(.fixup) 75*a47a12beSStefan Roese } 76*a47a12beSStefan Roese __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2; 77*a47a12beSStefan Roese __fixup_entries = (. - _FIXUP_TABLE_) >> 2; 78*a47a12beSStefan Roese 79*a47a12beSStefan Roese .data : 80*a47a12beSStefan Roese { 81*a47a12beSStefan Roese *(.data) 82*a47a12beSStefan Roese *(.data1) 83*a47a12beSStefan Roese *(.sdata) 84*a47a12beSStefan Roese *(.sdata2) 85*a47a12beSStefan Roese *(.dynamic) 86*a47a12beSStefan Roese CONSTRUCTORS 87*a47a12beSStefan Roese } 88*a47a12beSStefan Roese _edata = .; 89*a47a12beSStefan Roese PROVIDE (edata = .); 90*a47a12beSStefan Roese 91*a47a12beSStefan Roese . = .; 92*a47a12beSStefan Roese __u_boot_cmd_start = .; 93*a47a12beSStefan Roese .u_boot_cmd : { *(.u_boot_cmd) } 94*a47a12beSStefan Roese __u_boot_cmd_end = .; 95*a47a12beSStefan Roese 96*a47a12beSStefan Roese 97*a47a12beSStefan Roese . = .; 98*a47a12beSStefan Roese __start___ex_table = .; 99*a47a12beSStefan Roese __ex_table : { *(__ex_table) } 100*a47a12beSStefan Roese __stop___ex_table = .; 101*a47a12beSStefan Roese 102*a47a12beSStefan Roese . = ALIGN(4096); 103*a47a12beSStefan Roese __init_begin = .; 104*a47a12beSStefan Roese .text.init : { *(.text.init) } 105*a47a12beSStefan Roese .data.init : { *(.data.init) } 106*a47a12beSStefan Roese . = ALIGN(4096); 107*a47a12beSStefan Roese __init_end = .; 108*a47a12beSStefan Roese 109*a47a12beSStefan Roese __bss_start = .; 110*a47a12beSStefan Roese .bss (NOLOAD) : 111*a47a12beSStefan Roese { 112*a47a12beSStefan Roese *(.sbss) *(.scommon) 113*a47a12beSStefan Roese *(.dynbss) 114*a47a12beSStefan Roese *(.bss) 115*a47a12beSStefan Roese *(COMMON) 116*a47a12beSStefan Roese . = ALIGN(4); 117*a47a12beSStefan Roese } 118*a47a12beSStefan Roese _end = . ; 119*a47a12beSStefan Roese PROVIDE (end = .); 120*a47a12beSStefan Roese} 121*a47a12beSStefan RoeseENTRY(_start) 122