blob: 74f63552297c068f07fb4d4b1c275f78bc882648 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Bo Shenc56e9f42015-03-27 14:23:34 +08002/*
3 * Copyright (C) 2015 Atmel Corporation
4 * Bo Shen <voice.shen@atmel.com>
Bo Shenc56e9f42015-03-27 14:23:34 +08005 */
6
Tom Rini2aaa27d2019-01-22 17:09:26 -05007MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE, \
8 LENGTH = IMAGE_MAX_SIZE }
Bo Shenc56e9f42015-03-27 14:23:34 +08009MEMORY { .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);
Tom Rini0ed608e2016-03-15 17:56:29 -040032 .u_boot_list : { KEEP(*(SORT(.u_boot_list*))) } > .sram
33
34 . = ALIGN(4);
Bo Shenc56e9f42015-03-27 14:23:34 +080035 __image_copy_end = .;
36
37 .end :
38 {
39 *(.__end)
40 } >.sram
41
Stefan Roese9e350862019-04-02 10:57:22 +020042 _image_binary_end = .;
43
Bo Shenc56e9f42015-03-27 14:23:34 +080044 .bss :
45 {
46 . = ALIGN(4);
47 __bss_start = .;
48 *(.bss*)
49 . = ALIGN(4);
50 __bss_end = .;
51 } >.sdram
52}
Eugen.Hristev@microchip.com40ef5122018-11-28 09:33:43 +000053
Tom Rini2aaa27d2019-01-22 17:09:26 -050054#if defined(IMAGE_MAX_SIZE)
Simon Goldschmidta76a4582019-04-25 21:22:39 +020055ASSERT(__image_copy_end - __start <= (IMAGE_MAX_SIZE), \
Eugen.Hristev@microchip.com40ef5122018-11-28 09:33:43 +000056 "SPL image too big");
57#endif
58
59#if defined(CONFIG_SPL_BSS_MAX_SIZE)
Simon Goldschmidta76a4582019-04-25 21:22:39 +020060ASSERT(__bss_end - __bss_start <= (CONFIG_SPL_BSS_MAX_SIZE), \
Eugen.Hristev@microchip.com40ef5122018-11-28 09:33:43 +000061 "SPL image BSS too big");
62#endif