[RFC PATCH u-boot 00/12] U-Boot LTO (Sandbox + ARM Nokia RX-51)
Marek Behun
marek.behun at nic.cz
Sun Mar 7 05:06:24 CET 2021
On Sat, 6 Mar 2021 21:45:02 -0600
Adam Ford <aford173 at gmail.com> wrote:
> On Sat, Mar 6, 2021 at 3:49 PM Marek Behun <marek.behun at nic.cz> wrote:
> >
> > On Sat, 6 Mar 2021 22:38:52 +0100
> > Pali Rohár <pali at kernel.org> wrote:
> >
> > > On Saturday 06 March 2021 22:19:22 Marek Behun wrote:
> > > > On Sat, 6 Mar 2021 22:00:45 +0100
> > > > Pali Rohár <pali at kernel.org> wrote:
> > > >
> > > > > On Saturday 06 March 2021 21:54:00 Marek Behun wrote:
> > > > > > On Sat, 6 Mar 2021 21:41:14 +0100
> > > > > > Pali Rohár <pali at kernel.org> wrote:
> > > > > >
> > > > > > > On Saturday 06 March 2021 15:08:13 Tom Rini wrote:
> > > > > > > > Perhaps we'll default to yes on some SoCs. The omap3 thing is a bit
> > > > > > > > odd, but we'll see what happens on real N900 hardware.
> > > > > > >
> > > > > > > Hello!
> > > > > > >
> > > > > > > Could you send me a link to git repo / branch and tell me from which
> > > > > > > commit should I do tests on real N900 hardware? I will test it and let
> > > > > > > you know results.
> > > > > > >
> > > > > > > Adding maemo ML to the loop as on the maemo list are more people with
> > > > > > > N900 HW and U-Boot.
> > > > > >
> > > > > > https://github.com/elkablo/u-boot branch lto
> > > > >
> > > > > Sorry, compilation is failing :-(
> > > > >
> > > > > $ git clone https://github.com/elkablo/u-boot -b lto --depth=100
> > > > > Cloning into 'u-boot'...
> > > > > remote: Enumerating objects: 33644, done.
> > > > > remote: Counting objects: 100% (33644/33644), done.
> > > > > remote: Compressing objects: 100% (20116/20116), done.
> > > > > remote: Total 33644 (delta 15838), reused 19947 (delta 13018), pack-reused 0
> > > > > Receiving objects: 100% (33644/33644), 26.28 MiB | 10.21 MiB/s, done.
> > > > > Resolving deltas: 100% (15838/15838), done.
> > > > >
> > > > > $ cd u-boot
> > > > >
> > > > > $ make CROSS_COMPILE=arm-linux-gnueabi- nokia_rx51_config
> > > > > HOSTCC scripts/basic/fixdep
> > > > > HOSTCC scripts/kconfig/conf.o
> > > > > YACC scripts/kconfig/zconf.tab.c
> > > > > LEX scripts/kconfig/zconf.lex.c
> > > > > HOSTCC scripts/kconfig/zconf.tab.o
> > > > > HOSTLD scripts/kconfig/conf
> > > > > #
> > > > > # configuration written to .config
> > > > > #
> > > > >
> > > > > $ make CROSS_COMPILE=arm-linux-gnueabi- u-boot.bin
> > > > > ...
> > > > > LTO u-boot
> > > > > /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: DWARF error: offset (1258291444) greater than or equal to .debug_str size (676)
> > > > > /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: DWARF error: offset (1459618036) greater than or equal to .debug_str size (676)
> > > > > /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: DWARF error: could not find abbrev number 48028
> > > > > /tmp/cc8l0QSQ.ltrans3.ltrans.o: in function `omap3_set_aux_cr_secure':
> > > > > <artificial>:(.text+0x6eb8): undefined reference to `do_omap3_emu_romcode_call'
> > > > > collect2: error: ld returned 1 exit status
> > > > > make: *** [Makefile:1808: u-boot] Error 1
> > > > >
> > > > >
> > > > > I'm using arm-linux-gnueabi-gcc version 8.3.0 which is available in
> > > > > current Debian stable (Debian 10 Buster).
> > > >
> > > > Fixed and force-pushed, it seems ar needs the P flag that Bin Meng
> > > > questioned.
> > >
> > > Problem is fixed, now compilation succeeded. u-boot.bin has size 243788
> > > bytes.
> > >
> > > And seems that compiled U-Boot is working fine!
> > >
> > > Nokia RX-51 # version
> > > U-Boot 2021.04-rc3-00338-g88d0a5042c97 (Mar 06 2021 - 22:19:08 +0100)
> > >
> > > arm-linux-gnueabi-gcc (Debian 8.3.0-2) 8.3.0
> > > GNU ld (GNU Binutils for Debian) 2.31.1
> > >
> > > I can send binary files via usbtty and 'loadb' command. I can boot linux
> > > kernel via 'bootm'. I can chainload to another U-Boot binary (loaded by
> > > 'loadb') via 'go' command. Also 'ext4ls' and 'fatls' commands are
> > > working. Also 'onenand dump bootloader' is working.
> > >
> > > Do you need something more to test?
> > >
> > > If not you can add my 'Tested-by: Pali Rohár <pali at kernel.org>' line for
> > > all patches which are up to the commit 88d0a5042c97.
> > >
> > > Good job!
> >
> > Thanks.
> >
> > I am still working on these patches, since I have discovered some more
> > defconfigs which fail to build for one reason or another.
> >
> > I will send a patch enabling LTO for Nokia N900 though.
> >
>
> I have my DM3730 booting now
>
> diff --git a/arch/arm/mach-omap2/omap3/Makefile
> b/arch/arm/mach-omap2/omap3/Makefile
> index 91ed8ebc9f..4c96c81bf7 100644
> --- a/arch/arm/mach-omap2/omap3/Makefile
> +++ b/arch/arm/mach-omap2/omap3/Makefile
> @@ -6,6 +6,8 @@
> # If clock.c is compiled for Thumb2, then it fails on OMAP3530
> CFLAGS_clock.o += -marm
>
> +CFLAGS_REMOVE_board.o := $(LTO_CFLAGS)
> +
> obj-y := lowlevel_init.o
>
> obj-y += board.o
>
> The board.c file has a few functions with assembly code and some
> functions called by assembly. I wonder if there needs to be some
> compiler flags added to it to ensure it boots. I am not as
> experienced with compiler directives and Makefile tweaks, but I am
> willing to try stuff if people have suggestions.
>
> However, at least for now, the omap3_logic board works. I haven't
> tried the AM3517 yet. It's similar to the omap3 with a different
> memory controller so I'm more concerned about it than the OMAP3530.
> If I have time tomorrow, I'll run some tests on the AM3517.
>
> adam
Adding to my patches, thanks.
Marek
More information about the U-Boot
mailing list