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> 9OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") 10OUTPUT_ARCH(i386) 11ENTRY(_start) 12 13SECTIONS 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} 79