[U-Boot] [PATCH v1 1/2] board: toradex: colibri_vf: efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION

From: Marcel Ziswiler marcel.ziswiler@toradex.com
Unset CONFIG_EFI_UNICODE_CAPITALIZATION on boards with tough size restrictions.
This is analogous to commit a90bf07afc43 ("efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION").
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
---
configs/colibri_vf_defconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig index 5854910f7b..38f450c8ed 100644 --- a/configs/colibri_vf_defconfig +++ b/configs/colibri_vf_defconfig @@ -72,3 +72,4 @@ CONFIG_VIDEO_FSL_DCU_FB=y CONFIG_VIDEO=y CONFIG_SYS_CONSOLE_FG_COL=0x00 CONFIG_OF_LIBFDT_OVERLAY=y +# CONFIG_EFI_UNICODE_CAPITALIZATION is not set

From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
---
arch/arm/mach-imx/Makefile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 72fe23a2b9..53d9e5f42b 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -58,6 +58,21 @@ obj-$(CONFIG_CMD_HDMIDETECT) += cmd_hdmidet.o obj-$(CONFIG_CMD_DEKBLOB) += cmd_dek.o endif
+ifneq ($(CONFIG_BOARD_SIZE_LIMIT),) +BOARD_SIZE_CHECK = \ + @actual=`wc -c $@ | awk '{print $$1}'`; \ + limit=`printf "%d" $(CONFIG_BOARD_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 +BOARD_SIZE_CHECK = +endif + PLUGIN = board/$(BOARDDIR)/plugin
ifeq ($(CONFIG_USE_IMXIMG_PLUGIN),y) @@ -101,6 +116,7 @@ u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE $(call if_changed,mkimage) + $(BOARD_SIZE_CHECK)
ifeq ($(CONFIG_OF_SEPARATE),y) MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \

[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Thanks

On 08/11/18 02:55, Fabio Estevam wrote:
[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Thanks
It makes sense - Tom, could you pick this up or do you prefer a formal PR ?
Regards, Stefano

On Thu, Nov 08, 2018 at 09:43:56AM +0100, Stefano Babic wrote:
On 08/11/18 02:55, Fabio Estevam wrote:
[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Thanks
It makes sense - Tom, could you pick this up or do you prefer a formal PR ?
PR please, thanks.

Hi Marcel,
On 08/11/18 02:55, Fabio Estevam wrote:
[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler marcel@ziswiler.com wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Added both patches to u-boot-imx, check is effective, now size is too much and build fails:
Building current source for 1 boards (1 thread, 8 jobs per thread) arm: + colibri_vf +u-boot.imx exceeds file size limit: + limit: 520192 bytes + actual: 526104 bytes + excess: 5912 bytes +make[2]: *** [u-boot.imx] Error 1 +make[1]: *** [u-boot.imx] Error 2 +make: *** [sub-make] Error 2 0 0 1 /1 colibri_vf
Can you take a look ?
Best regards, Stefeano

Hi Stefano
On Thu, 2018-11-08 at 15:07 +0100, Stefano Babic wrote:
Hi Marcel,
On 08/11/18 02:55, Fabio Estevam wrote:
[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <marcel@ziswiler.com
wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Added both patches to u-boot-imx, check is effective, now size is too much and build fails:
Building current source for 1 boards (1 thread, 8 jobs per thread) arm: + colibri_vf +u-boot.imx exceeds file size limit:
- limit: 520192 bytes
- actual: 526104 bytes
- excess: 5912 bytes
+make[2]: *** [u-boot.imx] Error 1 +make[1]: *** [u-boot.imx] Error 2 +make: *** [sub-make] Error 2 0 0 1 /1 colibri_vf
Can you take a look ?
Sure, what kind of a tool chain are you using? Might just be that the GCC 8.2 I was using does a better job in optimising stuff. Yep, with GCC 7.3.1 it also fails at my end! I guess then we have to drop EFI entirely but I doubt Mr. Graf will be happy...
Best regards, Stefeano
Cheers
Marcel

On 11/09/2018 10:18 AM, Marcel Ziswiler wrote:
Hi Stefano
On Thu, 2018-11-08 at 15:07 +0100, Stefano Babic wrote:
Hi Marcel,
On 08/11/18 02:55, Fabio Estevam wrote:
[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <marcel@ziswiler.com
wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Added both patches to u-boot-imx, check is effective, now size is too much and build fails:
Building current source for 1 boards (1 thread, 8 jobs per thread) arm: + colibri_vf +u-boot.imx exceeds file size limit:
- limit: 520192 bytes
- actual: 526104 bytes
- excess: 5912 bytes
+make[2]: *** [u-boot.imx] Error 1 +make[1]: *** [u-boot.imx] Error 2 +make: *** [sub-make] Error 2 0 0 1 /1 colibri_vf
Can you take a look ?
Sure, what kind of a tool chain are you using? Might just be that the GCC 8.2 I was using does a better job in optimising stuff. Yep, with GCC 7.3.1 it also fails at my end! I guess then we have to drop EFI entirely but I doubt Mr. Graf will be happy...
I definitely wouldn't be happy, but I've seen us run into tight situations with Vybrid before. So yes, if your platform really a) doesn't want to ever support EBBR and b) really has very tight size constraints, disabling EFI_LOADER is perfectly fine with me.
Alex

On Fri, 2018-11-09 at 10:41 +0100, Alexander Graf wrote:
On 11/09/2018 10:18 AM, Marcel Ziswiler wrote:
Hi Stefano
On Thu, 2018-11-08 at 15:07 +0100, Stefano Babic wrote:
Hi Marcel,
On 08/11/18 02:55, Fabio Estevam wrote:
[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <marcel@ziswiler .com
wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Added both patches to u-boot-imx, check is effective, now size is too much and build fails:
Building current source for 1 boards (1 thread, 8 jobs per thread) arm: + colibri_vf +u-boot.imx exceeds file size limit:
- limit: 520192 bytes
- actual: 526104 bytes
- excess: 5912 bytes
+make[2]: *** [u-boot.imx] Error 1 +make[1]: *** [u-boot.imx] Error 2 +make: *** [sub-make] Error 2 0 0 1 /1 colibri_vf
Can you take a look ?
Sure, what kind of a tool chain are you using? Might just be that the GCC 8.2 I was using does a better job in optimising stuff. Yep, with GCC 7.3.1 it also fails at my end! I guess then we have to drop EFI entirely but I doubt Mr. Graf will be happy...
I definitely wouldn't be happy, but I've seen us run into tight situations with Vybrid before. So yes, if your platform really a) doesn't want to ever support EBBR and b) really has very tight size constraints, disabling EFI_LOADER is perfectly fine with me.
Yes, I'm fully aware of EBBR having attended Grant's talk in Edinburgh but especially those older raw NAND platforms are probably not the best candidates for any of this. Unless, of course, we would put some more effort transitioning them all to SPL and what not to overcome e.g. such SRAM limitations. I will send a v2 which disables EFI for now.
Alex
Cheers
Marcel

Hi Stefano
On Thu, 2018-11-08 at 15:07 +0100, Stefano Babic wrote:
Hi Marcel,
On 08/11/18 02:55, Fabio Estevam wrote:
[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <marcel@ziswiler.com
wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Added both patches to u-boot-imx, check is effective, now size is too much and build fails:
Building current source for 1 boards (1 thread, 8 jobs per thread) arm: + colibri_vf +u-boot.imx exceeds file size limit:
- limit: 520192 bytes
- actual: 526104 bytes
- excess: 5912 bytes
+make[2]: *** [u-boot.imx] Error 1 +make[1]: *** [u-boot.imx] Error 2 +make: *** [sub-make] Error 2 0 0 1 /1 colibri_vf
Can you take a look ?
I sent a v2 additionally dropping CONFIG_CMDLINE_EDITING and SPI support saving another 8 Kb which for me makes it work right back to GCC 6.1.1 which I believe is anyway about as far back as one can go even compiling U-Boot. Can you please give that another go?
Best regards, Stefeano
Cheers
Marcel

On 09/11/18 15:35, Marcel Ziswiler wrote:
Hi Stefano
On Thu, 2018-11-08 at 15:07 +0100, Stefano Babic wrote:
Hi Marcel,
On 08/11/18 02:55, Fabio Estevam wrote:
[Adding Stefano]
On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <marcel@ziswiler.com
wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
The make macro to check if the binary exceeds the board size limit is taken straight from the root Makefile.
Without this and e.g. enabled EFI Vybrid fails booting as the regular size limit check does not take the final u-boot.imx binary size into account which is bigger due to alignment as well as IMX header stuff.
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Fabio Estevam festevam@gmail.com
Hi Stefano, maybe this could be material for 2018.11?
Added both patches to u-boot-imx, check is effective, now size is too much and build fails:
Building current source for 1 boards (1 thread, 8 jobs per thread) arm: + colibri_vf +u-boot.imx exceeds file size limit:
- limit: 520192 bytes
- actual: 526104 bytes
- excess: 5912 bytes
+make[2]: *** [u-boot.imx] Error 1 +make[1]: *** [u-boot.imx] Error 2 +make: *** [sub-make] Error 2 0 0 1 /1 colibri_vf
Can you take a look ?
I sent a v2 additionally dropping CONFIG_CMDLINE_EDITING and SPI support saving another 8 Kb which for me makes it work right back to GCC 6.1.1 which I believe is anyway about as far back as one can go even compiling U-Boot. Can you please give that another go?
Merged the patchset, it works in my build. I will send PR to Tom.
Regards, Stefano

On 07.11.18 23:39, Marcel Ziswiler wrote:
From: Marcel Ziswiler marcel.ziswiler@toradex.com
Unset CONFIG_EFI_UNICODE_CAPITALIZATION on boards with tough size restrictions.
This is analogous to commit a90bf07afc43 ("efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION").
Signed-off-by: Marcel Ziswiler marcel.ziswiler@toradex.com
Reviewed-by: Alexander Graf agraf@suse.de
Alex
participants (6)
-
Alexander Graf
-
Fabio Estevam
-
Marcel Ziswiler
-
Marcel Ziswiler
-
Stefano Babic
-
Tom Rini