[EXT] Re: [PATCH v8 01/15] crypto/fsl: Add support for CAAM Job ring driver model

Michael Nazzareno Trimarchi michael at amarulasolutions.com
Sat Mar 19 18:37:18 CET 2022


Hi Tom

On Sat, Mar 19, 2022 at 6:30 PM Tom Rini <trini at konsulko.com> wrote:
>
> On Sat, Mar 19, 2022 at 06:27:38PM +0100, Michael Nazzareno Trimarchi wrote:
> > Hi
> >
> > On Sat, Mar 19, 2022 at 6:25 PM Tom Rini <trini at konsulko.com> wrote:
> > >
> > > On Sat, Mar 19, 2022 at 06:08:18PM +0100, Michael Nazzareno Trimarchi wrote:
> > > > Hi Tom
> > > >
> > > > On Sat, Mar 19, 2022 at 6:03 PM Tom Rini <trini at konsulko.com> wrote:
> > > > >
> > > > > On Sat, Mar 19, 2022 at 05:48:59PM +0100, Michael Nazzareno Trimarchi wrote:
> > > > > > Hi Tom
> > > > > >
> > > > > > On Sat, Mar 19, 2022 at 5:05 PM Tom Rini <trini at konsulko.com> wrote:
> > > > > > >
> > > > > > > On Sat, Mar 19, 2022 at 02:51:01PM +0100, Michael Nazzareno Trimarchi wrote:
> > > > > > > > Hi
> > > > > > > >
> > > > > > > > On Sat, Mar 19, 2022 at 2:25 PM Fabio Estevam <festevam at gmail.com> wrote:
> > > > > > > > >
> > > > > > > > > Hi Michael,
> > > > > > > > >
> > > > > > > > > On Sat, Mar 19, 2022 at 6:47 AM Michael Nazzareno Trimarchi
> > > > > > > > > <michael at amarulasolutions.com> wrote:
> > > > > > > > > >
> > > > > > > > > > HI
> > > > > > > > > >
> > > > > > > > > > Please send me a link to apply your series
> > > > > > > > >
> > > > > > > > > You can get the series from patchwork (just click in the 'series' button)
> > > > > > > > > https://patchwork.ozlabs.org/project/uboot/patch/20220112133127.16880-2-gaurav.jain@nxp.com/
> > > > > > > >
> > > > > > > > Done, well, I have tried remove DM_GPIO in SPL. Seems that I need to
> > > > > > > > remove a lot of features. I have tested LTO build but size
> > > > > > > > of SPL increase. Is that strange?
> > > > > > >
> > > > > > > That is very strange.  Can you post your patches somewhere?
> > > > > > >
> > > > > > > --
> > > > > > > Tom
> > > > > >
> > > > > > Start from here 9776c4e9d00ac49d6388ffe9e084ff03b37ae479
> > > > > > export ARCH=arm
> > > > > > export CROSS_COMPILE=arm-linux-gnueabihf-
> > > > > >
> > > > > > make imx6dl_mamoj_defconfig
> > > > > > build it
> > > > > >
> > > > > > Try then to enable LTO and build it again
> > > > > >
> > > > > > spl/u-boot-spl.bin exceeds file size limit:
> > > > > >   limit:  0xefa0 bytes
> > > > > >   actual: 0xf071 bytes
> > > > > >   excess: 0xd1 bytes
> > > > > >
> > > > > > So LTO does not help even on beginning on this board. You don't need
> > > > > > to apply any patch for this test
> > > > >
> > > > > I think that's some artifact of mixing LTO/non-LTO and the world not
> > > > > getting rebuilt?  Just enabling LTO after the defconfig works fine and
> > > > > is smaller than before.
> > > >
> > > > In order to save space I did not change what we have. Every build starts from
> > > > a mrproper and new configuration. I can not mix LTO/non-LTO in this case. I'm
> > > > using upstream defconfig and upstream defconfig + LTO enabled and the result is
> > > > that spl increase in size for LTO building. I'm working to keep out
> > > > part that are not really needed but
> > > > I was hoping that LTO give me some help here
> > >
> > > Yes, LTO saves about 5KiB on the SPL binary.  You just need to enable it
> > > in the config before you start building, not after you've built
> > > everything once.
> >
> > Offcourse ;) but this not the case. I don't drink enough to think that
> > change a config, decrease the build size ;)
>
> LTO is an entirely different way of the compiler / linker optimizing the
> binary.  So yes, in this case enabling a single option decreases the
> size.


I think we are in a circle. Let's have the result with LTO

