[U-Boot] [PATCH] Revert "env: net: Move eth_parse_enetaddr() to net.c/h"
Heinrich Schuchardt
xypron.glpk at gmx.de
Fri Sep 13 14:07:24 UTC 2019
On 9/13/19 1:48 PM, Ondřej Jirman wrote:
> On Fri, Sep 13, 2019 at 01:19:18PM +0200, Heinrich Schuchardt wrote:
>> On 9/13/19 1:48 AM, megous at megous.com wrote:
>>> From: Ondrej Jirman <megous at megous.com>
>>>
>>> The reverted patch causes linking error with disabled CONFIG_NET:
>>>
>>> cmd/built-in.o: In function `eth_env_get_enetaddr':
>>> u-boot-v2019.10/cmd/nvedit.c:363: undefined reference to `eth_parse_enetaddr'
>>>
>>> Function setup_environment() in board/sunxi/board.c calls
>>> eth_env_set_enetaddr() to setup stable mac address for ethernet interfaces.
>>>
>>> This needs to be implemented and succeed even if net is disabled in u-boot,
>>> as it ensures Linux will not generate random MAC addresses, and picks the
>>> ones provided by u-boot via DT. See fdt_fixup_ethernet().
>>>
>>> This feature is independent of the whole network stack and network drivers
>>> in u-boot.
>>>
>>> This revert fixes the linking error.
>>>
>>> Signed-off-by: Ondrej Jirman <megous at megous.com>
>>> ---
>>> cmd/nvedit.c | 12 ++++++++++++
>>> include/env_internal.h | 11 +++++++++++
>>> include/net.h | 11 -----------
>>> net/net.c | 12 ------------
>>> 4 files changed, 23 insertions(+), 23 deletions(-)
>>>
>>> diff --git a/cmd/nvedit.c b/cmd/nvedit.c
>>> index 1cb0bc1460..399f6d6ce1 100644
>>> --- a/cmd/nvedit.c
>>> +++ b/cmd/nvedit.c
>>> @@ -358,6 +358,18 @@ ulong env_get_hex(const char *varname, ulong default_val)
>>> return value;
>>> }
>>>
>>> +void eth_parse_enetaddr(const char *addr, uint8_t *enetaddr)
>>> +{
>>> + char *end;
>>> + int i;
>>> +
>>> + for (i = 0; i < 6; ++i) {
>>> + enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0;
>>> + if (addr)
>>> + addr = (*end) ? end + 1 : end;
>>> + }
>>> +}
>>> +
>>> int eth_env_get_enetaddr(const char *name, uint8_t *enetaddr)
>>> {
>>> eth_parse_enetaddr(env_get(name), enetaddr);
>>> diff --git a/include/env_internal.h b/include/env_internal.h
>>> index b1ddcb5adf..27eb5bd1e7 100644
>>> --- a/include/env_internal.h
>>> +++ b/include/env_internal.h
>>
>> Please, don't move the definition to env_internal.h but to env.h as
>> board/renesas/sh7753evb/sh7753evb.c and others are using
>> eth_parse_enetaddr().
>>
>> env_internal.h explicitly states "It should not be included by board files".
>>
>> Please, execute Travis CI tests to ensure you do not break any other board.
>
> I haven't found any documentation in the tree or on the u-boot website on
> how to do that.
>
> regards,
> o.
Create a repository with U-Boot on Github (e.g. fork
https://github.com/trini/u-boot). Logon in https://travis-ci.org/ with
your Github account. Allow Travis to access the U-Boot repository. In
settings select "Build pushed requests". Push your commit to Github. Now
Travis should start building (takes about 4 hours).
The file telling Travis what to do is in .travis.yml in U-Boot.
Best regards
Heinrich
More information about the U-Boot
mailing list