]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/x86/cpu/u-boot.lds
arm: vf610: improve evaluation of reset source
[karo-tx-uboot.git] / arch / x86 / cpu / u-boot.lds
1 /*
2  * (C) Copyright 2002
3  * Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #include <config.h>
9 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
10 OUTPUT_ARCH(i386)
11 ENTRY(_start)
12
13 SECTIONS
14 {
15         . = CONFIG_SYS_TEXT_BASE;       /* Location of bootcode in flash */
16         __text_start = .;
17         .text  : { *(.text*); }
18
19         . = ALIGN(4);
20
21         . = ALIGN(4);
22         .u_boot_list : {
23                 KEEP(*(SORT(.u_boot_list*)));
24         }
25
26         . = ALIGN(4);
27         .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
28
29         . = ALIGN(4);
30         .data : { *(.data*) }
31
32         . = ALIGN(4);
33         .hash : { *(.hash*) }
34
35         . = ALIGN(4);
36         .got : { *(.got*) }
37
38         . = ALIGN(4);
39         __data_end = .;
40         __init_end = .;
41
42         . = ALIGN(4);
43         .dynsym : { *(.dynsym*) }
44
45         . = ALIGN(4);
46         __rel_dyn_start = .;
47         .rel.dyn : { *(.rel.dyn) }
48         __rel_dyn_end = .;
49         . = ALIGN(4);
50         _end = .;
51
52         .bss __rel_dyn_start (OVERLAY) : {
53                 __bss_start = .;
54                 *(.bss)
55                 *(COM*)
56                 . = ALIGN(4);
57                 __bss_end = .;
58         }
59
60         /DISCARD/ : { *(.dynstr*) }
61         /DISCARD/ : { *(.dynamic*) }
62         /DISCARD/ : { *(.plt*) }
63         /DISCARD/ : { *(.interp*) }
64         /DISCARD/ : { *(.gnu*) }
65
66 #ifdef CONFIG_X86_RESET_VECTOR
67
68         /*
69          * The following expressions place the 16-bit Real-Mode code and
70          * Reset Vector at the end of the Flash ROM
71          */
72         . = START_16;
73         .start16 : AT (CONFIG_SYS_TEXT_BASE + (CONFIG_SYS_MONITOR_LEN - RESET_SEG_SIZE + START_16)) { KEEP(*(.start16)); }
74
75         . = RESET_VEC_LOC;
76         .resetvec : AT (CONFIG_SYS_TEXT_BASE + (CONFIG_SYS_MONITOR_LEN - RESET_SEG_SIZE + RESET_VEC_LOC)) { KEEP(*(.resetvec)); }
77 #endif
78 }