
Hi Eugen,
On 4/27/23 11:19, Eugen Hristev wrote:
Hi Stefan,
Thank you for the patch.
This I guess is a workaround such that you can add a bit more of code. In the end, it's not scalable, and we have to find a better way, probably by removing some of the code to make the SPL smaller.
U-Boot image size increase resulting in overflowing some limits is a common problem, especially in SPL. Enabling LTO gives quite some good improvements in image size decrease. So I don't think it's an workaround.
How does this impact the size? How much we are gaining ?
I did not measure this. I just checked that this target compiles clean again with LTO enabled and the MMC related patches applied.
Could you (or some college?) please investigate here, how the results are in image size?
We can perhaps have a look to see which code is removed and guard it by #ifndef SPL_BUILD and that might lower the size. (if ofcourse, this code should really be removed)
Sure, other improvements in image size decrease are of course always a good idea.
Also, I don't have a board at hand to test this, so it has to be tested first to make sure the board doesn't break.
Agreed. I assume/hope that one of your colleges will be able to test this?
Thanks, Stefan
Eugen
On 4/27/23 11:59, Stefan Roese wrote:
Adding just a tiny bit more code for sama5d2_icp_mmc leads to a SRAM image overflow. Fix this by enabling LTO for this board, so that such changes still can be made to the common U-Boot code.
Signed-off-by: Stefan Roese sr@denx.de Cc: Tudor Ambarus tudor.ambarus@microchip.com Cc: Eugen Hristev eugen.hristev@microchip.com Cc: Sergiu Moga sergiu.moga@microchip.com Cc: Pali Rohár pali@kernel.org
configs/sama5d2_icp_mmc_defconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/configs/sama5d2_icp_mmc_defconfig b/configs/sama5d2_icp_mmc_defconfig index e1b602d8e5ec..a3c57a3f1250 100644 --- a/configs/sama5d2_icp_mmc_defconfig +++ b/configs/sama5d2_icp_mmc_defconfig @@ -9,9 +9,11 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x20003ef0 +CONFIG_SF_DEFAULT_SPEED=66000000 CONFIG_ENV_SIZE=0x4000 CONFIG_DM_GPIO=y CONFIG_DEFAULT_DEVICE_TREE="at91-sama5d2_icp" +CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_SPL_MMC=y CONFIG_SPL_SERIAL=y CONFIG_SPL_DRIVERS_MISC=y @@ -24,6 +26,7 @@ CONFIG_SPL_FS_FAT=y CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SYS_LOAD_ADDR=0x22000000 CONFIG_DEBUG_UART=y +CONFIG_LTO=y CONFIG_ENV_VARS_UBOOT_CONFIG=y CONFIG_SYS_MONITOR_LEN=524288 CONFIG_FIT=y @@ -86,7 +89,6 @@ CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ATMEL=y CONFIG_DM_SPI_FLASH=y CONFIG_SF_DEFAULT_BUS=2 -CONFIG_SF_DEFAULT_SPEED=66000000 CONFIG_SPI_FLASH_SFDP_SUPPORT=y CONFIG_SPI_FLASH_ATMEL=y CONFIG_SPI_FLASH_MACRONIX=y @@ -110,5 +112,4 @@ CONFIG_TIMER=y CONFIG_SPL_TIMER=y CONFIG_ATMEL_TCB_TIMER=y CONFIG_SPL_ATMEL_TCB_TIMER=y -CONFIG_OF_LIBFDT_OVERLAY=y # CONFIG_EFI_LOADER_HII is not set
Viele Grüße, Stefan Roese