blob: cbb17d1aeeb2b000b31802d2749f7fc891d1c2d8 [file] [log] [blame]
Wolfgang Denk62f1ef52006-03-12 23:17:31 +01001/*
Wolfgang Denke71d99d2010-11-20 15:07:45 +01002 * (C) Copyright 2001-2010
Wolfgang Denk62f1ef52006-03-12 23:17:31 +01003 * 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+
Wolfgang Denk62f1ef52006-03-12 23:17:31 +01008 */
9
10OUTPUT_ARCH(powerpc)
11SECTIONS
12{
13 /* Read-only sections, merged into text segment: */
14 . = + SIZEOF_HEADERS;
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010015 .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*)
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010020 . = ALIGN(16);
Trent Piepho4438e5e2009-02-18 15:22:05 -080021 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010022 }
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010023
24 /* Read-write section, merged into data segment: */
25 . = (. + 0x0FFF) & 0xFFFFF000;
26 _erotext = .;
27 PROVIDE (erotext = .);
28 .reloc :
29 {
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010030 _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);
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010034 _FIXUP_TABLE_ = .;
Wolfgang Denke71d99d2010-11-20 15:07:45 +010035 KEEP(*(.fixup))
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010036 }
37 __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
38 __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
39
40 .data :
41 {
Wolfgang Denke71d99d2010-11-20 15:07:45 +010042 *(.data*)
43 *(.sdata*)
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010044 }
45 _edata = .;
46 PROVIDE (edata = .);
47
Wolfgang Denk12caaa92009-06-04 00:31:07 +020048 . = .;
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010049
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
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010055
Wolfgang Denk12caaa92009-06-04 00:31:07 +020056 . = .;
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010057 __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) :
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010070 {
Wolfgang Denke71d99d2010-11-20 15:07:45 +010071 *(.bss*)
72 *(.sbss*)
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010073 *(COMMON)
Selvamuthukumard2454ba2008-10-16 22:54:03 +053074 . = ALIGN(4);
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010075 }
Simon Glassed70c8f2013-03-14 06:54:53 +000076 __bss_end = . ;
Wolfgang Denk62f1ef52006-03-12 23:17:31 +010077 PROVIDE (end = .);
78}
79ENTRY(_start)