]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: renesas: s4sk: Fix ethernet0 alias for rswitch
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Sat, 18 Jan 2025 11:13:12 +0000 (12:13 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 21 Feb 2025 15:23:00 +0000 (16:23 +0100)
Each rswitch port TSNn has a dedicated MAC address assigned to it, so
does AVB MAC.  The MAC addresses for each rswitch port and AVB, four in
total, are stored in the FPGA populated on the board and can be read out
via I2C from bus i2c@e66e0000 address 0x70 offsets 0x58 for AVB and
0x60, 0x68, 0x70 for TSNn.

There is no single MAC address assigned to the rswitch itself, there are
three of them, one for each rswitch port.  Instead of ethernet0 alias
for rswitch itself, describe aliases ethernet0, ethernet1 for each
enabled rswitch port.  This allows U-Boot to insert MAC addresses from
its environment variables ethaddr/eth1addr/eth2addr into each rswitch
port nodes, so Linux can read and use one unique MAC address for each
rswitch port.

Note that it is unlikely this would break existing rswitch driver
operation in the Linux kernel, because as of right now, the rswitch
driver already calls of_get_ethdev_address() for each port to read
out the MAC address of each rswitch port DT node.  If that is missing,
it falls back to MAC address settings read from the hardware itself.
If that also fails, it uses a random MAC address.

Fixes: 412f2224b3b6 ("arm64: dts: renesas: s4sk: Fix ethernet0 alias")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/20250118111344.361617-5-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
arch/arm64/boot/dts/renesas/r8a779f4-s4sk.dts

index a4167dd955aeff3feec2c8405dada53a5eb1327b..24ecdf6e8476a945e4492189d33735d726484015 100644 (file)
@@ -22,7 +22,8 @@
                i2c5 = &i2c5;
                serial0 = &hscif0;
                serial1 = &hscif1;
-               ethernet0 = &rswitch;
+               ethernet0 = &rswitch_port0;
+               ethernet1 = &rswitch_port1;
        };
 
        chosen {