Skip to contentSkip to conversation

board: toradex: colibri_vf: efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION

PATCH Superseded Marcel Ziswiler 6 participants 12 messages Nov 7, 2018 – Nov 12, 2018

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 board: toradex: colibri_vf: efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION

From: Marcel Ziswiler <[email protected]>

Unset CONFIG_EFI_UNICODE_CAPITALIZATION on boards with tough size restrictions.

This is analogous to commit a90bf07afc43 ("efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION").

---

 configs/colibri_vf_defconfig | 1 +
 1 file changed, 1 insertion(+)
configs/colibri_vf_defconfig +1 -0
index 5854910f7b..38f450c8ed 100644
@@ -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
Signature · 1 line
2.14.5
#1 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

From: Marcel Ziswiler <[email protected]>

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.

---

 arch/arm/mach-imx/Makefile | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
arch/arm/mach-imx/Makefile +16 -0
index 72fe23a2b9..53d9e5f42b 100644
@@ -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),$^) \
Signature · 1 line
2.14.5
reviewer
#2 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

[Adding Stefano]

Quoted 11 lines · Marcel Ziswiler

From: Marcel Ziswiler <[email protected]>

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.

Hi Stefano, maybe this could be material for 2018.11?

Thanks

#3 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

Quoted 13 lines · Fabio Estevam

[Adding Stefano]

Quoted 10 lines · Marcel Ziswiler

From: Marcel Ziswiler <[email protected]>

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.

Quoted 8 lines
Quoted 1 line

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

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
#4 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

Quoted 16 lines · Stefano Babic
Quoted 15 lines · Fabio Estevam

[Adding Stefano]

Quoted 11 lines · Marcel Ziswiler

From: Marcel Ziswiler <[email protected]>

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.

Quoted 8 lines
Quoted 6 lines

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.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181108/64bc157e/attachment.sig>
#5 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

In reply to Fabio Estevam

Hi Marcel,

Quoted 13 lines · Fabio Estevam

[Adding Stefano]

Quoted 10 lines · Marcel Ziswiler

From: Marcel Ziswiler <[email protected]>

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.

Quoted 6 lines
Quoted 1 line

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

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
#6 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

Hi Stefano

Quoted 43 lines · Stefano Babic

Hi Marcel,

Quoted 18 lines · Fabio Estevam

[Adding Stefano]

On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <[email protected]

Quoted 15 lines

wrote:

From: Marcel Ziswiler <[email protected]>

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.

Quoted 6 lines
Quoted 1 line

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

(quoted diff) +7 -0
+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
Quoted 1 line

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...

Quoted 2 lines

Best regards,
Stefeano

Cheers

Marcel

#7 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

Quoted 44 lines · Marcel Ziswiler

Hi Stefano

Quoted 41 lines · Stefano Babic

Hi Marcel,

Quoted 18 lines · Fabio Estevam

[Adding Stefano]

On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <[email protected]

Quoted 15 lines

wrote:

From: Marcel Ziswiler <[email protected]>

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.

Quoted 5 lines
Quoted 1 line

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

(quoted diff) +7 -0
+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
Quoted 5 lines
Quoted 1 line

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

#8 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

Quoted 61 lines · Alexander Graf
Quoted 51 lines · Marcel Ziswiler

Hi Stefano

Quoted 48 lines · Stefano Babic

Hi Marcel,

Quoted 21 lines · Fabio Estevam

[Adding Stefano]

On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <marcel@ziswiler .com

Quoted 17 lines

wrote:

From: Marcel Ziswiler <[email protected]>

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.

Quoted 6 lines
Quoted 1 line

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

(quoted diff) +7 -0
+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
Quoted 8 lines
Quoted 1 line

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...

Quoted 4 lines

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.

Quoted 1 line

Alex

Cheers

Marcel

#9 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

In reply to Stefano Babic

Hi Stefano

Quoted 43 lines · Stefano Babic

Hi Marcel,

Quoted 18 lines · Fabio Estevam

[Adding Stefano]

On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <[email protected]

Quoted 15 lines

wrote:

From: Marcel Ziswiler <[email protected]>

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.

Quoted 6 lines
Quoted 1 line

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

(quoted diff) +7 -0
+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
Quoted 1 line

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?

Quoted 2 lines

Best regards,
Stefeano

Cheers

Marcel

#10 lore raw

PATCH 2/2 imx: mkimage: add size check to the u-boot.imx make target

Quoted 46 lines · Marcel Ziswiler

Hi Stefano

Quoted 43 lines · Stefano Babic

Hi Marcel,

Quoted 18 lines · Fabio Estevam

[Adding Stefano]

On Wed, Nov 7, 2018 at 8:41 PM Marcel Ziswiler <[email protected]

Quoted 15 lines

wrote:

From: Marcel Ziswiler <[email protected]>

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.

Quoted 6 lines
Quoted 1 line

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

(quoted diff) +7 -0
+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
Quoted 6 lines
Quoted 1 line

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

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
#11 lore raw

PATCH 1/2 board: toradex: colibri_vf: efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION

In reply to Marcel Ziswiler
Quoted 9 lines · Marcel Ziswiler

From: Marcel Ziswiler <[email protected]>

Unset CONFIG_EFI_UNICODE_CAPITALIZATION on boards with tough size restrictions.

This is analogous to commit a90bf07afc43 ("efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION").

Alex