Hi Hannes, On Mon, Jun 22, 2015 at 7:23 AM, Hannes Schmelzer <han...@schmelzer.or.at> wrote: > Hi joe, > > you did introduce callbacks on setting up ip,dns, ... in net.c > > Why it did become necessary to do following ? > > if (flags & H_PROGRAMMATIC) > return 0;
Because the callback should not be updating the network stack variables when updated by the network stack (such as when DHCP sets the ipaddr). > I have actually trouble with this, because my code in > board/BuR/kwb/board.c doesn't work anymore as expected. > > /* setup default IP, in case if there is nothing in environment */ > if (!getenv("ipaddr")) { > setenv("ipaddr", "192.168.60.1"); > setenv("netmask", "255.255.255.0"); > setenv("serverip", "192.168.60.254"); > setenv("gatewayip", "192.168.60.254"); > puts("net: had no IP! made default setup.\n"); > } > > Purpose of this was/is to setup a default ip-address if nothing in > environment has been set yet. Any reason not to use link-local or DHCP in this case? What are the chances that the board is on a compatible network and no one else has that address? I recommend you remove this code unless you have a really good reason. > do you (or somebody else) have an idea how to work around this ? You can set the ipaddr as a user would... through the command line. I actually had to change the way env edit worked in 94b467b14ed908c89a0780256e89b375aa3cf3ef (env: Distinguish finer between source of env change). You can do something similar to what it does now. + const char * const _argv[4] = { "setenv", argv[1], buffer, + NULL }; + + return _do_env_set(0, 3, (char * const *)_argv, H_INTERACTIVE); Cheers, -Joe _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot