blob: 121354bfebb098edded059775c5c5bd5ede304fa [file] [log] [blame]
Wolfgang Denk79362d32010-11-23 23:48:56 +01001/*
2 * (C) Copyright 2001-2007
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Wolfgang Denk79362d32010-11-23 23:48:56 +01006 */
7
8OUTPUT_ARCH(powerpc)
9/* Do we need any of these for elf?
10 __DYNAMIC = 0; */
11SECTIONS
12{
13 /* Read-only sections, merged into text segment: */
14 .text :
15 {
16 arch/powerpc/cpu/mpc824x/start.o (.text*)
17 lib/libgeneric.o (.text*)
18 net/libnet.o (.text*)
19 drivers/pci/libpci.o (.text*)
20 arch/powerpc/cpu/mpc824x/libmpc824x.o (.text*)
21 board/mvblue/libmvblue.o (.text*)
22 arch/powerpc/lib/libpowerpc.o (.text*)
23
24 . = DEFINED(env_offset) ? env_offset : .;
25 common/env_embedded.o (.ppcenv*)
26
27 *(.text*)
28 . = ALIGN(16);
29 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
30 }
31
32 /* Read-write section, merged into data segment: */
33 . = (. + 0x0FFF) & 0xFFFFF000;
34 _erotext = .;
35 PROVIDE (erotext = .);
36 .reloc :
37 {
Wolfgang Denk79362d32010-11-23 23:48:56 +010038 _GOT2_TABLE_ = .;
39 KEEP(*(.got2))
Joakim Tjernlunda65f8c82011-04-20 14:22:59 +020040 KEEP(*(.got))
41 PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4);
Wolfgang Denk79362d32010-11-23 23:48:56 +010042 _FIXUP_TABLE_ = .;
43 KEEP(*(.fixup))
44 }
Joakim Tjernlunda65f8c82011-04-20 14:22:59 +020045 __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
Wolfgang Denk79362d32010-11-23 23:48:56 +010046 __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
47
48 .data :
49 {
50 *(.data*)
51 *(.sdata*)
52 }
53 _edata = .;
54 PROVIDE (edata = .);
55
56 . = .;
Wolfgang Denk79362d32010-11-23 23:48:56 +010057
Marek Vasut607092a2012-10-12 10:27:03 +000058 . = ALIGN(4);
59 .u_boot_list : {
Albert ARIBAUDc24895e2013-02-25 00:59:00 +000060 KEEP(*(SORT(.u_boot_list*)));
Marek Vasut607092a2012-10-12 10:27:03 +000061 }
62
Wolfgang Denk79362d32010-11-23 23:48:56 +010063
64 . = .;
65 __start___ex_table = .;
66 __ex_table : { *(__ex_table) }
67 __stop___ex_table = .;
68
69 . = ALIGN(4096);
70 __init_begin = .;
71 .text.init : { *(.text.init) }
72 .data.init : { *(.data.init) }
73 . = ALIGN(4096);
74 __init_end = .;
75
76 __bss_start = .;
77 .bss (NOLOAD) :
78 {
79 *(.bss*)
80 *(.sbss*)
81 *(COMMON)
82 . = ALIGN(4);
83 }
Simon Glassed70c8f2013-03-14 06:54:53 +000084 __bss_end = . ;
Wolfgang Denk79362d32010-11-23 23:48:56 +010085 PROVIDE (end = .);
86}