spl/keep-syms-lto.c
  ( cd spl && arm-linux-gnueabihf-gcc -nostdlib -nostartfiles
-fuse-linker-plugin -flto=8 -Wall -Wstrict-prototypes
-Wno-format-security -fno-builtin -ffreestanding -std=gnu11
-fshort-wchar -fno-strict-aliasing -fno-PIE -Os  -flto=8
-fno-stack-protector -fno-delete-null-pointer-checks -Wno-pointer-sign
-Wno-stringop-truncation  -Wno-array-bounds -Wno-stringop-overflow
-Wno-maybe-uninitialized -fmacro-prefix-map=./= -g -fstack-usage
-Wno-format-nonliteral -Wno-address-of-packed-member
-Wno-unused-but-set-variable -Werror=date-time -Wno-packed-not-aligned
 -ffunction-sections -fdata-sections -fno-stack-protector -D__KERNEL__
-D__UBOOT__  -DCONFIG_SPL_BUILD  -D__ARM__ -Wa,-mimplicit-it=always
-mthumb -mthumb-interwork  -mabi=aapcs-linux  -mno-unaligned-access
-fno-common -ffixed-r9  -msoft-float -mgeneral-regs-only    -pipe
-march=armv7-a -D__LINUX_ARM_ARCH__=7 -mtune=generic-armv7-a
-Ispl/include -Iinclude     -I./arch/arm/include -include
./include/linux/kconfig.h  -nostdinc -isystem
/usr/lib/gcc-cross/arm-linux-gnueabihf/9/include  -Wl,-T
-Wl,u-boot-spl.lds -Wl,-Bstatic -Wl,--gc-sections
-Wl,--no-dynamic-linker -Wl,--build-id=none -Wl,-Ttext -Wl,0x00908000
arch/arm/cpu/armv7/start.o -Wl,--whole-archive
arch/arm/cpu/armv7/built-in.o arch/arm/cpu/built-in.o
arch/arm/lib/built-in.o arch/arm/mach-imx/built-in.o
board/bticino/mamoj/built-in.o common/spl/built-in.o
common/init/built-in.o boot/built-in.o common/built-in.o
cmd/built-in.o env/built-in.o lib/built-in.o disk/built-in.o
drivers/built-in.o drivers/usb/dwc3/built-in.o
drivers/usb/cdns3/built-in.o dts/built-in.o fs/built-in.o
keep-syms-lto.o arch/arm/lib/eabi_compat.o arch/arm/lib/lib.a
-Wl,--no-whole-archive -Wl,-Map,u-boot-spl.map -o u-boot-spl )
  arm-linux-gnueabihf-objcopy  -j .text -j .secure_text -j
.secure_data -j .rodata -j .hash -j .data -j .got -j .got.plt -j
.u_boot_list -j .rel.dyn -j .binman_sym_table -j .text_rest -j
.dtb.init.rodata -j .efi_runtime -j .efi_runtime_rel  -O binary
spl/u-boot-spl spl/u-boot-spl-nodtb.bin
  arm-linux-gnueabihf-objdump -t spl/u-boot-spl > spl/u-boot-spl.sym
  cat spl/u-boot-spl-nodtb.bin spl/u-boot-spl.dtb > spl/u-boot-spl-dtb.bin
  cp spl/u-boot-spl-dtb.bin spl/u-boot-spl.bin
spl/u-boot-spl.bin exceeds file size limit:
  limit:  0xefa0 bytes
  actual: 0xf079 bytes
  excess: 0xd9 bytes
make: *** [Makefile:2082: spl/u-boot-spl.bin] Error 1
make: *** Deleting file 'spl/u-boot-spl.bin'

and without

NUX_ARM_ARCH__=7 -mtune=generic-armv7-a    -D__ASSEMBLY__ -x c -o
spl/u-boot-spl.cfgout arch/arm/mach-imx/spl_sd.cfg
  ./tools/mkimage -n spl/u-boot-spl.cfgout -T imximage -e 0x00908000
-d spl/u-boot-spl.bin SPL >SPL.log  && cat SPL.log
Image Type:   Freescale IMX Boot Image
Image Ver:    2 (i.MX53/6/7 compatible)
Mode:         DCD
Data Size:    73824 Bytes = 72.09 KiB = 0.07 MiB
Load Address: 00907420
Entry Point:  00908000
HAB Blocks:   0x00907400 0x00000000 0x0000fc00
DCD Blocks:   0x00910000 0x0000002c 0x00000004
make -f ./scripts/Makefile.build obj=arch/arm/mach-imx u-boot-with-spl.imx
mkdir -p spl/
  ./tools/mkimage -n spl/u-boot-spl.cfgout -T imximage -e 0x00908000
-d spl/u-boot-spl.bin SPL >SPL.log  && cat SPL.log
Image Type:   Freescale IMX Boot Image
Image Ver:    2 (i.MX53/6/7 compatible)
Mode:         DCD
Data Size:    73824 Bytes = 72.09 KiB = 0.07 MiB
Load Address: 00907420
Entry Point:  00908000
HAB Blocks:   0x00907400 0x00000000 0x0000fc00
DCD Blocks:   0x00910000 0x0000002c 0x00000004
  arm-linux-gnueabihf-objcopy  -j .text -j .secure_text -j
.secure_data -j .rodata -j .hash -j .data -j .got -j .got.plt -j
.u_boot_list -j .rel.dyn -j .binman_sym_table -j .text_rest -j
.dtb.init.rodata -j .efi_runtime -j .efi_runtime_rel -I binary -O
binary --pad-to=0x11000  SPL u-boot-with-spl.imx && cat u-boot.img >>
u-boot-with-spl.imx || rm -f u-boot-with-spl.imx


What I'm trying to say is that I have followed the correct steps and
this is the LTO change

git diff
diff --git a/configs/imx6dl_mamoj_defconfig b/configs/imx6dl_mamoj_defconfig
index ae27857e6f..4a535012b2 100644
--- a/configs/imx6dl_mamoj_defconfig
+++ b/configs/imx6dl_mamoj_defconfig
@@ -14,6 +14,7 @@ CONFIG_SPL_TEXT_BASE=0x00908000
 CONFIG_SPL_DRIVERS_MISC=y
 CONFIG_IMX_HAB=y
 # CONFIG_CMD_BMODE is not set
+CONFIG_LTO=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_BOOTDELAY=3
 CONFIG_SPL_OS_BOOT=y

Michael


>
> --
> Tom



-- 
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael at amarulasolutions.com
__________________________________

Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info at amarulasolutions.com
www.amarulasolutions.com


More information about the U-Boot mailing list