Public bug reported:
Impact:
The RaspberryPi3+ board came with an usb's to ethernet lan78xx nic
adapter - thhis chip has no external eeprom, nor internal preprogrammed
mac address and as such, after every reboot, it generates a random new
ethernet mac address.
Supposedly, the lan78xx driver is able to read its mac address from the
device tree passed to the kernel (see d093067 "lan78xx: Read MAC address
from DT if present"), making it possible to have reproducible/fixed mac
addresses, but unfortunately this feature isn't working in our
Xenial/raspi2 kernel (while it's working fine in Bionc/raspi2).
After some debugging i found that the usb_net struct backing the lan78xx
driver, had no clue about the dt node it was associated, making this
piece of code constantly evaluates to NULL:
static void lan78xx_init_mac_address(struct lan78xx_net *dev)
...
mac_addr = of_get_mac_address(dev->udev->dev.of_node);
...
There "of_node" was always NULL.
After more debugging, i found that the feature to bind usb_net devices
and device tree nodes was introduced in the Linux 4.6 cycle, and as such
Xenial didn't have it.
Fix:
Apply the patch and recompile
How to test:
Upon boot of the RaspberryPi3+ board (and after the dtb has been loaded
into memory), stop at the uboot prompt and check the usbeether device
node:
U-Boot> fdt print /soc/usb/usb1@1/usb1_1@1/usbether@1
usbether@1 {
local-mac-address = [b8 27 eb ce 07 ba];
compatible = "usb424,7800";
reg = <0x00000001>;
microchip,eee-enabled;
microchip,tx-lpi-timer = <0x00000258>;
phandle = <0x00000024>;
};
the "local-mac-address" has been filled by the Broadcom bootloader, and
contains the lan78xx's mac address.
Then proceed with the boot routine, readh the user prompt, and check
eth0's mac address:
$ ifconfig eth0 | grep HWaddr
eth0 Link encap:Ethernet HWaddr b8:27:eb:ce:07:ba
If it's the same as above, then the fix worked.
Regression:
The patch itself has been upstream since v4.6-rc1, and it changes a very
small portion of code, so i'll say it's regression potential is very low
/ none.
** Affects: linux-raspi2 (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1798578
Title:
rpi3b+: can't set mac addrss from device tree
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-raspi2/+bug/1798578/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs