diff mbox

[U-Boot] imx: missing CONFIG_NET after consolidation patches

Message ID 1432718959-28198-1-git-send-email-sbabic@denx.de
State Rejected
Delegated to: Stefano Babic
Headers show

Commit Message

Stefano Babic May 27, 2015, 9:29 a.m. UTC
commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
"Use env callbacks for net variables" has a side effect
on i.MX6 boards because they do not set CONFIG_NET:
the ip address results not set, but it is stored
in the environment.

=> pri ipaddr
ipaddr=192.168.178.66
=> ping 192.168.178.1
*** ERROR: `ipaddr' not set
ping failed; host 192.168.178.1 is not alive

Setting CONFIG_NET solves this issue.

Reported-by: Heiko Schoker <hs@denx.de>
Signed-off-by: Stefano Babic <sbabic@denx.de>
---
 include/configs/mx6_common.h | 3 +++
 1 file changed, 3 insertions(+)

Comments

Heiko Schocher May 28, 2015, 5:28 a.m. UTC | #1
Hello Stefano,

Am 27.05.2015 11:29, schrieb Stefano Babic:
> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
> "Use env callbacks for net variables" has a side effect
> on i.MX6 boards because they do not set CONFIG_NET:
> the ip address results not set, but it is stored
> in the environment.
>
> => pri ipaddr
> ipaddr=192.168.178.66
> => ping 192.168.178.1
> *** ERROR: `ipaddr' not set
> ping failed; host 192.168.178.1 is not alive
>
> Setting CONFIG_NET solves this issue.
>
> Reported-by: Heiko Schoker <hs at denx.de>

s/ok/och ;-)

> Signed-off-by: Stefano Babic <sbabic at denx.de>
> ---
>   include/configs/mx6_common.h | 3 +++
>   1 file changed, 3 insertions(+)

Thanks!

bye,
Heiko
>
> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
> index 233c6d2..3d859cf 100644
> --- a/include/configs/mx6_common.h
> +++ b/include/configs/mx6_common.h
> @@ -105,4 +105,7 @@
>   #define CONFIG_FSL_ESDHC
>   #define CONFIG_FSL_USDHC
>
> +/* NET */
> +#define CONFIG_NET
> +
>   #endif
>
Joe Hershberger May 28, 2015, 5:53 p.m. UTC | #2
Hi Stefano,

On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic at denx.de> wrote:
> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
> "Use env callbacks for net variables" has a side effect
> on i.MX6 boards because they do not set CONFIG_NET:
> the ip address results not set, but it is stored
> in the environment.
>
> => pri ipaddr
> ipaddr=192.168.178.66
> => ping 192.168.178.1
> *** ERROR: `ipaddr' not set
> ping failed; host 192.168.178.1 is not alive
>
> Setting CONFIG_NET solves this issue.
>
> Reported-by: Heiko Schoker <hs at denx.de>
> Signed-off-by: Stefano Babic <sbabic at denx.de>
> ---
>  include/configs/mx6_common.h | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
> index 233c6d2..3d859cf 100644
> --- a/include/configs/mx6_common.h
> +++ b/include/configs/mx6_common.h
> @@ -105,4 +105,7 @@
>  #define CONFIG_FSL_ESDHC
>  #define CONFIG_FSL_USDHC
>
> +/* NET */
> +#define CONFIG_NET

This config was added to Kconfig here:
60296a8 commands: add more command entries in Kconfig
Author: Masahiro Yamada <yamada.m at jp.panasonic.com>
Date:   Thu Nov 13 19:29:08 2014 +0900

Apparently some of the boards that supported NET previously were not
properly added to their defconfigs.

In any case, for this board, you should add the NET config to the
defconfig, not the header.

>  #endif

Thanks,
-Joe
Bin Meng May 29, 2015, 2:33 a.m. UTC | #3
Hi Joe,

On Fri, May 29, 2015 at 1:53 AM, Joe Hershberger
<joe.hershberger@gmail.com> wrote:
> Hi Stefano,
>
> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>> "Use env callbacks for net variables" has a side effect
>> on i.MX6 boards because they do not set CONFIG_NET:
>> the ip address results not set, but it is stored
>> in the environment.
>>
>> => pri ipaddr
>> ipaddr=192.168.178.66
>> => ping 192.168.178.1
>> *** ERROR: `ipaddr' not set
>> ping failed; host 192.168.178.1 is not alive
>>
>> Setting CONFIG_NET solves this issue.
>>
>> Reported-by: Heiko Schoker <hs@denx.de>
>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>> ---
>>  include/configs/mx6_common.h | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>> index 233c6d2..3d859cf 100644
>> --- a/include/configs/mx6_common.h
>> +++ b/include/configs/mx6_common.h
>> @@ -105,4 +105,7 @@
>>  #define CONFIG_FSL_ESDHC
>>  #define CONFIG_FSL_USDHC
>>
>> +/* NET */
>> +#define CONFIG_NET
>
> This config was added to Kconfig here:
>
> 60296a8 commands: add more command entries in Kconfig

Looks CONFIG_NET was added by commit ed36323

commit ed36323f6d217050f82a2200475959b8557a47e4
Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
Date:   Tue Sep 16 16:32:58 2014 +0900

    kconfig: add blank Kconfig files

> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Date:   Thu Nov 13 19:29:08 2014 +0900
>
> Apparently some of the boards that supported NET previously were not
> properly added to their defconfigs.
>
> In any case, for this board, you should add the NET config to the
> defconfig, not the header.
>
>>  #endif
>

But I failed to understand why adding CONFIG_NET could resolve the
"*** ERROR: `ipaddr" not set' problem. A grep of "^CONFIG_NET" gives
me nothing helpful.

Regards,
Bin
Heiko Schocher May 29, 2015, 5:19 a.m. UTC | #4
Hello Bin,

Am 29.05.2015 04:33, schrieb Bin Meng:
> Hi Joe,
>
> On Fri, May 29, 2015 at 1:53 AM, Joe Hershberger
> <joe.hershberger@gmail.com> wrote:
>> Hi Stefano,
>>
>> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>> "Use env callbacks for net variables" has a side effect
>>> on i.MX6 boards because they do not set CONFIG_NET:
>>> the ip address results not set, but it is stored
>>> in the environment.
>>>
>>> => pri ipaddr
>>> ipaddr=192.168.178.66
>>> => ping 192.168.178.1
>>> *** ERROR: `ipaddr' not set
>>> ping failed; host 192.168.178.1 is not alive
>>>
>>> Setting CONFIG_NET solves this issue.
>>>
>>> Reported-by: Heiko Schoker <hs@denx.de>
>>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>>> ---
>>>   include/configs/mx6_common.h | 3 +++
>>>   1 file changed, 3 insertions(+)
>>>
>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>> index 233c6d2..3d859cf 100644
>>> --- a/include/configs/mx6_common.h
>>> +++ b/include/configs/mx6_common.h
>>> @@ -105,4 +105,7 @@
>>>   #define CONFIG_FSL_ESDHC
>>>   #define CONFIG_FSL_USDHC
>>>
>>> +/* NET */
>>> +#define CONFIG_NET
>>
>> This config was added to Kconfig here:
>>
>> 60296a8 commands: add more command entries in Kconfig
>
> Looks CONFIG_NET was added by commit ed36323
>
> commit ed36323f6d217050f82a2200475959b8557a47e4
> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Date:   Tue Sep 16 16:32:58 2014 +0900
>
>      kconfig: add blank Kconfig files
>
>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>> Date:   Thu Nov 13 19:29:08 2014 +0900
>>
>> Apparently some of the boards that supported NET previously were not
>> properly added to their defconfigs.
>>
>> In any case, for this board, you should add the NET config to the
>> defconfig, not the header.
>>
>>>   #endif
>>
>
> But I failed to understand why adding CONFIG_NET could resolve the
> "*** ERROR: `ipaddr" not set' problem. A grep of "^CONFIG_NET" gives
> me nothing helpful.

Reason is the following commit:

commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
Author: Joe Hershberger <joe.hershberger@ni.com>
Date:   Wed May 20 14:27:23 2015 -0500

     net: Use env callbacks for net variables

if CONFIG_NET is not defined, NET_CALLBACKS is empty, which results
in the above error message ...

bye,
Heiko
Heiko Schocher May 29, 2015, 5:28 a.m. UTC | #5
Hello Joe,

