Re: Thoughts about U-boot binary size increase

Fabio Estevam
2024-03-28T12:18:59Z

Hi Lukasz,

On Thu, Mar 28, 2024 at 6:20 AM Lukasz Majewski <lukma@denx.de> wrote:
>
> Dear Community,
>
> I'd like to share with you some thoughts about growth of u-boot's
> binary size for SPL and u-boot proper.
>
> Board: XEA
> SoC : imx287 (still in active production)
> Problem: SPL size constrained to ~55 KiB (This cannot be exceeded).
> Board design constraints u-boot proper size to less than ~448
> KiB
>
>
> When XEA was added (2019.07):
> - u-boot.sb (SPL): 37 KiB
> - u-boot.img : 401 KiB
>
> Now (2024.04):
> - u-boot.sb (SPL): 40 KiB
> - u-boot.img : 427 KiB
>
> (With a _lot_ of effort put to reduce the size)
>
> Hence, the question - would it be possible to take more concern about
> the binary size growth?
>
> Maybe CI could catch patches, which enable by default some features and
> the size is unintentionally increased?
>
> I'm open for any feedback and thoughts on "stopping" the binary size
> increase.

In addition to adding CONFIG_BOARD_SIZE_LIMIT and CONFIG_SPL_SIZE_LIMIT checks,
could you try the change below?

diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig
index d2e4205c5ce5..ee8c23d0e04f 100644
--- a/arch/arm/mach-imx/mxs/Kconfig
+++ b/arch/arm/mach-imx/mxs/Kconfig
@@ -32,6 +32,7 @@ if ARCH_MX28

config MX28
bool
+ select LTO
default y

I did a quick imx28_xea_defconfig build test here:

U-Boot mainline
---------------

$ ls -al u-boot.img
-rw-rw-r-- 1 fabio fabio 444128 mar 28 09:11 u-boot.img

$ ls -al spl/u-boot-spl.bin
-rwxrwxr-x 1 fabio fabio 39800 mar 28 09:12 spl/u-boot-spl.bin

U-Boot mainline + LTO
---------------------

$ ls -al u-boot.img
-rw-rw-r-- 1 fabio fabio 424144 mar 28 09:14 u-boot.img

$ ls -al spl/u-boot-spl.bin
-rw-rw-r-- 1 fabio fabio 37664 mar 28 09:14 spl/u-boot-spl.bin