qoriq: use nvmem for MAC addresses

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16308
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
Rosen Penev 2024-09-01 15:33:43 -07:00 committed by Stijn Tintel
parent 0ba2e0868e
commit 553e8da067
3 changed files with 53 additions and 6 deletions

View File

@ -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
;;

View File

@ -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

View File

@ -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