1cb4adb0dSDaniel Boulby/* 234dd1e96SAlexei Fedorov * Copyright (c) 2017-2020, 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__ = .; 1534dd1e96SAlexei Fedorov *(*text.init*); 16cb4adb0dSDaniel Boulby __INIT_CODE_END__ = .; 17*3ed5606bSDavid Horstmann INIT_CODE_END_ALIGNED = ALIGN(PAGE_SIZE); 18cb4adb0dSDaniel Boulby } >RAM 19cb4adb0dSDaniel Boulby 20cb4adb0dSDaniel Boulby#ifdef BL31_PROGBITS_LIMIT 21cb4adb0dSDaniel Boulby ASSERT(__INIT_CODE_END__ <= BL31_PROGBITS_LIMIT, 22cb4adb0dSDaniel Boulby "BL31 init has exceeded progbits limit.") 23cb4adb0dSDaniel Boulby#endif 24cb4adb0dSDaniel Boulby} 25cb4adb0dSDaniel Boulby 2634dd1e96SAlexei Fedorov#define ABS ABSOLUTE 2734dd1e96SAlexei Fedorov 28*3ed5606bSDavid Horstmann#define STACK_SECTION \ 29*3ed5606bSDavid Horstmann stacks (NOLOAD) : { \ 3034dd1e96SAlexei Fedorov __STACKS_START__ = .; \ 3134dd1e96SAlexei Fedorov *(tzfw_normal_stacks) \ 32*3ed5606bSDavid Horstmann __STACKS_END__ = .; \ 33*3ed5606bSDavid Horstmann /* Allow room for the init section where necessary. */ \ 3434dd1e96SAlexei Fedorov OFFSET = ABS(SIZEOF(.init) - (. - __STACKS_START__)); \ 3534dd1e96SAlexei Fedorov /* Offset sign */ \ 3634dd1e96SAlexei Fedorov SIGN = ABS(OFFSET) & (1 << 63); \ 3734dd1e96SAlexei Fedorov /* Offset mask */ \ 3834dd1e96SAlexei Fedorov MASK = ABS(SIGN >> 63) - 1; \ 3934dd1e96SAlexei Fedorov . += ABS(OFFSET) & ABS(MASK); \ 40fa1fdb22SAlexei Fedorov . = ALIGN(PAGE_SIZE); \ 4134dd1e96SAlexei Fedorov } 42*3ed5606bSDavid Horstmann 43cb4adb0dSDaniel Boulby#endif /* ARM_RECLAIM_INIT_LD_S */ 44