On Saturday, December 14, 2013 at 04:39:00 PM, Sergei Ianovich wrote: > On Sat, 2013-12-14 at 13:30 +0100, Marek Vasut wrote: > > On Saturday, December 14, 2013 at 06:41:58 AM, Sergei Ianovich wrote: > > > I always used tftp in my test, so the first dm9000 on LP-8x4x was > > > always properly initialized. However, if the boot doesn't include > > > network related commands, linux will not find a valid MAC and will > > > complain. > > > > Please pass the ethernet address via DT, will that not work for you ? > > This will require a custom dtb object for every device recompiled every > time kernel is upgraded. The current way is to set once per device in > U-Boot environment variable, which doesn't need to change if kernel > changes. > > I strongly believe the current way is easier.
I disagree :) IF you set 'ethaddr' variable in U-Boot THEN U-Boot will patch this 'ethaddr' value into your DT. The /aliases/ethernet0 node will be augmented with a new property 'local-mac-address', which will contain the MAC address from 'ethaddr' . The kernel will use this as the MAC address for that particular ethernet interface afterwards. NOTE: It is very important to have the alias set, it has to point to your ethernet device. A good example in Linux's arch/arm/boot/dts/imx28.dtsi, which even has two ethernet interfaces. Notice each of them has an alias. NOTE: If you have two interfaces, then 'eth1addr' is patches into /aliases/ethernet1 etc. The only problem here is the non-DT kernel. Do you need to support that? Is there no other way to pass MAC address of an ethernet interface to Linux but programming it into the ethernet interface itself ? Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot