]> git.sur5r.net Git - u-boot/blob - arch/x86/cpu/u-boot.lds
Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[u-boot] / arch / x86 / cpu / u-boot.lds
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2002
4  * Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
5  */
6
7 #include <config.h>
8 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
9 OUTPUT_ARCH(i386)
10 ENTRY(_start)
11
12 SECTIONS
13 {
14 #ifndef CONFIG_CMDLINE
15         /DISCARD/ : { *(.u_boot_list_2_cmd_*) }
16 #endif
17
18         . = CONFIG_SYS_TEXT_BASE;       /* Location of bootcode in flash */
19         __text_start = .;
20         .text  : { *(.text*); }
21
22         . = ALIGN(4);
23
24         . = ALIGN(4);
25         .u_boot_list : {
26                 KEEP(*(SORT(.u_boot_list*)));
27         }
28
29         . = ALIGN(4);
30         .rodata : {
31                 *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
32                 KEEP(*(.rodata.efi.init));
33         }
34
35         . = ALIGN(4);
36         .data : { *(.data*) }
37
38         . = ALIGN(4);
39         .hash : { *(.hash*) }
40
41         . = ALIGN(4);
42         .got : { *(.got*) }
43
44         . = ALIGN(4);
45
46         .__efi_runtime_start : {
47                 *(.__efi_runtime_start)
48         }
49
50         .efi_runtime : {
51                 *(efi_runtime_text)
52                 *(efi_runtime_data)
53         }
54
55         .__efi_runtime_stop : {
56                 *(.__efi_runtime_stop)
57         }
58
59         .efi_runtime_rel_start :
60         {
61                 *(.__efi_runtime_rel_start)
62         }
63
64         .efi_runtime_rel : {
65                 *(.relefi_runtime_text)
66                 *(.relefi_runtime_data)
67         }
68
69         .efi_runtime_rel_stop :
70         {
71                 *(.__efi_runtime_rel_stop)
72         }
73
74         . = ALIGN(4);
75
76         __data_end = .;
77         __init_end = .;
78
79         . = ALIGN(4);
80         .dynsym : { *(.dynsym*) }
81
82         . = ALIGN(4);
83         __rel_dyn_start = .;
84         .rel.dyn : {
85                 *(.rel*)
86         }
87         __rel_dyn_end = .;
88         . = ALIGN(4);
89         _end = .;
90
91         .bss __rel_dyn_start (OVERLAY) : {
92                 __bss_start = .;
93                 *(.bss)
94                 *(COM*)
95                 . = ALIGN(4);
96                 __bss_end = .;
97         }
98
99         /DISCARD/ : { *(.dynstr*) }
100         /DISCARD/ : { *(.dynamic*) }
101         /DISCARD/ : { *(.plt*) }
102         /DISCARD/ : { *(.interp*) }
103         /DISCARD/ : { *(.gnu*) }
104
105 #ifdef CONFIG_X86_16BIT_INIT
106         /*
107          * The following expressions place the 16-bit Real-Mode code and
108          * Reset Vector at the end of the Flash ROM
109          */
110         . = START_16 - RESET_SEG_START;
111         .start16 : AT (START_16) {
112                 KEEP(*(.start16));
113         }
114
115         . = RESET_VEC_LOC - RESET_SEG_START;
116         .resetvec : AT (RESET_VEC_LOC) {
117                 KEEP(*(.resetvec));
118         }
119 #endif
120
121 }