
On Mon, Apr 22, 2019 at 10:27:21PM +0200, Simon Goldschmidt wrote:
This adds a size check for SPL that can dynamically check generated SPL binaries (including devicetree) for a size limit that ensures this image plus global data, heap and stack fit in initial SRAM.
Since some of these sizes are not available to make, a new host tool 'spl_size_limit' is added that dumps the resulting maximum size for an SPL binary to stdout. This tool is used in toplevel Makefile to implement the size check on SPL binaries.
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
- added missing tools/spl_size_limit.c
Kconfig | 8 -------- Makefile | 2 +- common/spl/Kconfig | 36 ++++++++++++++++++++++++++++++++++++ tools/Makefile | 2 ++ tools/spl_size_limit.c | 30 ++++++++++++++++++++++++++++++
Ah, now I get it, and why you said you depend on Heinrich's series now, OK. This isn't quite what I envisioned, but, maybe that's OK. I was thinking we could drop the whole of the shell function, stat() the file and return 0/error. But I guess on the whole we've got the shell function portable and not too fragile looking, so maybe it's not worth the extra work there.
I do have one problem I'd like to discuss, which is that to replicate this for a TPL size limit (which we totally have and need to deal with), we cp and sed spl_size_limit.c to tpl_size_limit.c.
I don't however see a clever way to avoid that. CONFIG_IS_ENABLED() would let us have the same #if test, but doing size_limit -= CONFIG_SPL_FOO CONFIG_TPL_FOO; is probably getting too clever.
Thanks!