Message ID | 20181107223947.31783-2-marcel@ziswiler.com |
---|---|
State | Superseded |
Delegated to: | Stefano Babic |
Headers | show |
Series | [U-Boot,v1,1/2] board: toradex: colibri_vf: efi_loader: unset CONFIG_EFI_UNICODE_CAPITALIZATION | expand |
[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
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),$^) \