
On Wed, Feb 13, 2019 at 10:38:09PM +0100, Heinrich Schuchardt wrote:
The SPL image for the Tinker Board has to fit into 32 KiB. This includes 4 KiB for the device tree and up to 2 KiB for the file header.
A new configuration variable CONFIG_SPL_WITH_DTB_SIZE_LIMIT is introduced to define the board specific limit.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
v2 Instead of using CONFIG_SPL_MAX_SIZE with an estimate of the FDT size introduce a new test in scripts/Makefile.spl.
[snip]
+ifneq ($(CONFIG_SPL_WITH_DTB_SIZE_LIMIT),0) +SPL_WITH_DTB_SIZE_CHECK = \
- @actual=`wc -c $@ | awk '{print $$1}'`; \
- limit=`printf "%d" $(CONFIG_SPL_WITH_DTB_SIZE_LIMIT)`; \
- if test $$actual -gt $$limit; then \
echo "$@ exceeds file size limit:" >&2 ; \
echo " limit: $$limit bytes" >&2 ; \
echo " actual: $$actual bytes" >&2 ; \
echo " excess: $$((actual - limit)) bytes" >&2; \
exit 1; \
- fi
+else +SPL_WITH_DTB_SIZE_CHECK = +endif
OK, but now we have 3 copies of this logic. Can we not define a function and pass the limit in to it? Then we'd have a few things like: ifneq ($(CONFIG_xxx_MAX_SIZE),0) xxx_SIZE_CHECK = ... call func with $@ and size else xxx_SIZE_CHECK = endif
Or do we need something else to avoid duplicating this in so many places?