blob: cbb17d1aeeb2b000b31802d2749f7fc891d1c2d8 [file] [log] [blame]
Wolfgang Denk84c960c2006-03-12 23:17:31 +01001/*
Wolfgang Denkcd0402a2010-11-20 15:07:45 +01002 * (C) Copyright 2001-2010
Wolfgang Denk84c960c2006-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 Denk1a459662013-07-08 09:37:19 +02007 * SPDX-License-Identifier: GPL-2.0+
Wolfgang Denk84c960c2006-03-12 23:17:31 +01008 */
9
10OUTPUT_ARCH(powerpc)
11SECTIONS
12{
13 /* Read-only sections, merged into text segment: */
14 . = + SIZEOF_HEADERS;
Wolfgang Denk84c960c2006-03-12 23:17:31 +010015 .text :
16 {
Wolfgang Denkcd0402a2010-11-20 15:07:45 +010017 arch/powerpc/cpu/mpc8xx/start.o (.text*)
18 arch/powerpc/cpu/mpc8xx/traps.o (.text*)
19 *(.text*)
Wolfgang Denk84c960c2006-03-12 23:17:31 +010020 . = ALIGN(16);
Trent Piephof62fb992009-02-18 15:22:05 -080021 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
Wolfgang Denk84c960c2006-03-12 23:17:31 +010022 }
Wolfgang Denk84c960c2006-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 Denk84c960c2006-03-12 23:17:31 +010030 _GOT2_TABLE_ = .;
Wolfgang Denkcd0402a2010-11-20 15:07:45 +010031 KEEP(*(.got2))
Joakim Tjernlund9d8fbd12011-04-20 14:22:59 +020032 KEEP(*(.got))
33 PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4);
Wolfgang Denk84c960c2006-03-12 23:17:31 +010034 _FIXUP_TABLE_ = .;
Wolfgang Denkcd0402a2010-11-20 15:07:45 +010035 KEEP(*(.fixup))
Wolfgang Denk84c960c2006-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 Denkcd0402a2010-11-20 15:07:45 +010042 *(.data*)
43 *(.sdata*)
Wolfgang Denk84c960c2006-03-12 23:17:31 +010044 }
45 _edata = .;
46 PROVIDE (edata = .);
47
Wolfgang Denkde7cf702009-06-04 00:31:07 +020048 . = .;
Wolfgang Denk84c960c2006-03-12 23:17:31 +010049
Marek Vasut55675142012-10-12 10:27:03 +000050 . = ALIGN(4);
51 .u_boot_list : {
Albert ARIBAUDef123c52013-02-25 00:59:00 +000052 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut55675142012-10-12 10:27:03 +000053 }
54
Wolfgang Denk84c960c2006-03-12 23:17:31 +010055
Wolfgang Denkde7cf702009-06-04 00:31:07 +020056 . = .;
Wolfgang Denk84c960c2006-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 Denk64134f02008-01-12 20:31:39 +010069 .bss (NOLOAD) :
Wolfgang Denk84c960c2006-03-12 23:17:31 +010070 {
Wolfgang Denkcd0402a2010-11-20 15:07:45 +010071 *(.bss*)
72 *(.sbss*)
Wolfgang Denk84c960c2006-03-12 23:17:31 +010073 *(COMMON)
Selvamuthukumar9b827cf2008-10-16 22:54:03 +053074 . = ALIGN(4);
Wolfgang Denk84c960c2006-03-12 23:17:31 +010075 }
Simon Glass3929fb02013-03-14 06:54:53 +000076 __bss_end = . ;
Wolfgang Denk84c960c2006-03-12 23:17:31 +010077 PROVIDE (end = .);
78}
79ENTRY(_start)