1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright (C) 2015 Atmel Corporation
4 *		      Bo Shen <voice.shen@atmel.com>
5 */
6
7MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE, \
8		LENGTH = IMAGE_MAX_SIZE }
9MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
10		LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
11
12OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
13OUTPUT_ARCH(arm)
14ENTRY(_start)
15SECTIONS
16{
17	.text      :
18	{
19		__start = .;
20		*(.vectors)
21		arch/arm/cpu/arm926ejs/start.o	(.text*)
22		*(.text*)
23	} >.sram
24
25	. = ALIGN(4);
26	.rodata : { *(SORT_BY_ALIGNMENT(.rodata*)) } >.sram
27
28	. = ALIGN(4);
29	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
30
31	. = ALIGN(4);
32	__u_boot_list : { KEEP(*(SORT(__u_boot_list*))) } > .sram
33
34	. = ALIGN(4);
35	__image_copy_end = .;
36
37	.end :
38	{
39		*(.__end)
40	} >.sram
41
42	_image_binary_end = .;
43
44	.bss :
45	{
46		. = ALIGN(4);
47		__bss_start = .;
48		*(.bss*)
49		. = ALIGN(4);
50		__bss_end = .;
51	} >.sdram
52}
53
54#if defined(IMAGE_MAX_SIZE)
55ASSERT(__image_copy_end - __start <= (IMAGE_MAX_SIZE), \
56	"SPL image too big");
57#endif
58
59#if defined(CONFIG_SPL_BSS_MAX_SIZE)
60ASSERT(__bss_end - __bss_start <= (CONFIG_SPL_BSS_MAX_SIZE), \
61	"SPL image BSS too big");
62#endif
63