ipq806x: make use of ASCII env NVMEM driver for Linksys EAX devices
Some checks failed
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Has been cancelled

Make use of ASCII env NVMEM driver for Linksys EAX devices. This also
fix a problem with Linksys EAX devices where the 2 MAC interface had the
same MAC address causing a conflicts with FDB entry. This got much more
present with the DSA conversion making the system not usable.

To fix this, increment + 1 the MAC address for the WAN interface.

Link: https://github.com/openwrt/openwrt/pull/17839
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Christian Marangi 2025-02-03 01:11:37 +01:00
parent 73a6cb983c
commit c4fe3e9502
No known key found for this signature in database
GPG Key ID: AC001D09ADBFEAD7
3 changed files with 19 additions and 10 deletions

View File

@ -78,16 +78,6 @@ ipq806x_setup_macs()
local board="$1"
case "$board" in
linksys,ea7500-v1)
hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
ucidef_set_interface_macaddr "lan" "$hw_mac_addr"
ucidef_set_interface_macaddr "wan" "$(macaddr_add $hw_mac_addr 1)"
;;
linksys,ea8500)
hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
ucidef_set_interface_macaddr "lan" "$hw_mac_addr"
ucidef_set_interface_macaddr "wan" "$(macaddr_add $hw_mac_addr 1)"
;;
linksys,e8350-v1 |\
zyxel,nbg6817)
hw_mac_addr=$(mtd_get_mac_ascii 0:appsblenv ethaddr)

View File

@ -314,6 +314,7 @@ CONFIG_NO_HZ_IDLE=y
CONFIG_NR_CPUS=2
CONFIG_NVMEM=y
CONFIG_NVMEM_LAYOUTS=y
CONFIG_NVMEM_LAYOUT_ASCII_ENV=y
CONFIG_NVMEM_QCOM_QFPROM=y
# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set
# CONFIG_NVMEM_SPMI_SDAM is not set

View File

@ -150,6 +150,18 @@
partition@f40000 {
label = "devinfo";
reg = <0x0f40000 0x0040000>;
nvmem-layout {
compatible = "ascii-eq-delim-env";
#address-cells = <1>;
#size-cells = <1>;
hw_mac_addr: hw_mac_addr {
compatible = "mac-base";
#nvmem-cell-cells = <1>;
};
};
};
partition@f80000 {
@ -294,6 +306,9 @@
pinctrl-0 = <&rgmii2_pins>;
pinctrl-names = "default";
nvmem-cells = <&hw_mac_addr 0>;
nvmem-cell-names = "mac-address";
fixed-link {
speed = <1000>;
full-duplex;
@ -306,6 +321,9 @@
phy-mode = "sgmii";
qcom,id = <2>;
nvmem-cells = <&hw_mac_addr 1>;
nvmem-cell-names = "mac-address";
fixed-link {
speed = <1000>;
full-duplex;