xref: /rk3399_rockchip-uboot/arch/x86/cpu/u-boot.lds (revision 972188b3a88261969dad0c972b5b915999756d0b)
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);
3165e4c0b1SSimon Glass	.rodata : {
3265e4c0b1SSimon Glass		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
3365e4c0b1SSimon Glass		KEEP(*(.rodata.efi.init));
3465e4c0b1SSimon 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);
4665e4c0b1SSimon Glass
4765e4c0b1SSimon Glass	.__efi_runtime_start : {
4865e4c0b1SSimon Glass		*(.__efi_runtime_start)
4965e4c0b1SSimon Glass	}
5065e4c0b1SSimon Glass
5165e4c0b1SSimon Glass	.efi_runtime : {
5265e4c0b1SSimon Glass		*(efi_runtime_text)
5365e4c0b1SSimon Glass		*(efi_runtime_data)
5465e4c0b1SSimon Glass	}
5565e4c0b1SSimon Glass
5665e4c0b1SSimon Glass	.__efi_runtime_stop : {
5765e4c0b1SSimon Glass		*(.__efi_runtime_stop)
5865e4c0b1SSimon Glass	}
5965e4c0b1SSimon Glass
6065e4c0b1SSimon Glass	.efi_runtime_rel_start :
6165e4c0b1SSimon Glass	{
6265e4c0b1SSimon Glass		*(.__efi_runtime_rel_start)
6365e4c0b1SSimon Glass	}
6465e4c0b1SSimon Glass
6565e4c0b1SSimon Glass	.efi_runtime_rel : {
6665e4c0b1SSimon Glass		*(.relefi_runtime_text)
6765e4c0b1SSimon Glass		*(.relefi_runtime_data)
6865e4c0b1SSimon Glass	}
6965e4c0b1SSimon Glass
7065e4c0b1SSimon Glass	.efi_runtime_rel_stop :
7165e4c0b1SSimon Glass	{
7265e4c0b1SSimon Glass		*(.__efi_runtime_rel_stop)
7365e4c0b1SSimon Glass	}
7465e4c0b1SSimon Glass
7565e4c0b1SSimon Glass	. = ALIGN(4);
7665e4c0b1SSimon 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
106*972188b3SSimon Glass#ifdef CONFIG_X86_16BIT_INIT
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