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#ifndef CONFIG_CMDLINE 16 /DISCARD/ : { *(.u_boot_list_2_cmd_*) } 17#endif 18 19 . = CONFIG_SPL_TEXT_BASE; /* Location of bootcode in flash */ 20 __text_start = .; 21 .text : { *(.text*); } 22 23 . = ALIGN(4); 24 25 . = ALIGN(4); 26 .u_boot_list : { 27 KEEP(*(SORT(.u_boot_list*))); 28 } 29 30 . = ALIGN(4); 31 .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } 32 33 . = ALIGN(4); 34 .data : { *(.data*) } 35 36 . = ALIGN(4); 37 __data_end = .; 38 __init_end = .; 39 40 _image_binary_end = .; 41 42 . = 0x120000; 43 .bss (OVERLAY) : { 44 __bss_start = .; 45 *(.bss*) 46 *(COM*) 47 . = ALIGN(4); 48 __bss_end = .; 49 } 50 __bss_size = __bss_end - __bss_start; 51 52 /DISCARD/ : { *(.dynstr*) } 53 /DISCARD/ : { *(.dynamic*) } 54 /DISCARD/ : { *(.plt*) } 55 /DISCARD/ : { *(.interp*) } 56 /DISCARD/ : { *(.gnu*) } 57 58#ifdef CONFIG_SPL_X86_16BIT_INIT 59 /* 60 * The following expressions place the 16-bit Real-Mode code and 61 * Reset Vector at the end of the Flash ROM 62 */ 63 . = START_16 - RESET_SEG_START; 64 .start16 : AT (START_16) { 65 KEEP(*(.start16)); 66 } 67 68 . = RESET_VEC_LOC - RESET_SEG_START; 69 .resetvec : AT (RESET_VEC_LOC) { 70 KEEP(*(.resetvec)); 71 } 72#endif 73 74} 75