1cb4adb0dSDaniel Boulby/* 2*a71c59d5SAmbroise Vincent * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. 3cb4adb0dSDaniel Boulby * 4cb4adb0dSDaniel Boulby * SPDX-License-Identifier: BSD-3-Clause 5cb4adb0dSDaniel Boulby */ 6cb4adb0dSDaniel Boulby#ifndef ARM_RECLAIM_INIT_LD_S 7cb4adb0dSDaniel Boulby#define ARM_RECLAIM_INIT_LD_S 8cb4adb0dSDaniel Boulby 9cb4adb0dSDaniel BoulbySECTIONS 10cb4adb0dSDaniel Boulby{ 11cb4adb0dSDaniel Boulby .init __STACKS_START__ : { 12cb4adb0dSDaniel Boulby . = . + PLATFORM_STACK_SIZE; 13cb4adb0dSDaniel Boulby . = ALIGN(PAGE_SIZE); 14cb4adb0dSDaniel Boulby __INIT_CODE_START__ = .; 15cb4adb0dSDaniel Boulby /* 16cb4adb0dSDaniel Boulby * Exclude PSCI initialization functions to ensure the init section 17cb4adb0dSDaniel Boulby * does not become larger than the overlaid stack region 18cb4adb0dSDaniel Boulby */ 19cb4adb0dSDaniel Boulby *(EXCLUDE_FILE (*psci_setup.o).text.init*) 20cb4adb0dSDaniel Boulby __INIT_CODE_UNALIGNED__ = .; 21cb4adb0dSDaniel Boulby . = ALIGN(PAGE_SIZE); 22cb4adb0dSDaniel Boulby __INIT_CODE_END__ = .; 23cb4adb0dSDaniel Boulby } >RAM 24cb4adb0dSDaniel Boulby 25cb4adb0dSDaniel Boulby#ifdef BL31_PROGBITS_LIMIT 26cb4adb0dSDaniel Boulby ASSERT(__INIT_CODE_END__ <= BL31_PROGBITS_LIMIT, 27cb4adb0dSDaniel Boulby "BL31 init has exceeded progbits limit.") 28cb4adb0dSDaniel Boulby#endif 29cb4adb0dSDaniel Boulby 30cb4adb0dSDaniel Boulby ASSERT(__INIT_CODE_END__ <= __STACKS_END__, 31cb4adb0dSDaniel Boulby "Init code ends past the end of the stacks") 32*a71c59d5SAmbroise Vincent 33cb4adb0dSDaniel Boulby} 34cb4adb0dSDaniel Boulby 35cb4adb0dSDaniel Boulby#endif /* ARM_RECLAIM_INIT_LD_S */ 36