xref: /rk3399_rockchip-uboot/arch/arm/cpu/u-boot-spl.lds (revision f8a4826383860318d90079bf40402447d369ad87)
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