u-boot-brain/arch
Chen-Yu Tsai b56e06d343 ARM: allocate extra space for PSCI stack in secure section during link phase
The PSCI implementation expects at most 2 pages worth of space reserved
at the end of the secure section for its stacks. If PSCI is relocated to
secure SRAM, then everything is fine. If no secure SRAM is available,
and PSCI remains in main memory, the reserved memory space doesn't cover
the space used by the stack.

If one accesses PSCI after Linux has fully booted, the memory that should
have been reserved for the PSCI stacks may have been used by the kernel
or userspace, and would be corrupted. Observed after effects include the
system hanging or telinit core dumping when trying to reboot. It seems
the init process gets hit the most on my test bed.

This fix allocates the space used by the PSCI stacks in the secure
section by skipping pages in the linker script, but only when there is
no secure SRAM, to avoid bloating the binary.

This fix is only a stop gap. It would be better to rework the stack
allocation mechanism, maybe with proper usage of CONFIG_ macros and an
explicit symbol.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-06-20 22:43:59 +02:00
..
arc arc: Update data accessors with use of memory barriers 2016-06-13 14:38:05 +02:00
arm ARM: allocate extra space for PSCI stack in secure section during link phase 2016-06-20 22:43:59 +02:00
avr32 avr32: Drop unused code in u-boot.h 2016-05-27 15:39:52 -04:00
blackfin configs: Re-sync almost all of cmd/Kconfig 2016-04-25 15:09:40 -04:00
m68k m68k: Drop unused code in u-boot.h 2016-05-27 15:39:53 -04:00
microblaze Remove unneeded remnants of bcopy(). 2016-06-06 13:39:18 -04:00
mips clk: convert API to match reset/mailbox style 2016-06-19 17:05:55 -06:00
nds32 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
nios2 Delete tests of CONFIG_OF_LIBFDT when testing CONFIG_OF_BOARD_SETUP 2016-05-27 15:41:16 -04:00
openrisc openrisc: Drop the arch-specific board init 2016-05-27 15:39:50 -04:00
powerpc Remove unneeded remnants of bcopy(). 2016-06-06 13:39:18 -04:00
sandbox clk: convert API to match reset/mailbox style 2016-06-19 17:05:55 -06:00
sh Drop references to CONFIG_SYS_GENERIC_BOARD in config files 2016-05-27 15:39:54 -04:00
sparc Fix spelling of "transferred". 2016-03-22 12:16:16 -04:00
x86 x86: Probe pinctrl driver in cpu_init_r() 2016-06-12 12:19:35 +08:00
.gitignore .gitignore: drop include/asm/proc from ignore pattern 2014-06-19 11:18:54 -04:00
Kconfig Drop HAVE_GENERIC_BOARD and SYS_GENERIC_BOARD options 2016-05-27 15:39:55 -04:00