From 553e8da0679606f6921b2f71d147f08ad11f4669 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sun, 1 Sep 2024 15:33:43 -0700 Subject: [PATCH] qoriq: use nvmem for MAC addresses Userspace handling is deprecated. Signed-off-by: Rosen Penev Link: https://github.com/openwrt/openwrt/pull/16308 Signed-off-by: Stijn Tintel --- .../qoriq/base-files/etc/board.d/02_network | 6 --- target/linux/qoriq/config-6.6 | 2 + .../boot/dts/fsl/watchguard-firebox-m300.dts | 51 +++++++++++++++++++ 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/target/linux/qoriq/base-files/etc/board.d/02_network b/target/linux/qoriq/base-files/etc/board.d/02_network index 355c8d37a464..12adca2a8d8e 100644 --- a/target/linux/qoriq/base-files/etc/board.d/02_network +++ b/target/linux/qoriq/base-files/etc/board.d/02_network @@ -19,15 +19,9 @@ watchguard,firebox-m300) ucidef_set_interfaces_lan_wan "eth1" "eth0" wg_set_opt_interface "eth2" "2" - sweth_mac_offset=0x186d - for sweth in $(find /sys/class/net/ -name 'sweth*' -print); do device="$(basename "$sweth")" - mac="$(mtd_get_mac_text wg_cfg0 "$sweth_mac_offset")" - switchports="$switchports $device" - ucidef_set_network_device_mac "$device" "$mac" wg_set_opt_interface "$device" "${device#sweth}" - sweth_mac_offset=$(printf "0x%X\n" $(( $sweth_mac_offset + 0x14))) done ;; diff --git a/target/linux/qoriq/config-6.6 b/target/linux/qoriq/config-6.6 index 3f42563db147..750e6c655102 100644 --- a/target/linux/qoriq/config-6.6 +++ b/target/linux/qoriq/config-6.6 @@ -280,6 +280,8 @@ CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y CONFIG_NR_CPUS=24 CONFIG_NR_IRQS=512 +CONFIG_NVMEM=y +CONFIG_NVMEM_LAYOUTS=y CONFIG_OF=y CONFIG_OF_ADDRESS=y CONFIG_OF_EARLY_FLATTREE=y diff --git a/target/linux/qoriq/files/arch/powerpc/boot/dts/fsl/watchguard-firebox-m300.dts b/target/linux/qoriq/files/arch/powerpc/boot/dts/fsl/watchguard-firebox-m300.dts index c611263099d5..6628e0eb23eb 100644 --- a/target/linux/qoriq/files/arch/powerpc/boot/dts/fsl/watchguard-firebox-m300.dts +++ b/target/linux/qoriq/files/arch/powerpc/boot/dts/fsl/watchguard-firebox-m300.dts @@ -115,6 +115,42 @@ reg = <0x10000 0x20000>; label = "wg_cfg0"; read-only; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_cfg_186c: macaddr@186c { + compatible = "mac-base"; + reg = <0x186c 0x11>; + #nvmem-cell-cells = <1>; + }; + + macaddr_cfg_1880: macaddr@1880 { + compatible = "mac-base"; + reg = <0x1880 0x11>; + #nvmem-cell-cells = <1>; + }; + + macaddr_cfg_1894: macaddr@1894 { + compatible = "mac-base"; + reg = <0x1894 0x11>; + #nvmem-cell-cells = <1>; + }; + + macaddr_cfg_18a8: macaddr@18a8 { + compatible = "mac-base"; + reg = <0x18a8 0x11>; + #nvmem-cell-cells = <1>; + }; + + macaddr_cfg_18bc: macaddr@18bc { + compatible = "mac-base"; + reg = <0x18bc 0x11>; + #nvmem-cell-cells = <1>; + }; + }; }; partition@30000 { @@ -237,30 +273,45 @@ reg = <0>; label = "sweth3"; phy-handle = <&switch0phy0>; + + nvmem-cells = <&macaddr_cfg_186c 0>; + nvmem-cell-names = "mac-address"; }; port@1 { reg = <1>; label = "sweth4"; phy-handle = <&switch0phy1>; + + nvmem-cells = <&macaddr_cfg_1880 0>; + nvmem-cell-names = "mac-address"; }; port@2 { reg = <2>; label = "sweth5"; phy-handle = <&switch0phy2>; + + nvmem-cells = <&macaddr_cfg_1894 0>; + nvmem-cell-names = "mac-address"; }; port@3 { reg = <3>; label = "sweth6"; phy-handle = <&switch0phy3>; + + nvmem-cells = <&macaddr_cfg_18a8 0>; + nvmem-cell-names = "mac-address"; }; port@4 { reg = <4>; label = "sweth7"; phy-handle = <&switch0phy4>; + + nvmem-cells = <&macaddr_cfg_18bc 0>; + nvmem-cell-names = "mac-address"; }; // OEM bootlog suggests multiple ports are attached to switch -- 2.30.2