[PATHv11 33/43] configs/am335x_evm_defconfig: inc SPL size

Tom Rini trini at konsulko.com
Mon Nov 27 17:31:56 CET 2023


On Mon, Nov 27, 2023 at 03:52:50PM +0000, Peter Robinson wrote:
> On Mon, Nov 27, 2023 at 3:32 PM Maxim Uvarov <maxim.uvarov at linaro.org> wrote:
> >
> >
> >
> > On Mon, 27 Nov 2023 at 20:08, Tom Rini <trini at konsulko.com> wrote:
> >>
> >> On Mon, Nov 27, 2023 at 08:06:23PM +0600, Maxim Uvarov wrote:
> >> > On Mon, 27 Nov 2023 at 19:08, Tom Rini <trini at konsulko.com> wrote:
> >> >
> >> > > On Mon, Nov 27, 2023 at 06:57:16PM +0600, Maxim Uvarov wrote:
> >> > >
> >> > > > Increase allowed binary size to fit lwip code.
> >> > > >
> >> > > > Signed-off-by: Maxim Uvarov <maxim.uvarov at linaro.org>
> >> > > > ---
> >> > > >  configs/am335x_evm_defconfig | 1 +
> >> > > >  1 file changed, 1 insertion(+)
> >> > > >
> >> > > > diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
> >> > > > index f048e60f7f..9fd608bd76 100644
> >> > > > --- a/configs/am335x_evm_defconfig
> >> > > > +++ b/configs/am335x_evm_defconfig
> >> > > > @@ -124,3 +124,4 @@ CONFIG_WDT=y
> >> > > >  CONFIG_DYNAMIC_CRC_TABLE=y
> >> > > >  CONFIG_RSA=y
> >> > > >  CONFIG_LZO=y
> >> > > > +CONFIG_SPL_MAX_SIZE=0x29000
> >> > >
> >> > > As probably a problem for other platforms you made this change on too,
> >> > > you can't do this. The link limit is here because that's the limit the
> >> > > hardware (and ROM) imposes.
> >> > >
> >> > > You might need to either:
> >> > > - Figure out how to make lwip even tinier for the SPL case
> >> > > - Limit the old network stack to just for SPL, and a later task is to
> >> > >   reduce what's in the old stack to just what's also needed within SPL.
> >> > >
> >> > >
> >> > Thanks Tom. All these size changes need to be reviewed.  Some of them are
> >> > ok, I think like for x86 or qemu virt, but some of them might not work.
> >> >
> >> > Question - Do we need networking inside SPL rather than in the main binary?
> >> > Is it a real use case?
> >>
> >> Yes, the device supports loading SPL, and then SPL loading U-Boot both
> >> over USB RNDIS as well as regular physical ethernet.
> >>
> >> --
> >> Tom
> >
> >
> > That looks like not a production use case. USB + NET + drivers + EXT4 + NAND + MTD and everything else and trying to fit into SPL.
> > With enabling LTO I still need 4k (without dropping current code). From one point it's too synthetic use case here and might be a historical
> > limitation which we will not see on future boards. From the other point it will be good to not break it somehow....
> 
> Does this still include the old network code?
> 
> Also I wonder if we can have a paired down SPL_LWIP option that
> removes things like PXE and HTTP/wget because none of those would be
> used in the SPL use case as they're all brand new.

To be clear, I am fine with either "old network stack only for SPL" or
"figure out how to pair down lwip to just SPL features". In fact having
said that, the first thing I would suggest is to turn off LTO as it
makes reading the linker map file harder, increase the size limit for
this platform, and take a look at what's being linked in and not
discarded in SPL, for networking, in spl/u-boot-spl.map. Maybe the
answer is that we just need to be more careful about using
IS_ENABLED/CONFIG_IS_ENABLED (and obj-$(CONFIG_$(SPL_)FOO)) in the lwip
series.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20231127/919fab12/attachment.sig>


More information about the U-Boot mailing list