]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: switch HPE 1920 series to NVMEM 21976/head
authorJan Hoffmann <jan@3e8.eu>
Tue, 10 Feb 2026 20:18:47 +0000 (21:18 +0100)
committerRobert Marko <robimarko@gmail.com>
Fri, 13 Feb 2026 11:06:20 +0000 (12:06 +0100)
The MAC addresses for eth0 and the individual LAN ports are now
configured via device tree. The assignment itself stays the same as
before, matching factory firmware.

The 02_network script still sets the bridge MAC address, as it is
different from the lowest port MAC address.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/21976
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/realtek/base-files/etc/board.d/02_network
target/linux/realtek/dts/rtl8380_hpe_1920-8g.dtsi
target/linux/realtek/dts/rtl8382_hpe_1920-16g.dts
target/linux/realtek/dts/rtl8382_hpe_1920-24g.dtsi
target/linux/realtek/dts/rtl8393_hpe_1920-48g-poe.dts
target/linux/realtek/dts/rtl8393_hpe_1920-48g.dts
target/linux/realtek/dts/rtl8393_hpe_1920.dtsi
target/linux/realtek/dts/rtl83xx_hpe_1920.dtsi

index 7b32997d61f6bf65b571dcbdc329af24a57de74b..67d6a29e7d8921ca1c59eb1a4b58ea2a306e2afa 100644 (file)
@@ -62,6 +62,7 @@ realtek_setup_macs()
                lan_mac=$(get_mac_label)
                lan_mac_start=$lan_mac
                ;;
+       hasivo,s1100wp-8gt-se|\
        hpe,1920-8g|\
        hpe,1920-8g-poe-65w|\
        hpe,1920-8g-poe-180w|\
@@ -70,16 +71,7 @@ realtek_setup_macs()
        hpe,1920-24g-poe-180w|\
        hpe,1920-24g-poe-370w|\
        hpe,1920-48g|\
-       hpe,1920-48g-poe)
-               label_mac=$(mtd_get_mac_binary factory 0x68)
-               lan_mac=$label_mac
-               eth0_mac=$lan_mac
-               mac_count1=$(hexdump -v -n 4 -s 0x110 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
-               mac_count2=$(hexdump -v -n 4 -s 0x114 -e '4 "%d"' $(find_mtd_part factory) 2>/dev/null)
-               lan_mac_start=$(macaddr_add $lan_mac 2)
-               lan_mac_end=$(macaddr_add $lan_mac $((mac_count2-mac_count1)))
-               ;;
-       hasivo,s1100wp-8gt-se|\
+       hpe,1920-48g-poe|\
        plasmacloud,esx28|\
        plasmacloud,mcx3|\
        plasmacloud,psx8|\
index e77e81ed5b05ebe6799b5764cda513117ef62449..2b71137a190b4bba04fa37f6289ef9a57bbab319 100644 (file)
@@ -89,6 +89,9 @@
                        phy-mode = "1000base-x";
                        managed = "in-band-status";
                        sfp = <&sfp0>;
+
+                       nvmem-cells = <&macaddr_factory 10>;
+                       nvmem-cell-names = "mac-address";
                };
 
                port@26 {
                        phy-mode = "1000base-x";
                        managed = "in-band-status";
                        sfp = <&sfp1>;
+
+                       nvmem-cells = <&macaddr_factory 11>;
+                       nvmem-cell-names = "mac-address";
                };
 
                port@28 {
                };
        };
 };
