s series solves some issues that have been nagging me for some time now. First of all the manual selection of the current ethernet device is unnecessary since the interface can be picked by the networking code automatically based on the IP settings of the interface. With this series the "ethact" command is gone and users of boards with multiple network interfaces no longer have to worry about picking the right one. Then the network device configuration can now be done with nvvars. This makes it unnecessary to edit scripts on the device (which may be cumbersome on some devices which lose characters on serial ports) and it makes it also easier for scripts or setup code to modify the network config. Finally the DHCP code is cleaned up, primarily to be able to pass in the network interface that shall be used, but also to make more clear which variables are input and which are output. For DHCP users the configuration is simple: It is the default. A static IP setup can now be done with the variables: nv.net.server nv.net.nameserver nv.net.gateway and the network device specific variables (assuming "eth0" as network device): nv.dev.eth0.ipaddr nv.dev.eth0.netmask (For those who are not already familiar with it: It's the normal way to store device parameters in nvvars, like already possible for example with NAND partitioning, i.e. nv.dev.nand0.partitions=4M(barebox),-(root), see http://www.barebox.org/doc/latest/user/variables.html#non-volatile-device-variables) As usual, all comments are welcome. Sascha ---------------------------------------------------------------- Sascha Hauer (21): driver: Add device_detect_all() function nvvar: when setting a nvvar to NULL just free the content net: Make domainname and nameserver globalvars net: Add functions to get/set nameserver and domainname net: introduce global.net.server net: dhcp: Do not overwrite serverip if it is valid net: Use a single gateway net: allow udp connections on specified network device net: dhcp: Allow to specify network device net: dhcp: avoid unnecessary casts net: dhcp: Coding style fixes net: dhcp: rework net: Pick network device based on IP settings net: remove "current" network device net: ifup: Factor out a eth_discover function ifup: Use dhcp C API rather than running command net: Provide new way to configure network devices net: update network docs net: environment: remove ethx setup files net: environment: update automounts defaultenv: Add README for new network config Documentation/user/automount.rst | 2 +- Documentation/user/networking.rst | 99 +++- .../arm/boards/afi-gf/defaultenv-gf/init/automount | 10 - arch/arm/boards/afi-gf/defaultenv-gf/network/eth1 | 18 - .../defaultenv-pico-hobbit/init/automount | 11 - .../defaultenv-pico-hobbit/network/eth1 | 18 - .../zii-imx6q-rdu2/defaultenv-rdu2/init/automount | 17 - .../zii-imx6q-rdu2/defaultenv-rdu2/network/eth1 | 18 - commands/Makefile | 1 - commands/detect.c | 6 +- commands/dhcp.c | 29 +- commands/net.c | 66 --- common/globalvar.c | 6 +- defaultenv/defaultenv-2-base/init/automount | 4 +- defaultenv/defaultenv-2-base/network/README | 3 + defaultenv/defaultenv-2-base/network/eth0 | 18 - drivers/base/driver.c | 8 + include/dhcp.h | 24 +- include/driver.h | 1 + include/net.h | 27 +- net/dhcp.c | 568 +++++++++------------ net/dns.c | 10 +- net/eth.c | 39 +- net/ifup.c | 252 ++++++--- net/net.c | 143 ++++-- 25 files changed, 692 insertions(+), 706 deletions(-) delete mode 100644 arch/arm/boards/afi-gf/defaultenv-gf/init/automount delete mode 100644 arch/arm/boards/afi-gf/defaultenv-gf/network/eth1 delete mode 100644 arch/arm/boards/technexion-pico-hobbit/defaultenv-pico-hobbit/init/automount delete mode 100644 arch/arm/boards/technexion-pico-hobbit/defaultenv-pico-hobbit/network/eth1 delete mode 100644 arch/arm/boards/zii-imx6q-rdu2/defaultenv-rdu2/init/automount delete mode 100644 arch/arm/boards/zii-imx6q-rdu2/defaultenv-rdu2/network/eth1 delete mode 100644 commands/net.c create mode 100644 defaultenv/defaultenv-2-base/network/README delete mode 100644 defaultenv/defaultenv-2-base/network/eth0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox