xref: /rk3399_rockchip-uboot/arch/x86/cpu/u-boot.lds (revision 65e4c0b168651285adeab66f32f3a14668f3e4bd)
1fea25720SGraeme Russ/*
2fea25720SGraeme Russ * (C) Copyright 2002
3fa82f871SAlbert ARIBAUD * Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
4fea25720SGraeme Russ *
51a459660SWolfgang Denk * SPDX-License-Identifier:	GPL-2.0+
6fea25720SGraeme Russ */
7fea25720SGraeme Russ
8fea25720SGraeme Russ#include <config.h>
9fea25720SGraeme RussOUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
10fea25720SGraeme RussOUTPUT_ARCH(i386)
11fea25720SGraeme RussENTRY(_start)
12fea25720SGraeme Russ
13fea25720SGraeme RussSECTIONS
14fea25720SGraeme Russ{
15c1352119SSimon Glass#ifndef CONFIG_CMDLINE
16c1352119SSimon Glass	/DISCARD/ : { *(.u_boot_list_2_cmd_*) }
17c1352119SSimon Glass#endif
18c1352119SSimon Glass
19fea25720SGraeme Russ	. = CONFIG_SYS_TEXT_BASE;	/* Location of bootcode in flash */
20fea25720SGraeme Russ	__text_start = .;
21fea25720SGraeme Russ	.text  : { *(.text*); }
22fea25720SGraeme Russ
23fea25720SGraeme Russ	. = ALIGN(4);
24fea25720SGraeme Russ
25fea25720SGraeme Russ	. = ALIGN(4);
2655675142SMarek Vasut	.u_boot_list : {
27ef123c52SAlbert ARIBAUD		KEEP(*(SORT(.u_boot_list*)));
2855675142SMarek Vasut	}
2955675142SMarek Vasut
3055675142SMarek Vasut	. = ALIGN(4);
31*65e4c0b1SSimon Glass	.rodata : {
32*65e4c0b1SSimon Glass		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
33*65e4c0b1SSimon Glass		KEEP(*(.rodata.efi.init));
34*65e4c0b1SSimon Glass	}
35fea25720SGraeme Russ
36fea25720SGraeme Russ	. = ALIGN(4);
37fea25720SGraeme Russ	.data : { *(.data*) }
38fea25720SGraeme Russ
39fea25720SGraeme Russ	. = ALIGN(4);
40fea25720SGraeme Russ	.hash : { *(.hash*) }
41fea25720SGraeme Russ
42fea25720SGraeme Russ	. = ALIGN(4);
43fea25720SGraeme Russ	.got : { *(.got*) }
44fea25720SGraeme Russ
45fea25720SGraeme Russ	. = ALIGN(4);
46*65e4c0b1SSimon Glass
47*65e4c0b1SSimon Glass	.__efi_runtime_start : {
48*65e4c0b1SSimon Glass		*(.__efi_runtime_start)
49*65e4c0b1SSimon Glass	}
50*65e4c0b1SSimon Glass
51*65e4c0b1SSimon Glass	.efi_runtime : {
52*65e4c0b1SSimon Glass		*(efi_runtime_text)
53*65e4c0b1SSimon Glass		*(efi_runtime_data)
54*65e4c0b1SSimon Glass	}
55*65e4c0b1SSimon Glass
56*65e4c0b1SSimon Glass	.__efi_runtime_stop : {
57*65e4c0b1SSimon Glass		*(.__efi_runtime_stop)
58*65e4c0b1SSimon Glass	}
59*65e4c0b1SSimon Glass
60*65e4c0b1SSimon Glass	.efi_runtime_rel_start :
61*65e4c0b1SSimon Glass	{
62*65e4c0b1SSimon Glass		*(.__efi_runtime_rel_start)
63*65e4c0b1SSimon Glass	}
64*65e4c0b1SSimon Glass
65*65e4c0b1SSimon Glass	.efi_runtime_rel : {
66*65e4c0b1SSimon Glass		*(.relefi_runtime_text)
67*65e4c0b1SSimon Glass		*(.relefi_runtime_data)
68*65e4c0b1SSimon Glass	}
69*65e4c0b1SSimon Glass
70*65e4c0b1SSimon Glass	.efi_runtime_rel_stop :
71*65e4c0b1SSimon Glass	{
72*65e4c0b1SSimon Glass		*(.__efi_runtime_rel_stop)
73*65e4c0b1SSimon Glass	}
74*65e4c0b1SSimon Glass
75*65e4c0b1SSimon Glass	. = ALIGN(4);
76*65e4c0b1SSimon Glass
77fea25720SGraeme Russ	__data_end = .;
7886cfb6bdSSimon Glass	__init_end = .;
79fea25720SGraeme Russ
80fea25720SGraeme Russ	. = ALIGN(4);
81f82d15eaSSimon Glass	.dynsym : { *(.dynsym*) }
82fea25720SGraeme Russ
83fea25720SGraeme Russ	. = ALIGN(4);
84fea25720SGraeme Russ	__rel_dyn_start = .;
85091c4943SSimon Glass	.rel.dyn : {
86091c4943SSimon Glass		*(.rel*)
87091c4943SSimon Glass	}
88fea25720SGraeme Russ	__rel_dyn_end = .;
894b491b8dSSimon Glass	. = ALIGN(4);
904b491b8dSSimon Glass	_end = .;
91fea25720SGraeme Russ
92f82d15eaSSimon Glass	.bss __rel_dyn_start (OVERLAY) : {
93f82d15eaSSimon Glass		__bss_start = .;
94f82d15eaSSimon Glass		*(.bss)
95f82d15eaSSimon Glass		*(COM*)
96f82d15eaSSimon Glass		. = ALIGN(4);
97f82d15eaSSimon Glass		__bss_end = .;
98f82d15eaSSimon Glass	}
99f82d15eaSSimon Glass
100fea25720SGraeme Russ	/DISCARD/ : { *(.dynstr*) }
101fea25720SGraeme Russ	/DISCARD/ : { *(.dynamic*) }
102fea25720SGraeme Russ	/DISCARD/ : { *(.plt*) }
103fea25720SGraeme Russ	/DISCARD/ : { *(.interp*) }
104fea25720SGraeme Russ	/DISCARD/ : { *(.gnu*) }
105fea25720SGraeme Russ
106588a13f7SSimon Glass#ifdef CONFIG_X86_RESET_VECTOR
107fea25720SGraeme Russ	/*
108fea25720SGraeme Russ	 * The following expressions place the 16-bit Real-Mode code and
109fea25720SGraeme Russ	 * Reset Vector at the end of the Flash ROM
110fea25720SGraeme Russ	 */
111a6a95784SSimon Glass	. = START_16 - RESET_SEG_START;
112a6a95784SSimon Glass	.start16 : AT (START_16) {
113a6a95784SSimon Glass		KEEP(*(.start16));
114a6a95784SSimon Glass	}
115fea25720SGraeme Russ
116a6a95784SSimon Glass	. = RESET_VEC_LOC - RESET_SEG_START;
117a6a95784SSimon Glass	.resetvec : AT (RESET_VEC_LOC) {
118a6a95784SSimon Glass		KEEP(*(.resetvec));
119a6a95784SSimon Glass	}
120b16f521aSGabe Black#endif
121a6a95784SSimon Glass
122fea25720SGraeme Russ}
123