blob: f933b219449411b2b68fc1ccb93ab8b2a310925a [file] [log] [blame]
Mingkai Hu7da53352009-09-11 14:19:10 +08001/*
Prabhakar Kushwaha5113ee72012-02-29 18:00:23 +00002 * Copyright 2009-2012 Freescale Semiconductor, Inc.
Mingkai Hu7da53352009-09-11 14:19:10 +08003 *
Wolfgang Denk1a459662013-07-08 09:37:19 +02004 * SPDX-License-Identifier: GPL-2.0+
Mingkai Hu7da53352009-09-11 14:19:10 +08005 */
6
Masahiro Yamada6f2ed0e2014-04-28 10:17:10 +09007#include "config.h"
Prabhakar Kushwaha0938b602014-03-31 15:31:34 +05308
9#ifndef CONFIG_SYS_MONITOR_LEN
10#define CONFIG_SYS_MONITOR_LEN 0x80000
11#endif
12
Mingkai Hu7da53352009-09-11 14:19:10 +080013OUTPUT_ARCH(powerpc)
14/* Do we need any of these for elf?
15 __DYNAMIC = 0; */
16PHDRS
17{
18 text PT_LOAD;
19 bss PT_LOAD;
20}
21
22SECTIONS
23{
24 /* Read-only sections, merged into text segment: */
25 . = + SIZEOF_HEADERS;
26 .interp : { *(.interp) }
Mingkai Hu7da53352009-09-11 14:19:10 +080027 .text :
28 {
Haiying Wang36ae6a82010-11-10 14:32:36 -050029 *(.text*)
Mingkai Hu7da53352009-09-11 14:19:10 +080030 } :text
31 _etext = .;
32 PROVIDE (etext = .);
33 .rodata :
34 {
Mingkai Hu7da53352009-09-11 14:19:10 +080035 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
36 } :text
Mingkai Hu7da53352009-09-11 14:19:10 +080037
38 /* Read-write section, merged into data segment: */
39 . = (. + 0x00FF) & 0xFFFFFF00;
40 _erotext = .;
41 PROVIDE (erotext = .);
42 .reloc :
43 {
Mingkai Hu7da53352009-09-11 14:19:10 +080044 _GOT2_TABLE_ = .;
Haiying Wang36ae6a82010-11-10 14:32:36 -050045 KEEP(*(.got2))
Scott Woodd2a97da2012-05-01 16:37:57 -050046 KEEP(*(.got))
47 PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4);
Mingkai Hu7da53352009-09-11 14:19:10 +080048 _FIXUP_TABLE_ = .;
Haiying Wang36ae6a82010-11-10 14:32:36 -050049 KEEP(*(.fixup))
Mingkai Hu7da53352009-09-11 14:19:10 +080050 }
Scott Woodd2a97da2012-05-01 16:37:57 -050051 __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
Mingkai Hu7da53352009-09-11 14:19:10 +080052 __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
53
54 .data :
55 {
Haiying Wang36ae6a82010-11-10 14:32:36 -050056 *(.data*)
57 *(.sdata*)
Mingkai Hu7da53352009-09-11 14:19:10 +080058 }
59 _edata = .;
60 PROVIDE (edata = .);
61
62 . = .;
Mingkai Hu7da53352009-09-11 14:19:10 +080063
Marek Vasut55675142012-10-12 10:27:03 +000064 .u_boot_list : {
Albert ARIBAUDef123c52013-02-25 00:59:00 +000065 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut55675142012-10-12 10:27:03 +000066 }
67
Mingkai Hu7da53352009-09-11 14:19:10 +080068 . = .;
69 __start___ex_table = .;
70 __ex_table : { *(__ex_table) }
71 __stop___ex_table = .;
72
73 . = ALIGN(256);
74 __init_begin = .;
75 .text.init : { *(.text.init) }
76 .data.init : { *(.data.init) }
77 . = ALIGN(256);
78 __init_end = .;
79
80 .bootpg ADDR(.text) - 0x1000 :
81 {
Prabhakar Kushwaha5113ee72012-02-29 18:00:23 +000082 KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootpg))
Mingkai Hu7da53352009-09-11 14:19:10 +080083 } :text = 0xffff
84
Prabhakar Kushwaha0938b602014-03-31 15:31:34 +053085 . = ADDR(.text) + CONFIG_SYS_MONITOR_LEN;
Mingkai Hu7da53352009-09-11 14:19:10 +080086
87 __bss_start = .;
88 .bss (NOLOAD) :
89 {
Haiying Wang36ae6a82010-11-10 14:32:36 -050090 *(.sbss*)
91 *(.bss*)
Mingkai Hu7da53352009-09-11 14:19:10 +080092 *(COMMON)
93 } :bss
94
95 . = ALIGN(4);
Simon Glass3929fb02013-03-14 06:54:53 +000096 __bss_end = . ;
Mingkai Hu7da53352009-09-11 14:19:10 +080097 PROVIDE (end = .);
98}