No network interfaces on the Ten64 with Linux kernel 7.2 and later

Booting Linux kernel 7.2 or later on a Ten64 results in no network interfaces.

U-Boot writes the fsl-mc node’s compatible property without its terminating NUL, and since kernel commit drivers/of: validate live-tree string properties before string use (v7.2-rc1) the kernel rejects such a string, so the fsl_mc_bus driver does not bind.

The fix is one line in board/traverse/ten64/ten64.c (firmware v0.9.1; the same line is in mainline v2026.07 and in ten64-rebase-2026-02):

diff --git c/board/traverse/ten64/ten64.c i/board/traverse/ten64/ten64.c
index ac8c9a9a81a..7ee08d29870 100644
--- c/board/traverse/ten64/ten64.c
+++ i/board/traverse/ten64/ten64.c
@@ -177,7 +177,7 @@ void fdt_fixup_board_enet(void *fdt)
         * Remove this as FreeBSD will only match "fsl,qoriq-mc"
         * exactly on the DPAA2 bus/MC node.
         */
-       fdt_setprop(fdt, offset, "compatible", "fsl,qoriq-mc", 12);
+       fdt_setprop_string(fdt, offset, "compatible", "fsl,qoriq-mc");

        if (get_mc_boot_status() == 0 &&
            (is_lazy_dpl_addr_valid() || get_dpl_apply_status() == 0))

Workaround on a running kernel:

echo fsl_mc_bus > /sys/bus/platform/devices/80c000000.fsl-mc/driver_override
echo 80c000000.fsl-mc > /sys/bus/platform/drivers/fsl_mc_bus/bind
1 Like

Thanks for looking into this! I did notice it when I upgraded a debian unstable/sid system last week, but I was in the middle of something else.

I have pushed a new U-Boot tree with the fix here:

I’ll look into the other issues you’ve posted about soon. There are also some changes to the SFP setup in the above branch, but I have not yet tested out all possible configurations.

1 Like