Am 28.05.2015 19:53, schrieb Joe Hershberger:
> Hi Stefano,
>
> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>> "Use env callbacks for net variables" has a side effect
>> on i.MX6 boards because they do not set CONFIG_NET:
>> the ip address results not set, but it is stored
>> in the environment.
>>
>> => pri ipaddr
>> ipaddr=192.168.178.66
>> => ping 192.168.178.1
>> *** ERROR: `ipaddr' not set
>> ping failed; host 192.168.178.1 is not alive
>>
>> Setting CONFIG_NET solves this issue.
>>
>> Reported-by: Heiko Schoker <hs@denx.de>
>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>> ---
>>   include/configs/mx6_common.h | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>> index 233c6d2..3d859cf 100644
>> --- a/include/configs/mx6_common.h
>> +++ b/include/configs/mx6_common.h
>> @@ -105,4 +105,7 @@
>>   #define CONFIG_FSL_ESDHC
>>   #define CONFIG_FSL_USDHC
>>
>> +/* NET */
>> +#define CONFIG_NET
>
> This config was added to Kconfig here:
> 60296a8 commands: add more command entries in Kconfig
> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Date:   Thu Nov 13 19:29:08 2014 +0900
>
> Apparently some of the boards that supported NET previously were not
> properly added to their defconfigs.
>
> In any case, for this board, you should add the NET config to the
> defconfig, not the header.

Hmm.. this seems missing for all imx boards ...

$ grep -lr CONFIG_NET configs | xargs grep MX
$

bye,
Heiko
Joe Hershberger May 29, 2015, 6:09 a.m. UTC | #6
Hi Heiko,

On Fri, May 29, 2015 at 12:28 AM, Heiko Schocher <hs@denx.de> wrote:
> Hello Joe,
>
>
> Am 28.05.2015 19:53, schrieb Joe Hershberger:
>>
>> Hi Stefano,
>>
>> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>>>
>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>> "Use env callbacks for net variables" has a side effect
>>> on i.MX6 boards because they do not set CONFIG_NET:
>>> the ip address results not set, but it is stored
>>> in the environment.
>>>
>>> => pri ipaddr
>>> ipaddr=192.168.178.66
>>> => ping 192.168.178.1
>>> *** ERROR: `ipaddr' not set
>>> ping failed; host 192.168.178.1 is not alive
>>>
>>> Setting CONFIG_NET solves this issue.
>>>
>>> Reported-by: Heiko Schoker <hs@denx.de>
>>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>>> ---
>>>   include/configs/mx6_common.h | 3 +++
>>>   1 file changed, 3 insertions(+)
>>>
>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>> index 233c6d2..3d859cf 100644
>>> --- a/include/configs/mx6_common.h
>>> +++ b/include/configs/mx6_common.h
>>> @@ -105,4 +105,7 @@
>>>   #define CONFIG_FSL_ESDHC
>>>   #define CONFIG_FSL_USDHC
>>>
>>> +/* NET */
>>> +#define CONFIG_NET
>>
>>
>> This config was added to Kconfig here:
>> 60296a8 commands: add more command entries in Kconfig
>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>> Date:   Thu Nov 13 19:29:08 2014 +0900
>>
>> Apparently some of the boards that supported NET previously were not
>> properly added to their defconfigs.
>>
>> In any case, for this board, you should add the NET config to the
>> defconfig, not the header.
>
>
> Hmm.. this seems missing for all imx boards ...
>
> $ grep -lr CONFIG_NET configs | xargs grep MX

It seems that in ed36323f, Masahiro added the CONFIG_NET config to
Kconfig, but most things depended on (and defined) CONFIG_CMD_NET,
which he added to Kconfig in 60296a8. In both cases, none of the
boards had either CONFIG_CMD_NET or CONFIG_NET moved to defconfigs. As
a result most boards are lacking complete networking support except
those that happen to have been touched for other reasons related to
networking (such as the CONFIG_NET_RANDOM_ETHADDR patch).

This is made worse by the fact that I used CONFIG_NET (the one missing
in far more boards) in the fd30563 commit.

I will work up a patch that addresses this and restores networking to
all boards that formerly supported networking.  Expect it tomorrow or
so.

Cheers,
-Joe
Heiko Schocher May 29, 2015, 6:15 a.m. UTC | #7
Hello Joe,

