From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1eKjPe-0003o3-D6 for barebox@lists.infradead.ORG; Fri, 01 Dec 2017 11:23:29 +0000 From: Sascha Hauer Date: Fri, 1 Dec 2017 12:22:37 +0100 Message-Id: <20171201112256.20196-9-s.hauer@pengutronix.de> In-Reply-To: <20171201112256.20196-1-s.hauer@pengutronix.de> References: <20171201112256.20196-1-s.hauer@pengutronix.de> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 08/27] net: introduce global.net.server To: Barebox List The server to use is independent of the network device, there is not much point to make the server specific to a network device. This introduces global.net.server as the serverip which is used as standard NFS/tftp server. The previously used eth device specific parameters still exist, but are only aliases for the global single variable. Signed-off-by: Sascha Hauer --- include/net.h | 1 - net/eth.c | 4 +++- net/ifup.c | 7 ++++++- net/net.c | 11 +++++------ 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/include/net.h b/include/net.h index 817e29cd9b..37ddf2db18 100644 --- a/include/net.h +++ b/include/net.h @@ -58,7 +58,6 @@ struct eth_device { struct list_head list; IPaddr_t ipaddr; - IPaddr_t serverip; IPaddr_t netmask; IPaddr_t gateway; char ethaddr[6]; diff --git a/net/eth.c b/net/eth.c index dac2400b81..74666bbf22 100644 --- a/net/eth.c +++ b/net/eth.c @@ -348,6 +348,8 @@ static int eth_register_of_fixup(void) late_initcall(eth_register_of_fixup); #endif +extern IPaddr_t net_serverip; + int eth_register(struct eth_device *edev) { struct device_d *dev = &edev->dev; @@ -379,7 +381,7 @@ int eth_register(struct eth_device *edev) edev->devname = xstrdup(dev_name(&edev->dev)); dev_add_param_ip(dev, "ipaddr", NULL, NULL, &edev->ipaddr, edev); - dev_add_param_ip(dev, "serverip", NULL, NULL, &edev->serverip, edev); + dev_add_param_ip(dev, "serverip", NULL, NULL, &net_serverip, edev); dev_add_param_ip(dev, "gateway", NULL, NULL, &edev->gateway, edev); dev_add_param_ip(dev, "netmask", NULL, NULL, &edev->netmask, edev); dev_add_param_mac(dev, "ethaddr", eth_param_set_ethaddr, NULL, diff --git a/net/ifup.c b/net/ifup.c index 5113d13832..2b13a9f140 100644 --- a/net/ifup.c +++ b/net/ifup.c @@ -109,14 +109,19 @@ int ifup(const char *name, unsigned flags) dev_set_param(dev, "linux.bootargs", "ip=dhcp"); } else if (!strcmp(ip, "static")) { char *bootarg; + IPaddr_t serverip; + for (i = 0; i < ARRAY_SIZE(vars); i++) { ret = eth_set_param(dev, vars[i]); if (ret) goto out; } + + serverip = net_get_serverip(); + bootarg = basprintf("ip=%pI4:%pI4:%pI4:%pI4:::", &edev->ipaddr, - &edev->serverip, + &serverip, &edev->gateway, &edev->netmask); dev_set_param(dev, "linux.bootargs", bootarg); diff --git a/net/net.c b/net/net.c index 1ebf0008cb..5e6e8f1940 100644 --- a/net/net.c +++ b/net/net.c @@ -44,6 +44,7 @@ unsigned char *NetRxPackets[PKTBUFSRX]; /* Receive packets */ static unsigned int net_ip_id; +IPaddr_t net_serverip; static IPaddr_t net_nameserver; static char *net_domainname; @@ -244,16 +245,12 @@ static uint16_t net_udp_new_localport(void) IPaddr_t net_get_serverip(void) { - struct eth_device *edev = eth_get_current(); - - return edev->serverip; + return net_serverip; } void net_set_serverip(IPaddr_t ip) { - struct eth_device *edev = eth_get_current(); - - edev->serverip = ip; + net_serverip = ip; } void net_set_ip(IPaddr_t ip) @@ -608,6 +605,7 @@ static int net_init(void) globalvar_add_simple_ip("net.nameserver", &net_nameserver); globalvar_add_simple_string("net.domainname", &net_domainname); + globalvar_add_simple_ip("net.server", &net_serverip); return 0; } @@ -616,3 +614,4 @@ postcore_initcall(net_init); BAREBOX_MAGICVAR_NAMED(global_net_nameserver, global.net.nameserver, "The DNS server used for resolving host names"); BAREBOX_MAGICVAR_NAMED(global_net_domainname, global.net.domainname, "Domain name used for DNS requests"); +BAREBOX_MAGICVAR_NAMED(global_net_server, global.net.server, "Standard server used for NFS/TFTP"); -- 2.11.0 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox