blob: cb2356f731cf9102125e55922e975bce857277d7 [file] [log] [blame]
Vlad Lungu0764c162008-01-16 19:27:51 +02001/*
2 * (C) Copyright 2003
3 * Wolfgang Denk Engineering, <wd@denx.de>
4 *
5 * See file CREDITS for list of people who contributed to this
6 * project.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of
11 * the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 * MA 02111-1307 USA
22 */
23
24/*
25OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
26*/
Zhi-zhou Zhang32afad72012-10-16 15:02:08 +020027#if defined(CONFIG_64BIT)
28OUTPUT_FORMAT("elf64-tradbigmips", "elf64-tradbigmips", "elf64-tradlittlemips")
29#else
Xiangfu Liu40930312010-08-09 23:13:43 +080030OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
Zhi-zhou Zhang32afad72012-10-16 15:02:08 +020031#endif
Vlad Lungu0764c162008-01-16 19:27:51 +020032OUTPUT_ARCH(mips)
33ENTRY(_start)
34SECTIONS
35{
36 . = 0x00000000;
37
38 . = ALIGN(4);
39 .text :
40 {
Daniel Schwierzeck660da092011-04-15 17:16:44 +020041 *(.text*)
Vlad Lungu0764c162008-01-16 19:27:51 +020042 }
43
44 . = ALIGN(4);
Trent Piephof62fb992009-02-18 15:22:05 -080045 .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
Vlad Lungu0764c162008-01-16 19:27:51 +020046
47 . = ALIGN(4);
Daniel Schwierzeck660da092011-04-15 17:16:44 +020048 .data : { *(.data*) }
Vlad Lungu0764c162008-01-16 19:27:51 +020049
50 . = .;
51 _gp = ALIGN(16) +0x7ff0;
52
53 .got : {
54 __got_start = .;
55 *(.got)
56 __got_end = .;
57 }
58
59 . = ALIGN(4);
Daniel Schwierzeck660da092011-04-15 17:16:44 +020060 .sdata : { *(.sdata*) }
Vlad Lungu0764c162008-01-16 19:27:51 +020061
Marek Vasut55675142012-10-12 10:27:03 +000062 . = ALIGN(4);
63 .u_boot_list : {
64 #include <u-boot.lst>
65 }
66
Vlad Lungu0764c162008-01-16 19:27:51 +020067 uboot_end_data = .;
Zhi-zhou Zhang32afad72012-10-16 15:02:08 +020068#if defined(CONFIG_64BIT)
69 num_got_entries = (__got_end - __got_start) >> 3;
70#else
Vlad Lungu0764c162008-01-16 19:27:51 +020071 num_got_entries = (__got_end - __got_start) >> 2;
Zhi-zhou Zhang32afad72012-10-16 15:02:08 +020072#endif
Vlad Lungu0764c162008-01-16 19:27:51 +020073
74 . = ALIGN(4);
Daniel Schwierzeck660da092011-04-15 17:16:44 +020075 .sbss : { *(.sbss*) }
76 .bss : { *(.bss*) . = ALIGN(4); }
Vlad Lungu0764c162008-01-16 19:27:51 +020077 uboot_end = .;
78}