3 * David Feng <fenghua@phytium.com.cn>
6 * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
8 * SPDX-License-Identifier: GPL-2.0+
14 OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
19 #ifdef CONFIG_ARMV8_SECURE_BASE
20 /DISCARD/ : { *(.rela._secure*) }
27 *(.__image_copy_start)
28 CPUDIR/start.o (.text*)
32 #ifdef CONFIG_ARMV8_PSCI
34 #ifndef CONFIG_ARMV8_SECURE_BASE
35 ALIGN(CONSTANT(COMMONPAGESIZE))
38 KEEP(*(.__secure_start))
41 #ifndef CONFIG_ARMV8_SECURE_BASE
42 #define CONFIG_ARMV8_SECURE_BASE
43 #define __ARMV8_PSCI_STACK_IN_RAM
45 .secure_text CONFIG_ARMV8_SECURE_BASE :
46 AT(ADDR(.__secure_start) + SIZEOF(.__secure_start))
51 .secure_data : AT(LOADADDR(.secure_text) + SIZEOF(.secure_text))
56 .secure_stack ALIGN(ADDR(.secure_data) + SIZEOF(.secure_data),
57 CONSTANT(COMMONPAGESIZE)) (NOLOAD) :
58 #ifdef __ARMV8_PSCI_STACK_IN_RAM
59 AT(ADDR(.secure_stack))
61 AT(LOADADDR(.secure_data) + SIZEOF(.secure_data))
64 KEEP(*(.__secure_stack_start))
66 . = . + CONFIG_ARMV8_PSCI_NR_CPUS * ARM_PSCI_STACK_SIZE;
68 . = ALIGN(CONSTANT(COMMONPAGESIZE));
70 KEEP(*(.__secure_stack_end))
73 #ifndef __ARMV8_PSCI_STACK_IN_RAM
74 . = LOADADDR(.secure_stack);
77 .__secure_end : AT(ADDR(.__secure_end)) {
78 KEEP(*(.__secure_end))
79 LONG(0x1d1071c); /* Must output something to reset LMA */
84 .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
97 KEEP(*(SORT(.u_boot_list*)));
103 __efi_runtime_start = .;
106 __efi_runtime_stop = .;
110 __efi_runtime_rel_start = .;
111 *(.relaefi_runtime_text)
112 *(.relaefi_runtime_data)
113 __efi_runtime_rel_stop = .;
144 KEEP(*(.__bss_start));
156 /DISCARD/ : { *(.dynsym) }
157 /DISCARD/ : { *(.dynstr*) }
158 /DISCARD/ : { *(.dynamic*) }
159 /DISCARD/ : { *(.plt*) }
160 /DISCARD/ : { *(.interp*) }
161 /DISCARD/ : { *(.gnu*) }