blob: ef08be8d53e2003247c86111e6c9d6e8df919872 [file] [log] [blame]
Stefan Roesec20ef322009-05-11 13:46:14 +02001/*
2 * (C) Copyright 2009
3 * Stefan Roese, DENX Software Engineering, sr@denx.de.
4 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Stefan Roesec20ef322009-05-11 13:46:14 +02006 */
7
8OUTPUT_ARCH(powerpc)
9SECTIONS
10{
11 /* Read-only sections, merged into text segment: */
12 . = + SIZEOF_HEADERS;
Stefan Roesec20ef322009-05-11 13:46:14 +020013 .text :
14 {
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010015 arch/powerpc/cpu/ppc4xx/start.o (.text*)
16 board/amcc/sequoia/init.o (.text*)
Stefan Roesec20ef322009-05-11 13:46:14 +020017
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010018 *(.text*)
Stefan Roesec20ef322009-05-11 13:46:14 +020019 }
20 _etext = .;
21 PROVIDE (etext = .);
22 .rodata :
23 {
24 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
25 }
Stefan Roesec20ef322009-05-11 13:46:14 +020026
27 /* Read-write section, merged into data segment: */
28 . = (. + 0x00FF) & 0xFFFFFF00;
29 _erotext = .;
30 PROVIDE (erotext = .);
31 .reloc :
32 {
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010033 KEEP(*(.got))
Stefan Roesec20ef322009-05-11 13:46:14 +020034 _GOT2_TABLE_ = .;
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010035 KEEP(*(.got2))
Stefan Roesec20ef322009-05-11 13:46:14 +020036 _FIXUP_TABLE_ = .;
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010037 KEEP(*(.fixup))
Stefan Roesec20ef322009-05-11 13:46:14 +020038 }
39 __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
40 __fixup_entries = (. - _FIXUP_TABLE_)>>2;
41
42 .data :
43 {
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010044 *(.data*)
45 *(.sdata*)
Stefan Roesec20ef322009-05-11 13:46:14 +020046 }
47 _edata = .;
48 PROVIDE (edata = .);
49
50 . = .;
Stefan Roesec20ef322009-05-11 13:46:14 +020051
Marek Vasut607092a2012-10-12 10:27:03 +000052 .u_boot_list : {
Albert ARIBAUDc24895e2013-02-25 00:59:00 +000053 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut607092a2012-10-12 10:27:03 +000054 }
Stefan Roesec20ef322009-05-11 13:46:14 +020055
56 . = .;
57 __start___ex_table = .;
58 __ex_table : { *(__ex_table) }
59 __stop___ex_table = .;
60
61 . = ALIGN(256);
62 __init_begin = .;
63 .text.init : { *(.text.init) }
64 .data.init : { *(.data.init) }
65 . = ALIGN(256);
66 __init_end = .;
67
68 __bss_start = .;
69 .bss (NOLOAD) :
70 {
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010071 *(.bss*)
72 *(.sbss*)
Stefan Roesec20ef322009-05-11 13:46:14 +020073 *(COMMON)
74 . = ALIGN(4);
75 }
76
Simon Glassed70c8f2013-03-14 06:54:53 +000077 __bss_end = . ;
Stefan Roesec20ef322009-05-11 13:46:14 +020078 PROVIDE (end = .);
79}