On Mon, Sep 19, 2016 at 06:03:48PM +0200, Enrico Jorns wrote: > This sets a `ip=dhcp` or > `ip=<clientip>:<serverip>:<gatewayip>:<netmaskip>::<iface>:` bootarg for > the network device upon execution of 'ifup'. This is the only point > where we can distinguish between a static ip and a dhcp-based network > setup and thus set a valid bootarg options as it will be required for > nfs boot, for example. > > Signed-off-by: Enrico Jorns <ejo@xxxxxxxxxxxxxx> Applied both with two little adjustments > --- a/net/eth.c > +++ b/net/eth.c > @@ -384,6 +384,7 @@ int eth_register(struct eth_device *edev) > dev_add_param_ip(dev, "netmask", NULL, NULL, &edev->netmask, edev); > dev_add_param_mac(dev, "ethaddr", eth_param_set_ethaddr, NULL, > edev->ethaddr, edev); > + dev_add_param_string(dev, "linux.bootargs", NULL, NULL, &edev->bootarg, NULL); Added a edev->bootarg = xstrdup(""); here to not have a <NULL> string in the variable when not initialized. > > if (edev->init) > edev->init(edev); > diff --git a/net/ifup.c b/net/ifup.c > index 30ac3f5..618eb8a 100644 > --- a/net/ifup.c > +++ b/net/ifup.c > @@ -106,12 +106,22 @@ int ifup(const char *name, unsigned flags) > ret = eth_set_param(dev, "serverip"); > if (ret) > goto out; > + dev_set_param(dev, "linux.bootargs", "ip=dhcp"); > } else if (!strcmp(ip, "static")) { > + char *bootarg; > for (i = 0; i < ARRAY_SIZE(vars); i++) { > ret = eth_set_param(dev, vars[i]); > if (ret) > goto out; > } > + bootarg = basprintf("ip=%pI4:%pI4:%pI4:%pI4::%s:", > + &edev->ipaddr, > + &edev->serverip, > + &edev->gateway, > + &edev->netmask, > + edev->devname); I dropped setting the devname here since we do not know if it's the same under Linux. If there are multiple interfaces in Linux we can only hope that the right one is used anyway. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox