mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 17:08:52 +09:00
![Simon Goldschmidt](/assets/img/avatar_default.png)
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>
31 lines
755 B
C
31 lines
755 B
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (c) 2019, Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
|
|
*
|
|
* This tool helps to return the size available for SPL image during build
|
|
*/
|
|
|
|
#include <generated/autoconf.h>
|
|
#include <generated/generic-asm-offsets.h>
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
int spl_size_limit = 0;
|
|
|
|
#ifdef CONFIG_SPL_SIZE_LIMIT
|
|
spl_size_limit = CONFIG_SPL_SIZE_LIMIT;
|
|
#ifdef CONFIG_SPL_SIZE_LIMIT_SUBTRACT_GD
|
|
spl_size_limit -= GENERATED_GBL_DATA_SIZE;
|
|
#endif
|
|
#ifdef CONFIG_SPL_SIZE_LIMIT_SUBTRACT_MALLOC
|
|
spl_size_limit -= CONFIG_SPL_SYS_MALLOC_F_LEN;
|
|
#endif
|
|
#ifdef CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK
|
|
spl_size_limit -= CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK;
|
|
#endif
|
|
#endif
|
|
|
|
printf("%d", spl_size_limit);
|
|
return 0;
|
|
}
|