Setting MAC address from nv variable broken in barebox 2017.05.0?

Ian Abbott abbotti at mev.co.uk
Mon May 8 06:39:19 PDT 2017


Hi,

I'm not sure if this is a bug or whether I'm doing something wrong.  In 
barebox 2017.04.0 and earlier, I stored the Ethernet MAC address in a 
non-volatile ('nv') variable dev.eth0.macaddr=xx:xx:xx:xx:xx:xx and that 
got propagated to 'global' and the eth0 device on boot:

barebox at xxxx:/ nv
   allow_color: true
   autoboot_timeout: 3
   dev.eth0.ethaddr: xx:xx:xx:xx:xx:xx
   user: none

barebox at xxxx:/ global
* allow_color: true
* autoboot_timeout: 3
   boot.default: xxxx
   boot.watchdog_timeout: 0
   bootm.appendroot: 0
   bootm.image:
   bootm.image.loadaddr:
   bootm.initrd:
   bootm.initrd.loadaddr:
   bootm.oftree:
   bootm.verbose: 0
   bootm.verify: hash
* dev.eth0.ethaddr: xx:xx:xx:xx:xx:xx
   dhcp.bootfile:
   dhcp.client_id:
   dhcp.client_uuid:
   dhcp.oftree_file:
   dhcp.rootpath:
   dhcp.tftp_server_name:
   dhcp.user_class:
   dhcp.vendor_id:
   editcmd: sedit
   hostname: generic
   linux.bootargs.base:
   linux.bootargs.console:
   linux.bootargs.dyn.ip:
   linux.bootargs.dyn.root:
   linux.rootnfsopts: v3,tcp
   loglevel: 4
   model: xxxx
   system.reset: unknown
* user: none
   version: 2017.04.0

barebox at xxxx:/ devinfo eth0
Parameters:
   ethaddr: xx:xx:xx:xx:xx:xx
   gateway: 0.0.0.0
   ipaddr: 0.0.0.0
   linux.bootargs:
   netmask: 0.0.0.0
   serverip: 0.0.0.0

However, in 2017.05.0, my 'dev.eth0.ethaddr' variable is no longer being 
propagated to global on boot, and as a consequence, is no longer 
propagated to eth0 (note that 'dev.eth0.ethaddr' is the only nv variable 
that I set manually when setting up a new board):

barebox at xxxx:/ global
* allow_color: true
* autoboot_timeout: 3
   boot.default: xxxx
   boot.watchdog_timeout: 0
   bootm.appendroot: 0
   bootm.image:
   bootm.image.loadaddr:
   bootm.initrd:
   bootm.initrd.loadaddr:
   bootm.oftree:
   bootm.verbose: 0
   bootm.verify: hash ("none", "hash", "signature", "available")
   dhcp.bootfile:
   dhcp.client_id:
   dhcp.client_uuid:
   dhcp.oftree_file:
   dhcp.rootpath:
   dhcp.tftp_server_name:
   dhcp.user_class:
   dhcp.vendor_id:
   editcmd: sedit
   hostname: generic
   linux.bootargs.base:
   linux.bootargs.console:
   linux.bootargs.dyn.ip:
   linux.bootargs.dyn.root:
   linux.rootnfsopts: v3,tcp
   loglevel: 4
   model: xxxx
   of_partition_binding: new ("new", "legacy", "donttouch")
   system.reset: unknown ("unknown", "POR", "RST", "WDG", "WKE", "JTAG", 
"THERM", "EXT")
* user: none
   version: 2017.05.0

barebox at xxxx:/ devinfo eth0
Parameters:
   ethaddr: 00:00:00:00:00:00
   gateway: 0.0.0.0
   ipaddr: 0.0.0.0
   linux.bootargs:
   netmask: 0.0.0.0
   serverip: 0.0.0.0

I can work around this using a script in /env/init/ to set the global 
from the nv variable, or change /env/network/eth0 to set the MAC address 
from the nv variable.

Is this the proper behaviour or a bug?  Could it be related to commit 
35d8e858bea17ec4796069c9c27fd0b134125eaf ("nv: Do not create globalvars 
from nvvars")?

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-



More information about the barebox mailing list