[U-Boot] [PATCH] am335x_hs_evm: Trim options in SPL to reduce binary size

The am335x_hs_evm runs into size constraint problems at times with various toolchains as changes come in due to the config have a large number of options in SPL (to showcase what is possible) while also having rather constrained binary limits. Gain some of this room back by lowering the loglevel, disabling HW partition support and switching over to the tiny FIT image support.
Cc: Andrew F. Davis afd@ti.com Signed-off-by: Tom Rini trini@konsulko.com --- I'd really appreciate a run-time test of this patch if at all possible as I'm a little worried about TINY_FIT being incompatible with all of the security options. Thanks! --- configs/am335x_hs_evm_defconfig | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/configs/am335x_hs_evm_defconfig b/configs/am335x_hs_evm_defconfig index 48b0e8583997..8eb304686dc7 100644 --- a/configs/am335x_hs_evm_defconfig +++ b/configs/am335x_hs_evm_defconfig @@ -13,10 +13,12 @@ CONFIG_ANDROID_BOOT_IMAGE=y CONFIG_FIT_IMAGE_POST_PROCESS=y CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y +CONFIG_LOGLEVEL=3 CONFIG_SYS_CONSOLE_INFO_QUIET=y CONFIG_VERSION_VARIABLE=y CONFIG_ARCH_MISC_INIT=y CONFIG_SPL=y +CONFIG_SPL_FIT_IMAGE_TINY=y # CONFIG_SPL_ENV_SUPPORT is not set # CONFIG_SPL_EXT_SUPPORT is not set CONFIG_SPL_MTD_SUPPORT=y @@ -37,6 +39,7 @@ CONFIG_DFU_RAM=y CONFIG_DM_I2C=y CONFIG_MISC=y CONFIG_DM_MMC=y +# CONFIG_MMC_HW_PARTITIONING is not set CONFIG_MMC_OMAP_HS=y CONFIG_NAND=y CONFIG_NAND_OMAP_GPMC_PREFETCH=y @@ -61,5 +64,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0451 CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_USB_ETHER=y +CONFIG_SPL_TINY_MEMSET=y CONFIG_RSA=y CONFIG_LZO=y

On Sat, Dec 16, 2017 at 11:04:53PM -0500, Tom Rini wrote:
The am335x_hs_evm runs into size constraint problems at times with various toolchains as changes come in due to the config have a large number of options in SPL (to showcase what is possible) while also having rather constrained binary limits. Gain some of this room back by lowering the loglevel, disabling HW partition support and switching over to the tiny FIT image support.
Cc: Andrew F. Davis afd@ti.com Signed-off-by: Tom Rini trini@konsulko.com
Applied to u-boot/next (so if there's problems, we'll re-work it), thanks!

On 12/16/2017 10:04 PM, Tom Rini wrote:
The am335x_hs_evm runs into size constraint problems at times with various toolchains as changes come in due to the config have a large number of options in SPL (to showcase what is possible) while also having rather constrained binary limits. Gain some of this room back by lowering the loglevel, disabling HW partition support and switching over to the tiny FIT image support.
Cc: Andrew F. Davis afd@ti.com Signed-off-by: Tom Rini trini@konsulko.com
I'd really appreciate a run-time test of this patch if at all possible as I'm a little worried about TINY_FIT being incompatible with all of the security options. Thanks!
configs/am335x_hs_evm_defconfig | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/configs/am335x_hs_evm_defconfig b/configs/am335x_hs_evm_defconfig index 48b0e8583997..8eb304686dc7 100644 --- a/configs/am335x_hs_evm_defconfig +++ b/configs/am335x_hs_evm_defconfig @@ -13,10 +13,12 @@ CONFIG_ANDROID_BOOT_IMAGE=y CONFIG_FIT_IMAGE_POST_PROCESS=y CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y +CONFIG_LOGLEVEL=3 CONFIG_SYS_CONSOLE_INFO_QUIET=y CONFIG_VERSION_VARIABLE=y CONFIG_ARCH_MISC_INIT=y CONFIG_SPL=y +CONFIG_SPL_FIT_IMAGE_TINY=y # CONFIG_SPL_ENV_SUPPORT is not set # CONFIG_SPL_EXT_SUPPORT is not set CONFIG_SPL_MTD_SUPPORT=y @@ -37,6 +39,7 @@ CONFIG_DFU_RAM=y CONFIG_DM_I2C=y CONFIG_MISC=y CONFIG_DM_MMC=y +# CONFIG_MMC_HW_PARTITIONING is not set
I haven't gotten around to testing the FIT_IMAGE_TINY stuff yet, but conceptually I have a much bigger problem with this part.
Sacrificing functionality to allow continued SPL bloat is just wrong.
Whatever caused SPL to grow should be re-worked or the author should have also made some optimization elsewhere to offset this. Now I'll have to go hunt for more optimizations somewhere so I can get all my features back here :(
CONFIG_MMC_OMAP_HS=y CONFIG_NAND=y CONFIG_NAND_OMAP_GPMC_PREFETCH=y @@ -61,5 +64,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0451 CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_USB_ETHER=y +CONFIG_SPL_TINY_MEMSET=y CONFIG_RSA=y CONFIG_LZO=y

On Tue, Dec 19, 2017 at 08:54:25AM -0600, Andrew F. Davis wrote:
On 12/16/2017 10:04 PM, Tom Rini wrote:
The am335x_hs_evm runs into size constraint problems at times with various toolchains as changes come in due to the config have a large number of options in SPL (to showcase what is possible) while also having rather constrained binary limits. Gain some of this room back by lowering the loglevel, disabling HW partition support and switching over to the tiny FIT image support.
Cc: Andrew F. Davis afd@ti.com Signed-off-by: Tom Rini trini@konsulko.com
I'd really appreciate a run-time test of this patch if at all possible as I'm a little worried about TINY_FIT being incompatible with all of the security options. Thanks!
configs/am335x_hs_evm_defconfig | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/configs/am335x_hs_evm_defconfig b/configs/am335x_hs_evm_defconfig index 48b0e8583997..8eb304686dc7 100644 --- a/configs/am335x_hs_evm_defconfig +++ b/configs/am335x_hs_evm_defconfig @@ -13,10 +13,12 @@ CONFIG_ANDROID_BOOT_IMAGE=y CONFIG_FIT_IMAGE_POST_PROCESS=y CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y +CONFIG_LOGLEVEL=3 CONFIG_SYS_CONSOLE_INFO_QUIET=y CONFIG_VERSION_VARIABLE=y CONFIG_ARCH_MISC_INIT=y CONFIG_SPL=y +CONFIG_SPL_FIT_IMAGE_TINY=y # CONFIG_SPL_ENV_SUPPORT is not set # CONFIG_SPL_EXT_SUPPORT is not set CONFIG_SPL_MTD_SUPPORT=y @@ -37,6 +39,7 @@ CONFIG_DFU_RAM=y CONFIG_DM_I2C=y CONFIG_MISC=y CONFIG_DM_MMC=y +# CONFIG_MMC_HW_PARTITIONING is not set
I haven't gotten around to testing the FIT_IMAGE_TINY stuff yet, but conceptually I have a much bigger problem with this part.
Sacrificing functionality to allow continued SPL bloat is just wrong.
Whatever caused SPL to grow should be re-worked or the author should have also made some optimization elsewhere to offset this. Now I'll have to go hunt for more optimizations somewhere so I can get all my features back here :(
FWIW, I don't think there was any functionality (aside from switching to FIT_IMAGE_TINY, but if that supports everything needed in this use-case...) that was removed exactly. But I see your point too. Jean-Jacques, was there anything else that could have been made configurable in your MMC work, that wasn't? Thanks!

On 19/12/2017 16:00, Tom Rini wrote:
On Tue, Dec 19, 2017 at 08:54:25AM -0600, Andrew F. Davis wrote:
On 12/16/2017 10:04 PM, Tom Rini wrote:
The am335x_hs_evm runs into size constraint problems at times with various toolchains as changes come in due to the config have a large number of options in SPL (to showcase what is possible) while also having rather constrained binary limits. Gain some of this room back by lowering the loglevel, disabling HW partition support and switching over to the tiny FIT image support.
Cc: Andrew F. Davis afd@ti.com Signed-off-by: Tom Rini trini@konsulko.com
I'd really appreciate a run-time test of this patch if at all possible as I'm a little worried about TINY_FIT being incompatible with all of the security options. Thanks!
configs/am335x_hs_evm_defconfig | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/configs/am335x_hs_evm_defconfig b/configs/am335x_hs_evm_defconfig index 48b0e8583997..8eb304686dc7 100644 --- a/configs/am335x_hs_evm_defconfig +++ b/configs/am335x_hs_evm_defconfig @@ -13,10 +13,12 @@ CONFIG_ANDROID_BOOT_IMAGE=y CONFIG_FIT_IMAGE_POST_PROCESS=y CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y +CONFIG_LOGLEVEL=3 CONFIG_SYS_CONSOLE_INFO_QUIET=y CONFIG_VERSION_VARIABLE=y CONFIG_ARCH_MISC_INIT=y CONFIG_SPL=y +CONFIG_SPL_FIT_IMAGE_TINY=y # CONFIG_SPL_ENV_SUPPORT is not set # CONFIG_SPL_EXT_SUPPORT is not set CONFIG_SPL_MTD_SUPPORT=y @@ -37,6 +39,7 @@ CONFIG_DFU_RAM=y CONFIG_DM_I2C=y CONFIG_MISC=y CONFIG_DM_MMC=y +# CONFIG_MMC_HW_PARTITIONING is not set
I haven't gotten around to testing the FIT_IMAGE_TINY stuff yet, but conceptually I have a much bigger problem with this part.
Sacrificing functionality to allow continued SPL bloat is just wrong.
Whatever caused SPL to grow should be re-worked or the author should have also made some optimization elsewhere to offset this. Now I'll have to go hunt for more optimizations somewhere so I can get all my features back here :(
FWIW, I don't think there was any functionality (aside from switching to FIT_IMAGE_TINY, but if that supports everything needed in this use-case...) that was removed exactly. But I see your point too. Jean-Jacques, was there anything else that could have been made configurable in your MMC work, that wasn't? Thanks!
I tried to make most of the new features optional. I'll try to scrap more bytes and will let you know

On 20/12/2017 14:16, Jean-Jacques Hiblot wrote:
On 19/12/2017 16:00, Tom Rini wrote:
On Tue, Dec 19, 2017 at 08:54:25AM -0600, Andrew F. Davis wrote:
On 12/16/2017 10:04 PM, Tom Rini wrote:
The am335x_hs_evm runs into size constraint problems at times with various toolchains as changes come in due to the config have a large number of options in SPL (to showcase what is possible) while also having rather constrained binary limits. Gain some of this room back by lowering the loglevel, disabling HW partition support and switching over to the tiny FIT image support.
Cc: Andrew F. Davis afd@ti.com Signed-off-by: Tom Rini trini@konsulko.com
I'd really appreciate a run-time test of this patch if at all possible as I'm a little worried about TINY_FIT being incompatible with all of the security options. Thanks!
configs/am335x_hs_evm_defconfig | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/configs/am335x_hs_evm_defconfig b/configs/am335x_hs_evm_defconfig index 48b0e8583997..8eb304686dc7 100644 --- a/configs/am335x_hs_evm_defconfig +++ b/configs/am335x_hs_evm_defconfig @@ -13,10 +13,12 @@ CONFIG_ANDROID_BOOT_IMAGE=y CONFIG_FIT_IMAGE_POST_PROCESS=y CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y +CONFIG_LOGLEVEL=3 CONFIG_SYS_CONSOLE_INFO_QUIET=y CONFIG_VERSION_VARIABLE=y CONFIG_ARCH_MISC_INIT=y CONFIG_SPL=y +CONFIG_SPL_FIT_IMAGE_TINY=y # CONFIG_SPL_ENV_SUPPORT is not set # CONFIG_SPL_EXT_SUPPORT is not set CONFIG_SPL_MTD_SUPPORT=y @@ -37,6 +39,7 @@ CONFIG_DFU_RAM=y CONFIG_DM_I2C=y CONFIG_MISC=y CONFIG_DM_MMC=y +# CONFIG_MMC_HW_PARTITIONING is not set
I haven't gotten around to testing the FIT_IMAGE_TINY stuff yet, but conceptually I have a much bigger problem with this part.
Sacrificing functionality to allow continued SPL bloat is just wrong.
Whatever caused SPL to grow should be re-worked or the author should have also made some optimization elsewhere to offset this. Now I'll have to go hunt for more optimizations somewhere so I can get all my features back here :(
FWIW, I don't think there was any functionality (aside from switching to FIT_IMAGE_TINY, but if that supports everything needed in this use-case...) that was removed exactly. But I see your point too. Jean-Jacques, was there anything else that could have been made configurable in your MMC work, that wasn't? Thanks!
I tried to make most of the new features optional. I'll try to scrap more bytes and will let you know
FYI I've just sent a new series that trims the mmc core further.
participants (3)
-
Andrew F. Davis
-
Jean-Jacques Hiblot
-
Tom Rini