spl: implement stack usage check
authorSimon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Tue, 16 Jul 2019 20:30:36 +0000 (22:30 +0200)
committerTom Rini <trini@konsulko.com>
Sun, 11 Aug 2019 20:43:41 +0000 (16:43 -0400)
commitd8c0332031ea90555d8f974867237a38630fda0d
treec47cba330d44e734f8f8e50299585b2f35dae21f
parentaf325e9597dfe47943f6f3b92d0b7012317f4a53
spl: implement stack usage check

This implements a stack usage check in SPL.

Many boards start up SPL to run code + data from one common, rather small
SRAM. To implement a sophisticated SPL binary size limit on such boards,
the stack size (as well as malloc size and global data size) must be
subtracted from this SRAM size.

However, to do that properly, the stack size first needs to be known.

This patch adds a new Kconfig option:
- SPL_SYS_REPORT_STACK_F_USAGE: memset(0xaa) the whole area of the stack
  very early and check stack usage based on this constant later before the
  stack is switched to DRAM

Initializing the stack and checking it is implemented in weak functions,
in case a board does not use the stack as saved in gd->start_addr_sp.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
common/init/board_init.c
common/spl/Kconfig
common/spl/spl.c