no ether-mac when running L4T 28.1 with specified FDT in extlinux.conf

Hello Team,

I’ve updated my Jetson TX2 with Jetpack 3.1.
Booting normally I have ethernet.
But if I specify another dtb file with FDT inside extlinux.conf I get these messages and no eth0 device is available.

nvidia@nvidia-7365:~$ dmesg | egrep -i ‘(ether|inet|network|igb)’
[ 0.245018] iommu: Adding device 2490000.ether_qos to group 18
[ 2.832919] e1000e: Intel® PRO/1000 Network Driver - 3.2.6-k
[ 2.846231] igb: Intel® Gigabit Ethernet Network Driver - version 5.3.0-k
[ 2.853945] igb: Copyright © 2007-2014 Intel Corporation.
[ 2.864504] eqos_get_mac_address_dtb: bad mac address at /chosen/nvidia,ether-mac: null.
[ 2.864506] ether-mac read from DT failed -99
[ 2.926704] usbcore: registered new interface driver cdc_ether

Here a snippet of my extlinux.conf

TIMEOUT 30
DEFAULT primary

MENU TITLE p2771-0000 eMMC boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4

LABEL primary3
      MENU LABEL primary kernel with explicit dtb
      LINUX /boot/Image
      FDT /boot/tegra186-quill-p3310-1000-c03-00-base.dtb
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4

LABEL primary4
      MENU LABEL primary kernel with explicit dtb2
      LINUX /boot/Image
      FDT /boot/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4

Both DTBs were the ones originally delivered with the system. So I assume only the one already loaded by u-Boot from a location I don’t know has the right /chosen/ether-mac node.

I’m confused that no one else has this issue as it makes changing the Device Tree impossible.
Thanks in advance!

I just have noticed that not only chosen/ether-mac is affected.
The whole node seems to be unexpectedly empty:

[    0.145859] chosen/plugin-manager does'nt have ids, nct and odm-data
[    2.864504] eqos_get_mac_address_dtb: bad mac address at /chosen/nvidia,ether-mac: null.
[   10.796715] wifi_get_mac_address_dtb: bad mac address at /chosen/nvidia,wifi-mac: null.

This now also explains why I don’t have any video devices available as the fragments of the plugin-manager are not working.

Ok, my search words weren’t as good.
I’ve read this article http://elinux.org/Jetson/TX2_DTB#TX2 and now I’m aware that DTBs can only be loaded via U-Boot.

If I’m correct this case can be closed…

If there is still a way to use extlinux.conf for that please tell me.
I really need a way to support multiple base boards for the TX2. This seems to be rather confusing to use especially as our custom base board doesn’t have recovery support.

The method of naming the dtb differs in R28.1 (from what I can tell this was so that both the TX1 and TX2 could use the same rootfs and unify parts of their install). See:
https://devtalk.nvidia.com/default/topic/1020708/jetson-tx2/method-to-modify-use-different-device-tree-in-r28-1/post/5195927/#5195927

The gist is that the boot environment now contains the DTB in a hidden partition. Part of this is visible via the extlinux.conf entry (the rootfs), but most seems to be ignored if edited in extlinux.conf.