From 05cbbb403742beb3e8c86a225cce17725cd8cc97 Mon Sep 17 00:00:00 2001 From: Jonas Jelonek Date: Fri, 27 Feb 2026 22:31:55 +0000 Subject: [PATCH] realtek: use nvmem for mac address for XikeStor SKS8310-8X Define an nvmem cell in the device tree of XikeStor SKS8310-8X to reference that as a source for the MAC address of the switch (ports). This eliminates the need for the userspace script to read and parse the MAC address. Signed-off-by: Jonas Jelonek Link: https://github.com/openwrt/openwrt/pull/22211 Signed-off-by: Hauke Mehrtens --- .../realtek/base-files/etc/board.d/02_network | 7 +------ .../dts/rtl9303_xikestor_sks8310-8x.dts | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/target/linux/realtek/base-files/etc/board.d/02_network b/target/linux/realtek/base-files/etc/board.d/02_network index 06619524db..7fccc77f58 100644 --- a/target/linux/realtek/base-files/etc/board.d/02_network +++ b/target/linux/realtek/base-files/etc/board.d/02_network @@ -65,6 +65,7 @@ realtek_setup_macs() xikestor,sks8300-8t|\ xikestor,sks8300-12e2t2x|\ xikestor,sks8300-12x-v1|\ + xikestor,sks8310-8x|\ zyxel,xgs1210-12-a1|\ zyxel,xgs1210-12-b1) lan_mac=$(get_mac_label) @@ -100,12 +101,6 @@ realtek_setup_macs() lan_mac_start=$lan_mac eth0_mac=$lan_mac ;; - xikestor,sks8310-8x) - lan_mac=$(mtd_get_mac_binary factory 0x80) - label_mac="$lan_mac" - lan_mac_start=$lan_mac - eth0_mac=$lan_mac - ;; allnet,all-sg8208m|\ apresia,aplgs120gtss|\ d-link,dgs-1210-10mp-f|\ diff --git a/target/linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts b/target/linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts index 7396a9ed32..0482eed8bf 100644 --- a/target/linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts +++ b/target/linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts @@ -10,6 +10,10 @@ compatible = "xikestor,sks8310-8x", "realtek,rtl9303-soc"; model = "XikeStor SKS8310-8X"; + aliases { + label-mac-device = ðernet0; + }; + memory@0 { device_type = "memory"; reg = <0x00000000 0x10000000>, /* first 256 MiB */ @@ -217,6 +221,18 @@ label = "factory"; reg = <0x1e0000 0x10000>; read-only; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + factory_macaddr: macaddr@80 { + compatible = "mac-base"; + reg = <0x80 0x6>; + #nvmem-cell-cells = <1>; + }; + }; }; partition@1f0000 { @@ -240,6 +256,11 @@ }; }; +ðernet0 { + nvmem-cells = <&factory_macaddr 0>; + nvmem-cell-names = "mac-address"; +}; + &switch0 { ethernet-ports { #address-cells = <1>;