blob: 9a4ebcd151564cb740e466ab10bcb8d53d95e20f [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Gabor Juhoscb5dbca2013-01-30 04:31:52 +00002/*
3 * (C) Copyright 2003
4 * Wolfgang Denk Engineering, <wd@denx.de>
Gabor Juhoscb5dbca2013-01-30 04:31:52 +00005 */
6
Gabor Juhoscb5dbca2013-01-30 04:31:52 +00007OUTPUT_ARCH(mips)
8ENTRY(_start)
9SECTIONS
10{
11 . = 0x00000000;
12
13 . = ALIGN(4);
14 .text : {
Paul Burtond263cda2016-09-21 11:11:06 +010015 __text_start = .;
Gabor Juhoscb5dbca2013-01-30 04:31:52 +000016 *(.text*)
Paul Burtond263cda2016-09-21 11:11:06 +010017 __text_end = .;
Gabor Juhoscb5dbca2013-01-30 04:31:52 +000018 }
19
20 . = ALIGN(4);
21 .rodata : {
22 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
23 }
24
25 . = ALIGN(4);
26 .data : {
27 *(.data*)
28 }
29
Gabor Juhoscb5dbca2013-01-30 04:31:52 +000030 . = ALIGN(4);
31 .sdata : {
32 *(.sdata*)
33 }
34
35 . = ALIGN(4);
Andrew Scull99e2fbc2022-05-30 10:00:04 +000036 __u_boot_list : {
37 KEEP(*(SORT(__u_boot_list*)));
Gabor Juhoscb5dbca2013-01-30 04:31:52 +000038 }
39
Gabor Juhoscb5dbca2013-01-30 04:31:52 +000040 . = ALIGN(4);
Daniel Schwierzeck3420bf12013-02-12 22:22:12 +010041 __image_copy_end = .;
Paul Burtona0af08b2014-04-07 10:11:19 +010042 __init_end = .;
Daniel Schwierzeck3420bf12013-02-12 22:22:12 +010043
Daniel Schwierzeck96301462018-11-01 02:02:21 +010044 .data.reloc : {
Paul Burton703ec9d2017-06-19 11:53:47 -070045 __rel_start = .;
Daniel Schwierzeck96301462018-11-01 02:02:21 +010046 /*
47 * Space for relocation table
48 * This needs to be filled so that the
49 * mips-reloc tool can overwrite the content.
50 * An invalid value is left at the start of the
51 * section to abort relocation if the table
52 * has not been filled in.
53 */
54 LONG(0xFFFFFFFF);
55 FILL(0);
56 . += CONFIG_MIPS_RELOCATION_TABLE_SIZE - 4;
Daniel Schwierzeck265072b2014-10-29 17:30:36 +010057 }
58
Daniel Schwierzeck96301462018-11-01 02:02:21 +010059 . = ALIGN(4);
Daniel Schwierzeck79fd7e62013-10-11 17:46:59 +020060 _end = .;
Gabor Juhos0ba89262013-02-12 22:22:13 +010061
Paul Burton703ec9d2017-06-19 11:53:47 -070062 .bss __rel_start (OVERLAY) : {
Daniel Schwierzecka52852c2013-02-12 22:22:12 +010063 __bss_start = .;
64 *(.sbss.*)
65 *(.bss.*)
66 *(COMMON)
67 . = ALIGN(4);
68 __bss_end = .;
Gabor Juhoscb5dbca2013-01-30 04:31:52 +000069 }
Gabor Juhos0ba89262013-02-12 22:22:13 +010070
Daniel Schwierzeck2fdadc02019-01-06 20:42:43 +010071 /* These mark the ABI of U-Boot for debuggers. */
72 .mdebug.abi32 : {
73 KEEP(*(.mdebug.abi32))
74 }
75 .mdebug.abi64 : {
76 KEEP(*(.mdebug.abi64))
Daniel Schwierzeck79fd7e62013-10-11 17:46:59 +020077 }
78
Daniel Schwierzeck2fdadc02019-01-06 20:42:43 +010079 /* This is the MIPS specific mdebug section. */
80 .mdebug : { *(.mdebug) }
Daniel Schwierzeck79fd7e62013-10-11 17:46:59 +020081
Daniel Schwierzeck2fdadc02019-01-06 20:42:43 +010082 /* Stabs debugging sections. */
83 .stab 0 : { *(.stab) }
84 .stabstr 0 : { *(.stabstr) }
85 .stab.excl 0 : { *(.stab.excl) }
86 .stab.exclstr 0 : { *(.stab.exclstr) }
87 .stab.index 0 : { *(.stab.index) }
88 .stab.indexstr 0 : { *(.stab.indexstr) }
89 .comment 0 : { *(.comment) }
Daniel Schwierzeck79fd7e62013-10-11 17:46:59 +020090
Daniel Schwierzeck2fdadc02019-01-06 20:42:43 +010091 /*
92 * DWARF debug sections.
93 * Symbols in the DWARF debugging sections are relative to
94 * the beginning of the section so we begin them at 0.
95 */
96 /* DWARF 1 */
97 .debug 0 : { *(.debug) }
98 .line 0 : { *(.line) }
99 /* GNU DWARF 1 extensions */
100 .debug_srcinfo 0 : { *(.debug_srcinfo) }
101 .debug_sfnames 0 : { *(.debug_sfnames) }
102 /* DWARF 1.1 and DWARF 2 */
103 .debug_aranges 0 : { *(.debug_aranges) }
104 .debug_pubnames 0 : { *(.debug_pubnames) }
105 /* DWARF 2 */
106 .debug_info 0 : {
107 *(.debug_info
108 .gnu.linkonce.wi.*)
Daniel Schwierzeck79fd7e62013-10-11 17:46:59 +0200109 }
Daniel Schwierzeck2fdadc02019-01-06 20:42:43 +0100110 .debug_abbrev 0 : { *(.debug_abbrev) }
111 .debug_line 0 : { *(.debug_line) }
112 .debug_frame 0 : { *(.debug_frame) }
113 .debug_str 0 : { *(.debug_str) }
114 .debug_loc 0 : { *(.debug_loc) }
115 .debug_macinfo 0 : { *(.debug_macinfo) }
116 .debug_pubtypes 0 : { *(.debug_pubtypes) }
117 /* DWARF 3 */
118 .debug_ranges 0 : { *(.debug_ranges) }
119 /* SGI/MIPS DWARF 2 extensions */
120 .debug_weaknames 0 : { *(.debug_weaknames) }
121 .debug_funcnames 0 : { *(.debug_funcnames) }
122 .debug_typenames 0 : { *(.debug_typenames) }
123 .debug_varnames 0 : { *(.debug_varnames) }
124 /* GNU DWARF 2 extensions */
125 .debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
126 .debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
127 /* DWARF 4 */
128 .debug_types 0 : { *(.debug_types) }
129 /* DWARF 5 */
130 .debug_macro 0 : { *(.debug_macro) }
131 .debug_addr 0 : { *(.debug_addr) }
Daniel Schwierzeck79fd7e62013-10-11 17:46:59 +0200132
Daniel Schwierzeck2fdadc02019-01-06 20:42:43 +0100133 /DISCARD/ : {
134 /* ABI crap starts here */
135 *(.MIPS.abiflags)
136 *(.MIPS.options)
137 *(.options)
138 *(.pdr)
139 *(.reginfo)
140 *(.eh_frame)
Gabor Juhos0ba89262013-02-12 22:22:13 +0100141 }
Gabor Juhoscb5dbca2013-01-30 04:31:52 +0000142}