+
+&port8 {
+       nvmem-cells = <&macaddr_factory 2>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port9 {
+       nvmem-cells = <&macaddr_factory 3>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port10 {
+       nvmem-cells = <&macaddr_factory 4>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port11 {
+       nvmem-cells = <&macaddr_factory 5>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port12 {
+       nvmem-cells = <&macaddr_factory 6>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port13 {
+       nvmem-cells = <&macaddr_factory 7>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port14 {
+       nvmem-cells = <&macaddr_factory 8>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port15 {
+       nvmem-cells = <&macaddr_factory 9>;
+       nvmem-cell-names = "mac-address";
+};
index 3e10cd62be4d9d943ec7203dcabd4cc86f32f948..40b66d88c3bbd35bbeced371bce9cec1aa708233 100644 (file)
                };
        };
 };
+
+&port8 {
+       nvmem-cells = <&macaddr_factory 2>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port9 {
+       nvmem-cells = <&macaddr_factory 3>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port10 {
+       nvmem-cells = <&macaddr_factory 4>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port11 {
+       nvmem-cells = <&macaddr_factory 5>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port12 {
+       nvmem-cells = <&macaddr_factory 6>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port13 {
+       nvmem-cells = <&macaddr_factory 7>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port14 {
+       nvmem-cells = <&macaddr_factory 8>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port15 {
+       nvmem-cells = <&macaddr_factory 9>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port16 {
+       nvmem-cells = <&macaddr_factory 10>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port17 {
+       nvmem-cells = <&macaddr_factory 11>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port18 {
+       nvmem-cells = <&macaddr_factory 12>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port19 {
+       nvmem-cells = <&macaddr_factory 13>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port20 {
+       nvmem-cells = <&macaddr_factory 14>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port21 {
+       nvmem-cells = <&macaddr_factory 15>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port22 {
+       nvmem-cells = <&macaddr_factory 16>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port23 {
+       nvmem-cells = <&macaddr_factory 17>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port24 {
+       nvmem-cells = <&macaddr_factory 18>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port25 {
+       nvmem-cells = <&macaddr_factory 19>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port26 {
+       nvmem-cells = <&macaddr_factory 20>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port27 {
+       nvmem-cells = <&macaddr_factory 21>;
+       nvmem-cell-names = "mac-address";
+};
index a7cc555fa25997c0f24f7d670898e661613b20a5..fae4698236d60a733f56c59bc8976ed166be9203 100644 (file)
                };
        };
 };
+
+&port0 {
+       nvmem-cells = <&macaddr_factory 2>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port1 {
+       nvmem-cells = <&macaddr_factory 3>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port2 {
+       nvmem-cells = <&macaddr_factory 4>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port3 {
+       nvmem-cells = <&macaddr_factory 5>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port4 {
+       nvmem-cells = <&macaddr_factory 6>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port5 {
+       nvmem-cells = <&macaddr_factory 7>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port6 {
+       nvmem-cells = <&macaddr_factory 8>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port7 {
+       nvmem-cells = <&macaddr_factory 9>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port8 {
+       nvmem-cells = <&macaddr_factory 10>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port9 {
+       nvmem-cells = <&macaddr_factory 11>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port10 {
+       nvmem-cells = <&macaddr_factory 12>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port11 {
+       nvmem-cells = <&macaddr_factory 13>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port12 {
+       nvmem-cells = <&macaddr_factory 14>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port13 {
+       nvmem-cells = <&macaddr_factory 15>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port14 {
+       nvmem-cells = <&macaddr_factory 16>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port15 {
+       nvmem-cells = <&macaddr_factory 17>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port16 {
+       nvmem-cells = <&macaddr_factory 18>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port17 {
+       nvmem-cells = <&macaddr_factory 19>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port18 {
+       nvmem-cells = <&macaddr_factory 20>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port19 {
+       nvmem-cells = <&macaddr_factory 21>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port20 {
+       nvmem-cells = <&macaddr_factory 22>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port21 {
+       nvmem-cells = <&macaddr_factory 23>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port22 {
+       nvmem-cells = <&macaddr_factory 24>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port23 {
+       nvmem-cells = <&macaddr_factory 25>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port24 {
+       nvmem-cells = <&macaddr_factory 26>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port25 {
+       nvmem-cells = <&macaddr_factory 27>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port26 {
+       nvmem-cells = <&macaddr_factory 28>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port27 {
+       nvmem-cells = <&macaddr_factory 29>;
+       nvmem-cell-names = "mac-address";
+};
index 43504d7f7cac3916471d0816ee09ca424979e790..7e3d13918abdd5ad0db78bdcff58465f62bfbd4d 100644 (file)
        };
 };
 
+&port48 {
+       nvmem-cells = <&macaddr_factory 50>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port49 {
+       nvmem-cells = <&macaddr_factory 51>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port50 {
+       nvmem-cells = <&macaddr_factory 52>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port51 {
+       nvmem-cells = <&macaddr_factory 53>;
+       nvmem-cell-names = "mac-address";
+};
+
 &uart1 {
        status = "okay";
 };
index fd2363145f48aef261b50fb7935d4aafe8de56b3..d043f2e1e9e09827114e259b243070acbb271d39 100644 (file)
                SWITCH_PORT_SDS(51, 51, 12, qsgmii)
        };
 };
+
+&port48 {
+       nvmem-cells = <&macaddr_factory 51>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port49 {
+       nvmem-cells = <&macaddr_factory 53>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port50 {
+       nvmem-cells = <&macaddr_factory 50>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port51 {
+       nvmem-cells = <&macaddr_factory 52>;
+       nvmem-cell-names = "mac-address";
+};
index 1277c2ce5826fecee8ca5f0b0be1f2bc5c35693a..3de91de07e2918a5d6da413157cfda1bb4d53da4 100644 (file)
                };
        };
 };
+
+&port0 {
+       nvmem-cells = <&macaddr_factory 2>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port1 {
+       nvmem-cells = <&macaddr_factory 3>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port2 {
+       nvmem-cells = <&macaddr_factory 4>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port3 {
+       nvmem-cells = <&macaddr_factory 5>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port4 {
+       nvmem-cells = <&macaddr_factory 6>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port5 {
+       nvmem-cells = <&macaddr_factory 7>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port6 {
+       nvmem-cells = <&macaddr_factory 8>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port7 {
+       nvmem-cells = <&macaddr_factory 9>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port8 {
+       nvmem-cells = <&macaddr_factory 10>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port9 {
+       nvmem-cells = <&macaddr_factory 11>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port10 {
+       nvmem-cells = <&macaddr_factory 12>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port11 {
+       nvmem-cells = <&macaddr_factory 13>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port12 {
+       nvmem-cells = <&macaddr_factory 14>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port13 {
+       nvmem-cells = <&macaddr_factory 15>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port14 {
+       nvmem-cells = <&macaddr_factory 16>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port15 {
+       nvmem-cells = <&macaddr_factory 17>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port16 {
+       nvmem-cells = <&macaddr_factory 18>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port17 {
+       nvmem-cells = <&macaddr_factory 19>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port18 {
+       nvmem-cells = <&macaddr_factory 20>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port19 {
+       nvmem-cells = <&macaddr_factory 21>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port20 {
+       nvmem-cells = <&macaddr_factory 22>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port21 {
+       nvmem-cells = <&macaddr_factory 23>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port22 {
+       nvmem-cells = <&macaddr_factory 24>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port23 {
+       nvmem-cells = <&macaddr_factory 25>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port24 {
+       nvmem-cells = <&macaddr_factory 26>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port25 {
+       nvmem-cells = <&macaddr_factory 27>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port26 {
+       nvmem-cells = <&macaddr_factory 28>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port27 {
+       nvmem-cells = <&macaddr_factory 29>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port28 {
+       nvmem-cells = <&macaddr_factory 30>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port29 {
+       nvmem-cells = <&macaddr_factory 31>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port30 {
+       nvmem-cells = <&macaddr_factory 32>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port31 {
+       nvmem-cells = <&macaddr_factory 33>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port32 {
+       nvmem-cells = <&macaddr_factory 34>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port33 {
+       nvmem-cells = <&macaddr_factory 35>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port34 {
+       nvmem-cells = <&macaddr_factory 36>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port35 {
+       nvmem-cells = <&macaddr_factory 37>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port36 {
+       nvmem-cells = <&macaddr_factory 38>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port37 {
+       nvmem-cells = <&macaddr_factory 39>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port38 {
+       nvmem-cells = <&macaddr_factory 40>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port39 {
+       nvmem-cells = <&macaddr_factory 41>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port40 {
+       nvmem-cells = <&macaddr_factory 42>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port41 {
+       nvmem-cells = <&macaddr_factory 43>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port42 {
+       nvmem-cells = <&macaddr_factory 44>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port43 {
+       nvmem-cells = <&macaddr_factory 45>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port44 {
+       nvmem-cells = <&macaddr_factory 46>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port45 {
+       nvmem-cells = <&macaddr_factory 47>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port46 {
+       nvmem-cells = <&macaddr_factory 48>;
+       nvmem-cell-names = "mac-address";
+};
+
+&port47 {
+       nvmem-cells = <&macaddr_factory 49>;
+       nvmem-cell-names = "mac-address";
+};
index c7b601311751c78d3630ff559d877f1551c6ff09..6b9ac5dae99eaa39189d847ead74767b57b2769c 100644 (file)
@@ -8,6 +8,10 @@
                stdout-path = "serial0:38400n8";
        };
 
+       aliases {
+               label-mac-device = &ethernet0;
+       };
+
        memory@0 {
                device_type = "memory";
                reg = <0x0 0x8000000>;
        };
 };
 
+&ethernet0 {
+       nvmem-cells = <&macaddr_factory 0>;
+       nvmem-cell-names = "mac-address";
+};
+
 &watchdog0 {
        status = "disabled";
 };
                                label = "factory";
                                reg = <0x1ff0000 0x10000>;
                                read-only;
+
+                               nvmem-layout {
+                                       compatible = "fixed-layout";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       macaddr_factory: macaddr@68 {
+                                               compatible = "mac-base";
+                                               reg = <0x68 0x6>;
+                                               #nvmem-cell-cells = <1>;
+                                       };
+                               };
                        };
                };
        };