For some time now ethernet ports are unusable on C2600 when using snapshots as reported here FS#3945. I've narrowed it down to missing default-mac mtd partition - at least it seems to be the problem as no error is being reported by the driver. I'm not able to figure out why is not present when doing cat /proc/mtd as dts seems to have it defined.
WiFi does work, but both bands have some seemingly random MAC addresses.
Can someone take a quick look and point me in the right direction?
I've found the reason for the missing partition and made a simple workaround.
The trouble starts with the problematic partition having compatible = "nvmem-cells"; defined in dts. When enumerating partitions mtd eventually calls parse_fixed_partitions function which calls node_has_compatible function defined in /drivers/mtd/parsers/ofpart_core.c like this:
The addition of compatible = "nvmem-cells"; makes node_has_compatible to return true and for that reason parse_fixed_partitions skips that partition and mtd in return doesn't call nvmem_register and the whole thing breaks as described earlier.
I've rewritten the node_has_compatible function like so:
I've enclosed all partition definitions of flash@0 into partitions property with compatible = "fixed-partitions" and it actually works!
I'll make a PR on github later today when I clean up everything and retest once more to be sure.