Am 29.05.2015 08:09, schrieb Joe Hershberger:
> Hi Heiko,
>
> On Fri, May 29, 2015 at 12:28 AM, Heiko Schocher <hs@denx.de> wrote:
>> Hello Joe,
>>
>>
>> Am 28.05.2015 19:53, schrieb Joe Hershberger:
>>>
>>> Hi Stefano,
>>>
>>> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>>>>
>>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>>> "Use env callbacks for net variables" has a side effect
>>>> on i.MX6 boards because they do not set CONFIG_NET:
>>>> the ip address results not set, but it is stored
>>>> in the environment.
>>>>
>>>> => pri ipaddr
>>>> ipaddr=192.168.178.66
>>>> => ping 192.168.178.1
>>>> *** ERROR: `ipaddr' not set
>>>> ping failed; host 192.168.178.1 is not alive
>>>>
>>>> Setting CONFIG_NET solves this issue.
>>>>
>>>> Reported-by: Heiko Schoker <hs@denx.de>
>>>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>>>> ---
>>>>    include/configs/mx6_common.h | 3 +++
>>>>    1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>>> index 233c6d2..3d859cf 100644
>>>> --- a/include/configs/mx6_common.h
>>>> +++ b/include/configs/mx6_common.h
>>>> @@ -105,4 +105,7 @@
>>>>    #define CONFIG_FSL_ESDHC
>>>>    #define CONFIG_FSL_USDHC
>>>>
>>>> +/* NET */
>>>> +#define CONFIG_NET
>>>
>>>
>>> This config was added to Kconfig here:
>>> 60296a8 commands: add more command entries in Kconfig
>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>> Date:   Thu Nov 13 19:29:08 2014 +0900
>>>
>>> Apparently some of the boards that supported NET previously were not
>>> properly added to their defconfigs.
>>>
>>> In any case, for this board, you should add the NET config to the
>>> defconfig, not the header.
>>
>>
>> Hmm.. this seems missing for all imx boards ...
>>
>> $ grep -lr CONFIG_NET configs | xargs grep MX
>
> It seems that in ed36323f, Masahiro added the CONFIG_NET config to
> Kconfig, but most things depended on (and defined) CONFIG_CMD_NET,
> which he added to Kconfig in 60296a8. In both cases, none of the
> boards had either CONFIG_CMD_NET or CONFIG_NET moved to defconfigs. As
> a result most boards are lacking complete networking support except
> those that happen to have been touched for other reasons related to
> networking (such as the CONFIG_NET_RANDOM_ETHADDR patch).
>
> This is made worse by the fact that I used CONFIG_NET (the one missing
> in far more boards) in the fd30563 commit.

Uh..

> I will work up a patch that addresses this and restores networking to
> all boards that formerly supported networking.  Expect it tomorrow or
> so.

Ok, thanks!

bye,
Heiko
Bin Meng May 29, 2015, 7:16 a.m. UTC | #8
Hi Heiko,

On Fri, May 29, 2015 at 1:19 PM, Heiko Schocher <hs@denx.de> wrote:
> Hello Bin,
>
>
> Am 29.05.2015 04:33, schrieb Bin Meng:
>>
>> Hi Joe,
>>
>> On Fri, May 29, 2015 at 1:53 AM, Joe Hershberger
>> <joe.hershberger@gmail.com> wrote:
>>>
>>> Hi Stefano,
>>>
>>> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>>>>
>>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>>> "Use env callbacks for net variables" has a side effect
>>>> on i.MX6 boards because they do not set CONFIG_NET:
>>>> the ip address results not set, but it is stored
>>>> in the environment.
>>>>
>>>> => pri ipaddr
>>>> ipaddr=192.168.178.66
>>>> => ping 192.168.178.1
>>>> *** ERROR: `ipaddr' not set
>>>> ping failed; host 192.168.178.1 is not alive
>>>>
>>>> Setting CONFIG_NET solves this issue.
>>>>
>>>> Reported-by: Heiko Schoker <hs@denx.de>
>>>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>>>> ---
>>>>   include/configs/mx6_common.h | 3 +++
>>>>   1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>>> index 233c6d2..3d859cf 100644
>>>> --- a/include/configs/mx6_common.h
>>>> +++ b/include/configs/mx6_common.h
>>>> @@ -105,4 +105,7 @@
>>>>   #define CONFIG_FSL_ESDHC
>>>>   #define CONFIG_FSL_USDHC
>>>>
>>>> +/* NET */
>>>> +#define CONFIG_NET
>>>
>>>
>>> This config was added to Kconfig here:
>>>
>>> 60296a8 commands: add more command entries in Kconfig
>>
>>
>> Looks CONFIG_NET was added by commit ed36323
>>
>> commit ed36323f6d217050f82a2200475959b8557a47e4
>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>> Date:   Tue Sep 16 16:32:58 2014 +0900
>>
>>      kconfig: add blank Kconfig files
>>
>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>> Date:   Thu Nov 13 19:29:08 2014 +0900
>>>
>>> Apparently some of the boards that supported NET previously were not
>>> properly added to their defconfigs.
>>>
>>> In any case, for this board, you should add the NET config to the
>>> defconfig, not the header.
>>>
>>>>   #endif
>>>
>>>
>>
>> But I failed to understand why adding CONFIG_NET could resolve the
>> "*** ERROR: `ipaddr" not set' problem. A grep of "^CONFIG_NET" gives
>> me nothing helpful.
>
>
> Reason is the following commit:
>
> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
> Author: Joe Hershberger <joe.hershberger@ni.com>
> Date:   Wed May 20 14:27:23 2015 -0500
>
>     net: Use env callbacks for net variables
>
> if CONFIG_NET is not defined, NET_CALLBACKS is empty, which results
> in the above error message ...

Ah, yes! I was confused by Joe's comments regarding to CONFIG_NET
being the cause of this.

My understanding is that since we already introduced CONFIG_NET, we
should not have these network commands (ping, tftp) built in if
CONFIG_NET is not there. Looks CONFIG_NET is only used in
NET_CALLBACKS. Is CONFIG_NET really necessary here?

+#ifdef CONFIG_NET
+#define NET_CALLBACKS \
+       "bootfile:bootfile," \
+       "ipaddr:ipaddr," \
+       "gatewayip:gatewayip," \
+       "netmask:netmask," \
+       "serverip:serverip," \
+       "nvlan:nvlan," \
+       "vlan:vlan," \
+       DNS_CALLBACK
+#else
+#define NET_CALLBACKS
+#endif

Regards,
Bin
Stefano Babic May 29, 2015, 7:31 a.m. UTC | #9
Hi Joe,

On 29/05/2015 08:09, Joe Hershberger wrote:
>> Hmm.. this seems missing for all imx boards ...
>>
>> $ grep -lr CONFIG_NET configs | xargs grep MX
> 
> It seems that in ed36323f, Masahiro added the CONFIG_NET config to
> Kconfig, but most things depended on (and defined) CONFIG_CMD_NET,
> which he added to Kconfig in 60296a8. In both cases, none of the
> boards had either CONFIG_CMD_NET or CONFIG_NET moved to defconfigs. As
> a result most boards are lacking complete networking support except
> those that happen to have been touched for other reasons related to
> networking (such as the CONFIG_NET_RANDOM_ETHADDR patch).

ok, got it.

> 
> This is made worse by the fact that I used CONFIG_NET (the one missing
> in far more boards) in the fd30563 commit.
> 
> I will work up a patch that addresses this and restores networking to
> all boards that formerly supported networking.  Expect it tomorrow or
> so.

