ARM: Add an empty secure stack section
Until now we've been using memory beyond psci_text_end as stack space for the secure monitor or PSCI implementation, even if space was not allocated for it. This was partially fixed in ("ARM: allocate extra space for PSCI stack in secure section during link phase"). However, calculating stack space from psci_text_end in one place, while allocating the space in another is error prone. This patch adds a separate empty secure stack section, with space for CONFIG_ARMV7_PSCI_NR_CPUS stacks, each 1 KB. There's also __secure_stack_start and __secure_stack_end symbols. The linker script handles calculating the correct VMAs for the stack section. For platforms that relocate/copy the secure monitor before using it, the space is not allocated in the executable, saving space. For platforms that do not define CONFIG_ARMV7_PSCI_NR_CPUS, a whole page of stack space for 4 CPUs is allocated, matching the previous behavior. Signed-off-by:Chen-Yu Tsai <wens@csie.org> Signed-off-by:
Hans de Goede <hdegoede@redhat.com>
Showing
- arch/arm/cpu/u-boot.lds 23 additions, 9 deletionsarch/arm/cpu/u-boot.lds
- arch/arm/include/asm/armv7.h 2 additions, 0 deletionsarch/arm/include/asm/armv7.h
- arch/arm/include/asm/psci.h 4 additions, 0 deletionsarch/arm/include/asm/psci.h
- arch/arm/lib/sections.c 2 additions, 0 deletionsarch/arm/lib/sections.c
Loading
Please register or sign in to comment