blob: b8fb3705df6a7c53819eb0f8e617cbe0894f48fc [file] [log] [blame]
wdenk2f54faa2002-08-14 10:07:21 +00001/*
2 * (C) Copyright 2000
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
wdenk2f54faa2002-08-14 10:07:21 +00006 */
7
8OUTPUT_ARCH(powerpc)
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +01009
wdenk2f54faa2002-08-14 10:07:21 +000010SECTIONS
11{
12 .resetvec 0xFFFFFFFC :
13 {
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010014 KEEP(*(.resetvec))
wdenk2f54faa2002-08-14 10:07:21 +000015 } = 0xffff
16
17 /* Read-only sections, merged into text segment: */
18 . = + SIZEOF_HEADERS;
wdenk2f54faa2002-08-14 10:07:21 +000019 .text :
20 {
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010021 arch/powerpc/cpu/ppc4xx/start.o (.text)
wdenk2f54faa2002-08-14 10:07:21 +000022
23 . = env_offset;
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010024 common/env_embedded.o (.text*)
wdenk2f54faa2002-08-14 10:07:21 +000025
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010026 *(.text*)
wdenk2f54faa2002-08-14 10:07:21 +000027 }
28 _etext = .;
29 PROVIDE (etext = .);
30 .rodata :
31 {
Trent Piepho4438e5e2009-02-18 15:22:05 -080032 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
wdenk2f54faa2002-08-14 10:07:21 +000033 }
wdenk2f54faa2002-08-14 10:07:21 +000034
35 /* Read-write section, merged into data segment: */
36 . = (. + 0x0FFF) & 0xFFFFF000;
37 _erotext = .;
38 PROVIDE (erotext = .);
39 .reloc :
40 {
wdenk2f54faa2002-08-14 10:07:21 +000041 _GOT2_TABLE_ = .;
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010042 KEEP(*(.got2))
Joakim Tjernlunda65f8c82011-04-20 14:22:59 +020043 KEEP(*(.got))
44 PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4);
wdenk2f54faa2002-08-14 10:07:21 +000045 _FIXUP_TABLE_ = .;
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010046 KEEP(*(.fixup))
wdenk2f54faa2002-08-14 10:07:21 +000047 }
Joakim Tjernlunda65f8c82011-04-20 14:22:59 +020048 __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
wdenk2f54faa2002-08-14 10:07:21 +000049 __fixup_entries = (. - _FIXUP_TABLE_)>>2;
50
51 .data :
52 {
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010053 *(.data*)
54 *(.sdata*)
wdenk2f54faa2002-08-14 10:07:21 +000055 }
56 _edata = .;
57 PROVIDE (edata = .);
58
Wolfgang Denk5dd2c652005-08-31 12:28:00 +020059 . = .;
wdenk57b2d802003-06-27 21:31:46 +000060
Marek Vasut607092a2012-10-12 10:27:03 +000061 . = ALIGN(4);
62 .u_boot_list : {
Albert ARIBAUDc24895e2013-02-25 00:59:00 +000063 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut607092a2012-10-12 10:27:03 +000064 }
65
wdenk57b2d802003-06-27 21:31:46 +000066
Wolfgang Denk5dd2c652005-08-31 12:28:00 +020067 . = .;
wdenk2f54faa2002-08-14 10:07:21 +000068 __start___ex_table = .;
69 __ex_table : { *(__ex_table) }
70 __stop___ex_table = .;
71
72 . = ALIGN(4096);
73 __init_begin = .;
74 .text.init : { *(.text.init) }
75 .data.init : { *(.data.init) }
76 . = ALIGN(4096);
77 __init_end = .;
78
79 __bss_start = .;
Wolfgang Denk828a9782008-01-12 20:31:39 +010080 .bss (NOLOAD) :
wdenk2f54faa2002-08-14 10:07:21 +000081 {
Wolfgang Denkfe33e6e2010-11-21 20:55:42 +010082 *(.bss*)
83 *(.sbss*)
wdenk2f54faa2002-08-14 10:07:21 +000084 *(COMMON)
Selvamuthukumard2454ba2008-10-16 22:54:03 +053085 . = ALIGN(4);
wdenk2f54faa2002-08-14 10:07:21 +000086 }
Simon Glassed70c8f2013-03-14 06:54:53 +000087 __bss_end = . ;
wdenk2f54faa2002-08-14 10:07:21 +000088 PROVIDE (end = .);
89}