Thanks !

Best regards,
Stefano
Joe Hershberger May 29, 2015, 7:43 a.m. UTC | #10
Hi Bin,

On Fri, May 29, 2015 at 2:16 AM, Bin Meng <bmeng.cn@gmail.com> wrote:
> Hi Heiko,
>
> On Fri, May 29, 2015 at 1:19 PM, Heiko Schocher <hs@denx.de> wrote:
>> Hello Bin,
>>
>>
>> Am 29.05.2015 04:33, schrieb Bin Meng:
>>>
>>> Hi Joe,
>>>
>>> On Fri, May 29, 2015 at 1:53 AM, Joe Hershberger
>>> <joe.hershberger@gmail.com> wrote:
>>>>
>>>> Hi Stefano,
>>>>
>>>> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>>>>>
>>>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>>>> "Use env callbacks for net variables" has a side effect
>>>>> on i.MX6 boards because they do not set CONFIG_NET:
>>>>> the ip address results not set, but it is stored
>>>>> in the environment.
>>>>>
>>>>> => pri ipaddr
>>>>> ipaddr=192.168.178.66
>>>>> => ping 192.168.178.1
>>>>> *** ERROR: `ipaddr' not set
>>>>> ping failed; host 192.168.178.1 is not alive
>>>>>
>>>>> Setting CONFIG_NET solves this issue.
>>>>>
>>>>> Reported-by: Heiko Schoker <hs@denx.de>
>>>>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>>>>> ---
>>>>>   include/configs/mx6_common.h | 3 +++
>>>>>   1 file changed, 3 insertions(+)
>>>>>
>>>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>>>> index 233c6d2..3d859cf 100644
>>>>> --- a/include/configs/mx6_common.h
>>>>> +++ b/include/configs/mx6_common.h
>>>>> @@ -105,4 +105,7 @@
>>>>>   #define CONFIG_FSL_ESDHC
>>>>>   #define CONFIG_FSL_USDHC
>>>>>
>>>>> +/* NET */
>>>>> +#define CONFIG_NET
>>>>
>>>>
>>>> This config was added to Kconfig here:
>>>>
>>>> 60296a8 commands: add more command entries in Kconfig
>>>
>>>
>>> Looks CONFIG_NET was added by commit ed36323
>>>
>>> commit ed36323f6d217050f82a2200475959b8557a47e4
>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>> Date:   Tue Sep 16 16:32:58 2014 +0900
>>>
>>>      kconfig: add blank Kconfig files
>>>
>>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>>> Date:   Thu Nov 13 19:29:08 2014 +0900
>>>>
>>>> Apparently some of the boards that supported NET previously were not
>>>> properly added to their defconfigs.
>>>>
>>>> In any case, for this board, you should add the NET config to the
>>>> defconfig, not the header.
>>>>
>>>>>   #endif
>>>>
>>>>
>>>
>>> But I failed to understand why adding CONFIG_NET could resolve the
>>> "*** ERROR: `ipaddr" not set' problem. A grep of "^CONFIG_NET" gives
>>> me nothing helpful.
>>
>>
>> Reason is the following commit:
>>
>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>> Author: Joe Hershberger <joe.hershberger@ni.com>
>> Date:   Wed May 20 14:27:23 2015 -0500
>>
>>     net: Use env callbacks for net variables
>>
>> if CONFIG_NET is not defined, NET_CALLBACKS is empty, which results
>> in the above error message ...
>
> Ah, yes! I was confused by Joe's comments regarding to CONFIG_NET
> being the cause of this.
>
> My understanding is that since we already introduced CONFIG_NET, we
> should not have these network commands (ping, tftp) built in if
> CONFIG_NET is not there.

I think you are thinking of CONFIG_CMD_NET... if it is not defined,
then you will not have those commands. We are in a transitional period
and all of the NET features vs. the commands are not using the new /
appropriate configs yet. Many are not properly moved over to Kconfig.
We'll get there, but this change to Kconfig is fairly incomplete.

> Looks CONFIG_NET is only used in
> NET_CALLBACKS. Is CONFIG_NET really necessary here?

Yes... well either CONFIG_NET or CONFIG_CMD_NET. They should be
basically equivalent.

> +#ifdef CONFIG_NET
> +#define NET_CALLBACKS \
> +       "bootfile:bootfile," \
> +       "ipaddr:ipaddr," \
> +       "gatewayip:gatewayip," \
> +       "netmask:netmask," \
> +       "serverip:serverip," \
> +       "nvlan:nvlan," \
> +       "vlan:vlan," \
> +       DNS_CALLBACK
> +#else
> +#define NET_CALLBACKS
> +#endif

Cheers,
-Joe
Simon Glass June 1, 2015, 5:14 p.m. UTC | #11
Hi,

