1/* 2 * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7#include <arch.h> 8#include <asm_macros.S> 9#include <platform_def.h> 10 11 12 .local platform_normal_stacks 13 .weak plat_set_my_stack 14 .weak plat_get_my_stack 15 .weak platform_set_stack 16 .weak platform_get_stack 17 18 /* ----------------------------------------------------- 19 * uintptr_t plat_get_my_stack () 20 * 21 * For cold-boot BL images, only the primary CPU needs a 22 * stack. This function returns the stack pointer for a 23 * stack allocated in device memory. 24 * ----------------------------------------------------- 25 */ 26func plat_get_my_stack 27 get_up_stack platform_normal_stacks, PLATFORM_STACK_SIZE 28 ret 29endfunc plat_get_my_stack 30 31 /* ----------------------------------------------------- 32 * void plat_set_my_stack () 33 * 34 * For cold-boot BL images, only the primary CPU needs a 35 * stack. This function sets the stack pointer to a stack 36 * allocated in normal memory. 37 * ----------------------------------------------------- 38 */ 39func plat_set_my_stack 40 get_up_stack platform_normal_stacks, PLATFORM_STACK_SIZE 41 mov sp, x0 42 ret 43endfunc plat_set_my_stack 44 45 /* ----------------------------------------------------- 46 * unsigned long platform_get_stack () 47 * 48 * For cold-boot BL images, only the primary CPU needs a 49 * stack. This function returns the stack pointer for a 50 * stack allocated in device memory. This function 51 * is deprecated. 52 * ----------------------------------------------------- 53 */ 54func_deprecated platform_get_stack 55 b plat_get_my_stack 56endfunc_deprecated platform_get_stack 57 58 /* ----------------------------------------------------- 59 * void platform_set_stack () 60 * 61 * For cold-boot BL images, only the primary CPU needs a 62 * stack. This function sets the stack pointer to a stack 63 * allocated in normal memory.This function is 64 * deprecated. 65 * ----------------------------------------------------- 66 */ 67func_deprecated platform_set_stack 68 b plat_set_my_stack 69endfunc_deprecated platform_set_stack 70 71 /* ----------------------------------------------------- 72 * Single cpu stack in normal memory. 73 * Used for C code during boot, PLATFORM_STACK_SIZE bytes 74 * are allocated 75 * ----------------------------------------------------- 76 */ 77declare_stack platform_normal_stacks, tzfw_normal_stacks, \ 78 PLATFORM_STACK_SIZE, 1, CACHE_WRITEBACK_GRANULE 79