blob: 38567d1c6e723d4f68ea61cb6d99832920503288 [file] [log] [blame]
wdenk9f664dd2004-06-09 21:50:45 +00001/*
2 * (C) Copyright 2001-2003
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
5 * Modified by Yuli Barcohen <yuli@arabellasw.com>
6 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02007 * SPDX-License-Identifier: GPL-2.0+
wdenk9f664dd2004-06-09 21:50:45 +00008 */
9
10OUTPUT_ARCH(powerpc)
11SECTIONS
12{
13 /* Read-only sections, merged into text segment: */
14 . = + SIZEOF_HEADERS;
wdenk9f664dd2004-06-09 21:50:45 +000015 .text :
16 {
Wolfgang Denke71d99d2010-11-20 15:07:45 +010017 arch/powerpc/cpu/mpc8xx/start.o (.text*)
18 arch/powerpc/cpu/mpc8xx/traps.o (.text*)
19 *(.text*)
wdenk9f664dd2004-06-09 21:50:45 +000020 . = ALIGN(16);
Trent Piepho4438e5e2009-02-18 15:22:05 -080021 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
wdenk9f664dd2004-06-09 21:50:45 +000022 }
wdenk9f664dd2004-06-09 21:50:45 +000023
24 /* Read-write section, merged into data segment: */
25 . = (. + 0x0FFF) & 0xFFFFF000;
26 _erotext = .;
27 PROVIDE (erotext = .);
28 .reloc :
29 {
wdenk9f664dd2004-06-09 21:50:45 +000030 _GOT2_TABLE_ = .;
Wolfgang Denke71d99d2010-11-20 15:07:45 +010031 KEEP(*(.got2))
Joakim Tjernlunda65f8c82011-04-20 14:22:59 +020032 KEEP(*(.got))
33 PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4);
wdenk9f664dd2004-06-09 21:50:45 +000034 _FIXUP_TABLE_ = .;
Wolfgang Denke71d99d2010-11-20 15:07:45 +010035 KEEP(*(.fixup))
wdenk9f664dd2004-06-09 21:50:45 +000036 }
Joakim Tjernlunda65f8c82011-04-20 14:22:59 +020037 __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
wdenk9f664dd2004-06-09 21:50:45 +000038 __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
39
40 .data :
41 {
Wolfgang Denke71d99d2010-11-20 15:07:45 +010042 *(.data*)
43 *(.sdata*)
wdenk9f664dd2004-06-09 21:50:45 +000044 }
45 _edata = .;
46 PROVIDE (edata = .);
47
Wolfgang Denk5dd2c652005-08-31 12:28:00 +020048 . = .;
wdenk9f664dd2004-06-09 21:50:45 +000049
Marek Vasut607092a2012-10-12 10:27:03 +000050 . = ALIGN(4);
51 .u_boot_list : {
Albert ARIBAUDc24895e2013-02-25 00:59:00 +000052 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut607092a2012-10-12 10:27:03 +000053 }
54
wdenk9f664dd2004-06-09 21:50:45 +000055
Wolfgang Denk5dd2c652005-08-31 12:28:00 +020056 . = .;
wdenk9f664dd2004-06-09 21:50:45 +000057 __start___ex_table = .;
58 __ex_table : { *(__ex_table) }
59 __stop___ex_table = .;
60
61 . = ALIGN(4096);
62 __init_begin = .;
63 .text.init : { *(.text.init) }
64 .data.init : { *(.data.init) }
65 . = ALIGN(4096);
66 __init_end = .;
67
68 __bss_start = .;
Wolfgang Denk828a9782008-01-12 20:31:39 +010069 .bss (NOLOAD) :
wdenk9f664dd2004-06-09 21:50:45 +000070 {
Wolfgang Denke71d99d2010-11-20 15:07:45 +010071 *(.bss*)
72 *(.sbss*)
wdenk9f664dd2004-06-09 21:50:45 +000073 *(COMMON)
Selvamuthukumard2454ba2008-10-16 22:54:03 +053074 . = ALIGN(4);
wdenk9f664dd2004-06-09 21:50:45 +000075 }
Simon Glassed70c8f2013-03-14 06:54:53 +000076 __bss_end = . ;
wdenk9f664dd2004-06-09 21:50:45 +000077 PROVIDE (end = .);
78}
79ENTRY(_start)