On 29 May 2015 at 01:43, Joe Hershberger <joe.hershberger@gmail.com> wrote:
> Hi Bin,
>
> On Fri, May 29, 2015 at 2:16 AM, Bin Meng <bmeng.cn@gmail.com> wrote:
>> Hi Heiko,
>>
>> On Fri, May 29, 2015 at 1:19 PM, Heiko Schocher <hs@denx.de> wrote:
>>> Hello Bin,
>>>
>>>
>>> Am 29.05.2015 04:33, schrieb Bin Meng:
>>>>
>>>> Hi Joe,
>>>>
>>>> On Fri, May 29, 2015 at 1:53 AM, Joe Hershberger
>>>> <joe.hershberger@gmail.com> wrote:
>>>>>
>>>>> Hi Stefano,
>>>>>
>>>>> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>>>>>>
>>>>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>>>>> "Use env callbacks for net variables" has a side effect
>>>>>> on i.MX6 boards because they do not set CONFIG_NET:
>>>>>> the ip address results not set, but it is stored
>>>>>> in the environment.
>>>>>>
>>>>>> => pri ipaddr
>>>>>> ipaddr=192.168.178.66
>>>>>> => ping 192.168.178.1
>>>>>> *** ERROR: `ipaddr' not set
>>>>>> ping failed; host 192.168.178.1 is not alive
>>>>>>
>>>>>> Setting CONFIG_NET solves this issue.
>>>>>>
>>>>>> Reported-by: Heiko Schoker <hs@denx.de>
>>>>>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>>>>>> ---
>>>>>>   include/configs/mx6_common.h | 3 +++
>>>>>>   1 file changed, 3 insertions(+)
>>>>>>
>>>>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>>>>> index 233c6d2..3d859cf 100644
>>>>>> --- a/include/configs/mx6_common.h
>>>>>> +++ b/include/configs/mx6_common.h
>>>>>> @@ -105,4 +105,7 @@
>>>>>>   #define CONFIG_FSL_ESDHC
>>>>>>   #define CONFIG_FSL_USDHC
>>>>>>
>>>>>> +/* NET */
>>>>>> +#define CONFIG_NET
>>>>>
>>>>>
>>>>> This config was added to Kconfig here:
>>>>>
>>>>> 60296a8 commands: add more command entries in Kconfig
>>>>
>>>>
>>>> Looks CONFIG_NET was added by commit ed36323
>>>>
>>>> commit ed36323f6d217050f82a2200475959b8557a47e4
>>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>>> Date:   Tue Sep 16 16:32:58 2014 +0900
>>>>
>>>>      kconfig: add blank Kconfig files
>>>>
>>>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>>>> Date:   Thu Nov 13 19:29:08 2014 +0900
>>>>>
>>>>> Apparently some of the boards that supported NET previously were not
>>>>> properly added to their defconfigs.
>>>>>
>>>>> In any case, for this board, you should add the NET config to the
>>>>> defconfig, not the header.
>>>>>
>>>>>>   #endif
>>>>>
>>>>>
>>>>
>>>> But I failed to understand why adding CONFIG_NET could resolve the
>>>> "*** ERROR: `ipaddr" not set' problem. A grep of "^CONFIG_NET" gives
>>>> me nothing helpful.
>>>
>>>
>>> Reason is the following commit:
>>>
>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>> Author: Joe Hershberger <joe.hershberger@ni.com>
>>> Date:   Wed May 20 14:27:23 2015 -0500
>>>
>>>     net: Use env callbacks for net variables
>>>
>>> if CONFIG_NET is not defined, NET_CALLBACKS is empty, which results
>>> in the above error message ...
>>
>> Ah, yes! I was confused by Joe's comments regarding to CONFIG_NET
>> being the cause of this.
>>
>> My understanding is that since we already introduced CONFIG_NET, we
>> should not have these network commands (ping, tftp) built in if
>> CONFIG_NET is not there.
>
> I think you are thinking of CONFIG_CMD_NET... if it is not defined,
> then you will not have those commands. We are in a transitional period
> and all of the NET features vs. the commands are not using the new /
> appropriate configs yet. Many are not properly moved over to Kconfig.
> We'll get there, but this change to Kconfig is fairly incomplete.
>
>> Looks CONFIG_NET is only used in
>> NET_CALLBACKS. Is CONFIG_NET really necessary here?
>
> Yes... well either CONFIG_NET or CONFIG_CMD_NET. They should be
> basically equivalent.

Any ideas on how to resolving this?

Regards,
Simon
Joe Hershberger June 1, 2015, 5:17 p.m. UTC | #12
Hi Simon,

On Mon, Jun 1, 2015 at 12:14 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi,
>
> On 29 May 2015 at 01:43, Joe Hershberger <joe.hershberger@gmail.com> wrote:
>> Hi Bin,
>>
>> On Fri, May 29, 2015 at 2:16 AM, Bin Meng <bmeng.cn@gmail.com> wrote:
>>> Hi Heiko,
>>>
>>> On Fri, May 29, 2015 at 1:19 PM, Heiko Schocher <hs@denx.de> wrote:
>>>> Hello Bin,
>>>>
>>>>
>>>> Am 29.05.2015 04:33, schrieb Bin Meng:
>>>>>
>>>>> Hi Joe,
>>>>>
>>>>> On Fri, May 29, 2015 at 1:53 AM, Joe Hershberger
>>>>> <joe.hershberger@gmail.com> wrote:
>>>>>>
>>>>>> Hi Stefano,
>>>>>>
>>>>>> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>>>>>>>
>>>>>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>>>>>> "Use env callbacks for net variables" has a side effect
>>>>>>> on i.MX6 boards because they do not set CONFIG_NET:
>>>>>>> the ip address results not set, but it is stored
>>>>>>> in the environment.
>>>>>>>
>>>>>>> => pri ipaddr
>>>>>>> ipaddr=192.168.178.66
>>>>>>> => ping 192.168.178.1
>>>>>>> *** ERROR: `ipaddr' not set
>>>>>>> ping failed; host 192.168.178.1 is not alive
>>>>>>>
>>>>>>> Setting CONFIG_NET solves this issue.
>>>>>>>
>>>>>>> Reported-by: Heiko Schoker <hs@denx.de>
>>>>>>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>>>>>>> ---
>>>>>>>   include/configs/mx6_common.h | 3 +++
>>>>>>>   1 file changed, 3 insertions(+)
>>>>>>>
>>>>>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>>>>>> index 233c6d2..3d859cf 100644
>>>>>>> --- a/include/configs/mx6_common.h
>>>>>>> +++ b/include/configs/mx6_common.h
>>>>>>> @@ -105,4 +105,7 @@
>>>>>>>   #define CONFIG_FSL_ESDHC
>>>>>>>   #define CONFIG_FSL_USDHC
>>>>>>>
>>>>>>> +/* NET */
>>>>>>> +#define CONFIG_NET
>>>>>>
>>>>>>
>>>>>> This config was added to Kconfig here:
>>>>>>
>>>>>> 60296a8 commands: add more command entries in Kconfig
>>>>>
>>>>>
>>>>> Looks CONFIG_NET was added by commit ed36323
>>>>>
>>>>> commit ed36323f6d217050f82a2200475959b8557a47e4
>>>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>>>> Date:   Tue Sep 16 16:32:58 2014 +0900
>>>>>
>>>>>      kconfig: add blank Kconfig files
>>>>>
>>>>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>>>>> Date:   Thu Nov 13 19:29:08 2014 +0900
>>>>>>
>>>>>> Apparently some of the boards that supported NET previously were not
>>>>>> properly added to their defconfigs.
>>>>>>
>>>>>> In any case, for this board, you should add the NET config to the
>>>>>> defconfig, not the header.
>>>>>>
>>>>>>>   #endif
>>>>>>
>>>>>>
>>>>>
>>>>> But I failed to understand why adding CONFIG_NET could resolve the
>>>>> "*** ERROR: `ipaddr" not set' problem. A grep of "^CONFIG_NET" gives
>>>>> me nothing helpful.
>>>>
>>>>
>>>> Reason is the following commit:
>>>>
>>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>>> Author: Joe Hershberger <joe.hershberger@ni.com>
>>>> Date:   Wed May 20 14:27:23 2015 -0500
>>>>
>>>>     net: Use env callbacks for net variables
>>>>
>>>> if CONFIG_NET is not defined, NET_CALLBACKS is empty, which results
>>>> in the above error message ...
>>>
>>> Ah, yes! I was confused by Joe's comments regarding to CONFIG_NET
>>> being the cause of this.
>>>
>>> My understanding is that since we already introduced CONFIG_NET, we
>>> should not have these network commands (ping, tftp) built in if
>>> CONFIG_NET is not there.
>>
>> I think you are thinking of CONFIG_CMD_NET... if it is not defined,
>> then you will not have those commands. We are in a transitional period
>> and all of the NET features vs. the commands are not using the new /
>> appropriate configs yet. Many are not properly moved over to Kconfig.
>> We'll get there, but this change to Kconfig is fairly incomplete.
>>
>>> Looks CONFIG_NET is only used in
>>> NET_CALLBACKS. Is CONFIG_NET really necessary here?
>>
>> Yes... well either CONFIG_NET or CONFIG_CMD_NET. They should be
>> basically equivalent.
>
> Any ideas on how to resolving this?

Sorry, forgot Cc's on this. Here's the patch:
https://patchwork.ozlabs.org/patch/478414/

Michal wants a subject change. I have a new version, but I think I'm
gonna just push it to u-boot-net.git and send a pull request since the
patches are so big.

Cheers,
-Joe
Bin Meng June 2, 2015, 12:41 a.m. UTC | #13
Hi Simon,

