• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>
8OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
9OUTPUT_ARCH(i386)
10ENTRY(_start)
11
12SECTIONS
13{
14#ifndef CONFIG_CMDLINE
15	/DISCARD/ : { *(.u_boot_list_2_cmd_*) }
16#endif
17
18	. = IMAGE_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 : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
31
32	. = ALIGN(4);
33	.data : { *(.data*) }
34
35	. = ALIGN(4);
36	__data_end = .;
37	__init_end = .;
38	. = ALIGN(4);
39	.binman_sym_table : {
40		__binman_sym_start = .;
41		KEEP(*(SORT(.binman_sym*)));
42		__binman_sym_end = .;
43	}
44
45        _image_binary_end = .;
46
47	. = 0x120000;
48	.bss (OVERLAY) : {
49		__bss_start = .;
50		*(.bss*)
51		*(COM*)
52		. = ALIGN(4);
53		__bss_end = .;
54	}
55	__bss_size = __bss_end - __bss_start;
56
57	/DISCARD/ : { *(.dynstr*) }
58	/DISCARD/ : { *(.dynamic*) }
59	/DISCARD/ : { *(.plt*) }
60	/DISCARD/ : { *(.interp*) }
61	/DISCARD/ : { *(.gnu*) }
62
63#if defined(CONFIG_SPL_X86_16BIT_INIT) || defined(CONFIG_TPL_X86_16BIT_INIT)
64	/*
65	 * The following expressions place the 16-bit Real-Mode code and
66	 * Reset Vector at the end of the Flash ROM
67	 */
68	. = START_16 - RESET_SEG_START;
69	.start16 : AT (START_16) {
70		KEEP(*(.start16));
71	}
72
73	. = RESET_VEC_LOC - RESET_SEG_START;
74	.resetvec : AT (RESET_VEC_LOC) {
75		KEEP(*(.resetvec));
76	}
77#endif
78
79}
80