[U-Boot] [PATCH v2 19/40] env: net: Move eth_parse_enetaddr() to net.c/h

Ondřej Jirman
2019-09-12T23:39:28Z

On Thu, Sep 12, 2019 at 01:28:10PM -0600, Simon Glass wrote:
> Hi,
>
> On Thu, 12 Sep 2019 at 12:28, Ondřej Jirman <megous@megous.com> wrote:
> >
> > Hi,
> >
> > On Thu, Sep 12, 2019 at 12:22:15PM -0600, Simon Glass wrote:
> > > Hi,
> > >
> > > On Thu, 12 Sep 2019 at 10:59, Ondřej Jirman <megous@megous.com> wrote:
> > > >
> > > > Hello,
> > > >
> > > > On Thu, Aug 01, 2019 at 09:46:54AM -0600, Simon Glass wrote:
> > > > > This function fits better with the network subsystem, so move it.
> > > >
> > > > Unfortunately, this breaks builds without CONFIG_NET. Reverting it
> > > > fixes the issue.
> > > >
> > > > LD u-boot
> > > > cmd/built-in.o: In function `eth_env_get_enetaddr':
> > > > u-boot-v2019.10/cmd/nvedit.c:363: undefined reference to `eth_parse_enetaddr'
> > > > make[1]: *** [u-boot-v2019.10/Makefile:1594: u-boot] Error 1
> > > > make[1]: Leaving directory 'builds/.tmp/u-pc-5.4'
> > > > make: *** [Makefile:148: sub-make] Error 2
> > > >
> > >
> > > Which board is this please?
> >
> > It's orangepi_pc_defconfig with some menuconfig changes to disable CONFIG_NET.
> >
> > The issue is that by moving eth_parse_enetaddr to net/ if net is disabled, this
> > function will not be available to nvedit.c.
> >
> > The board doesn't really matter.
>
> The offending call is in setup_environment() in board/sunxi/board.c so
> I think the board does matter. There might be something else I am
> missing but I cannot see it at present.
>
> Would you like to send a patch?

I'd like to send a patch to revert this change and move eth_parse_enetaddr back.

The call eth_env_set_enetaddr() is correct and should succeed even if net
is disabled in u-boot. It determines the stable MAC address to use for ethernet
interfaces described in DT for Linux to use.

See fdt_fixup_ethernet() that does that.

That feature is independent of the whole network stack and network drivers
in u-boot.

regards,
o.

> Regards,
> Simon