On Tue, Jun 2, 2015 at 1:14 AM, Simon Glass <sjg@chromium.org> wrote:
> Hi,
>
> On 29 May 2015 at 01:43, Joe Hershberger <joe.hershberger@gmail.com> wrote:
>> Hi Bin,
>>
>> On Fri, May 29, 2015 at 2:16 AM, Bin Meng <bmeng.cn@gmail.com> wrote:
>>> Hi Heiko,
>>>
>>> On Fri, May 29, 2015 at 1:19 PM, Heiko Schocher <hs@denx.de> wrote:
>>>> Hello Bin,
>>>>
>>>>
>>>> Am 29.05.2015 04:33, schrieb Bin Meng:
>>>>>
>>>>> Hi Joe,
>>>>>
>>>>> On Fri, May 29, 2015 at 1:53 AM, Joe Hershberger
>>>>> <joe.hershberger@gmail.com> wrote:
>>>>>>
>>>>>> Hi Stefano,
>>>>>>
>>>>>> On Wed, May 27, 2015 at 4:29 AM, Stefano Babic <sbabic@denx.de> wrote:
>>>>>>>
>>>>>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>>>>>> "Use env callbacks for net variables" has a side effect
>>>>>>> on i.MX6 boards because they do not set CONFIG_NET:
>>>>>>> the ip address results not set, but it is stored
>>>>>>> in the environment.
>>>>>>>
>>>>>>> => pri ipaddr
>>>>>>> ipaddr=192.168.178.66
>>>>>>> => ping 192.168.178.1
>>>>>>> *** ERROR: `ipaddr' not set
>>>>>>> ping failed; host 192.168.178.1 is not alive
>>>>>>>
>>>>>>> Setting CONFIG_NET solves this issue.
>>>>>>>
>>>>>>> Reported-by: Heiko Schoker <hs@denx.de>
>>>>>>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>>>>>>> ---
>>>>>>>   include/configs/mx6_common.h | 3 +++
>>>>>>>   1 file changed, 3 insertions(+)
>>>>>>>
>>>>>>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>>>>>>> index 233c6d2..3d859cf 100644
>>>>>>> --- a/include/configs/mx6_common.h
>>>>>>> +++ b/include/configs/mx6_common.h
>>>>>>> @@ -105,4 +105,7 @@
>>>>>>>   #define CONFIG_FSL_ESDHC
>>>>>>>   #define CONFIG_FSL_USDHC
>>>>>>>
>>>>>>> +/* NET */
>>>>>>> +#define CONFIG_NET
>>>>>>
>>>>>>
>>>>>> This config was added to Kconfig here:
>>>>>>
>>>>>> 60296a8 commands: add more command entries in Kconfig
>>>>>
>>>>>
>>>>> Looks CONFIG_NET was added by commit ed36323
>>>>>
>>>>> commit ed36323f6d217050f82a2200475959b8557a47e4
>>>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>>>> Date:   Tue Sep 16 16:32:58 2014 +0900
>>>>>
>>>>>      kconfig: add blank Kconfig files
>>>>>
>>>>>> Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
>>>>>> Date:   Thu Nov 13 19:29:08 2014 +0900
>>>>>>
>>>>>> Apparently some of the boards that supported NET previously were not
>>>>>> properly added to their defconfigs.
>>>>>>
>>>>>> In any case, for this board, you should add the NET config to the
>>>>>> defconfig, not the header.
>>>>>>
>>>>>>>   #endif
>>>>>>
>>>>>>
>>>>>
>>>>> But I failed to understand why adding CONFIG_NET could resolve the
>>>>> "*** ERROR: `ipaddr" not set' problem. A grep of "^CONFIG_NET" gives
>>>>> me nothing helpful.
>>>>
>>>>
>>>> Reason is the following commit:
>>>>
>>>> commit fd3056337e6fcc140f400e11edd33f6f1cb37de1
>>>> Author: Joe Hershberger <joe.hershberger@ni.com>
>>>> Date:   Wed May 20 14:27:23 2015 -0500
>>>>
>>>>     net: Use env callbacks for net variables
>>>>
>>>> if CONFIG_NET is not defined, NET_CALLBACKS is empty, which results
>>>> in the above error message ...
>>>
>>> Ah, yes! I was confused by Joe's comments regarding to CONFIG_NET
>>> being the cause of this.
>>>
>>> My understanding is that since we already introduced CONFIG_NET, we
>>> should not have these network commands (ping, tftp) built in if
>>> CONFIG_NET is not there.
>>
>> I think you are thinking of CONFIG_CMD_NET... if it is not defined,
>> then you will not have those commands. We are in a transitional period
>> and all of the NET features vs. the commands are not using the new /
>> appropriate configs yet. Many are not properly moved over to Kconfig.
>> We'll get there, but this change to Kconfig is fairly incomplete.
>>
>>> Looks CONFIG_NET is only used in
>>> NET_CALLBACKS. Is CONFIG_NET really necessary here?
>>
>> Yes... well either CONFIG_NET or CONFIG_CMD_NET. They should be
>> basically equivalent.
>
> Any ideas on how to resolving this?
>

I will send a patch doing the same fix that Joe did on the qemu-x86 soon.

Regards,
Bin
diff mbox

Patch

diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
index 233c6d2..3d859cf 100644
--- a/include/configs/mx6_common.h
+++ b/include/configs/mx6_common.h
@@ -105,4 +105,7 @@ 
 #define CONFIG_FSL_ESDHC
 #define CONFIG_FSL_USDHC
 
+/* NET */
+#define CONFIG_NET
+
 #endif