165cdd643SAlbert ARIBAUD/* 265cdd643SAlbert ARIBAUD * Copyright (c) 2004-2008 Texas Instruments 365cdd643SAlbert ARIBAUD * 465cdd643SAlbert ARIBAUD * (C) Copyright 2002 565cdd643SAlbert ARIBAUD * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de> 665cdd643SAlbert ARIBAUD * 71a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 865cdd643SAlbert ARIBAUD */ 965cdd643SAlbert ARIBAUD 1065cdd643SAlbert ARIBAUDOUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") 1165cdd643SAlbert ARIBAUDOUTPUT_ARCH(arm) 1265cdd643SAlbert ARIBAUDENTRY(_start) 1365cdd643SAlbert ARIBAUDSECTIONS 1465cdd643SAlbert ARIBAUD{ 1565cdd643SAlbert ARIBAUD . = 0x00000000; 1665cdd643SAlbert ARIBAUD 1765cdd643SAlbert ARIBAUD . = ALIGN(4); 1865cdd643SAlbert ARIBAUD .text : 1965cdd643SAlbert ARIBAUD { 2065cdd643SAlbert ARIBAUD __image_copy_start = .; 2141623c91SAlbert ARIBAUD *(.vectors) 2265cdd643SAlbert ARIBAUD CPUDIR/start.o (.text*) 2365cdd643SAlbert ARIBAUD *(.text*) 2465cdd643SAlbert ARIBAUD } 2565cdd643SAlbert ARIBAUD 2665cdd643SAlbert ARIBAUD . = ALIGN(4); 2765cdd643SAlbert ARIBAUD .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } 2865cdd643SAlbert ARIBAUD 2965cdd643SAlbert ARIBAUD . = ALIGN(4); 3065cdd643SAlbert ARIBAUD .data : { 3165cdd643SAlbert ARIBAUD *(.data*) 3265cdd643SAlbert ARIBAUD } 3365cdd643SAlbert ARIBAUD 3465cdd643SAlbert ARIBAUD . = ALIGN(4); 35f8fff9daSSimon Glass .u_boot_list : { 36*f8a48263STom Rini KEEP(*(SORT(.u_boot_list*))); 374eae498eSSimon Glass } 384eae498eSSimon Glass 39f8fff9daSSimon Glass . = ALIGN(4); 4065cdd643SAlbert ARIBAUD 4165cdd643SAlbert ARIBAUD __image_copy_end = .; 4265cdd643SAlbert ARIBAUD 4365cdd643SAlbert ARIBAUD .rel.dyn : { 4465cdd643SAlbert ARIBAUD __rel_dyn_start = .; 4565cdd643SAlbert ARIBAUD *(.rel*) 4665cdd643SAlbert ARIBAUD __rel_dyn_end = .; 4765cdd643SAlbert ARIBAUD } 4865cdd643SAlbert ARIBAUD 49d0b5d9daSAlbert ARIBAUD .end : 50d0b5d9daSAlbert ARIBAUD { 51d0b5d9daSAlbert ARIBAUD *(.__end) 52d0b5d9daSAlbert ARIBAUD } 53d0b5d9daSAlbert ARIBAUD 54d0b5d9daSAlbert ARIBAUD _image_binary_end = .; 5565cdd643SAlbert ARIBAUD 5665cdd643SAlbert ARIBAUD .bss __rel_dyn_start (OVERLAY) : { 5765cdd643SAlbert ARIBAUD __bss_start = .; 5865cdd643SAlbert ARIBAUD *(.bss*) 5965cdd643SAlbert ARIBAUD . = ALIGN(4); 600ce033d2STom Rini __bss_end = .; 6165cdd643SAlbert ARIBAUD } 62fa78e0a3SSimon Glass __bss_size = __bss_end - __bss_start; 63d0b5d9daSAlbert ARIBAUD .dynsym _image_binary_end : { *(.dynsym) } 6447ed5dd0SAlbert ARIBAUD .dynbss : { *(.dynbss) } 6547ed5dd0SAlbert ARIBAUD .dynstr : { *(.dynstr*) } 6647ed5dd0SAlbert ARIBAUD .dynamic : { *(.dynamic*) } 6747ed5dd0SAlbert ARIBAUD .hash : { *(.hash*) } 6847ed5dd0SAlbert ARIBAUD .plt : { *(.plt*) } 6947ed5dd0SAlbert ARIBAUD .interp : { *(.interp*) } 7047ed5dd0SAlbert ARIBAUD .gnu : { *(.gnu*) } 7147ed5dd0SAlbert ARIBAUD .ARM.exidx : { *(.ARM.exidx*) } 7265cdd643SAlbert ARIBAUD} 7365cdd643SAlbert ARIBAUD 746ebc3461SAlbert ARIBAUD#if defined(CONFIG_SPL_MAX_SIZE) 756ebc3461SAlbert ARIBAUDASSERT(__image_copy_end - __image_copy_start < (CONFIG_SPL_MAX_SIZE), \ 766ebc3461SAlbert ARIBAUD "SPL image too big"); 776ebc3461SAlbert ARIBAUD#endif 786ebc3461SAlbert ARIBAUD 796ebc3461SAlbert ARIBAUD#if defined(CONFIG_SPL_BSS_MAX_SIZE) 806ebc3461SAlbert ARIBAUDASSERT(__bss_end - __bss_start < (CONFIG_SPL_BSS_MAX_SIZE), \ 816ebc3461SAlbert ARIBAUD "SPL image BSS too big"); 826ebc3461SAlbert ARIBAUD#endif 836ebc3461SAlbert ARIBAUD 846ebc3461SAlbert ARIBAUD#if defined(CONFIG_SPL_MAX_FOOTPRINT) 856ebc3461SAlbert ARIBAUDASSERT(__bss_end - _start < (CONFIG_SPL_MAX_FOOTPRINT), \ 866ebc3461SAlbert ARIBAUD "SPL image plus BSS too big"); 8765cdd643SAlbert ARIBAUD#endif 88