summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Marangi2025-02-03 00:11:37 +0000
committerChristian Marangi2025-02-03 00:54:26 +0000
commitc4fe3e9502aa4e89b160b2de0cf61bb14dfddf94 (patch)
tree69d0c8706da1325f98cb7c7881d06cd40a794977
parent73a6cb983c46cbe2e3a603dd5b8ec3155547f8d5 (diff)
downloadopenwrt-c4fe3e9502aa4e89b160b2de0cf61bb14dfddf94.tar.gz
ipq806x: make use of ASCII env NVMEM driver for Linksys EAX devices
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>
-rw-r--r--target/linux/ipq806x/base-files/etc/board.d/02_network10
-rw-r--r--target/linux/ipq806x/config-6.61
-rw-r--r--target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8064-eax500.dtsi18
3 files changed, 19 insertions, 10 deletions
diff --git a/target/linux/ipq806x/base-files/etc/board.d/02_network b/target/linux/ipq806x/base-files/etc/board.d/02_network
index 43ee5ccd14..69ab5cd3de 100644
--- a/target/linux/ipq806x/base-files/etc/board.d/02_network
+++ b/target/linux/ipq806x/base-files/etc/board.d/02_network
@@ -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)
diff --git a/target/linux/ipq806x/config-6.6 b/target/linux/ipq806x/config-6.6
index bc3761b2e5..a71b02fe69 100644
--- a/target/linux/ipq806x/config-6.6
+++ b/target/linux/ipq806x/config-6.6
@@ -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
diff --git a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8064-eax500.dtsi b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8064-eax500.dtsi
index e5cc242419..c66a2b973e 100644
--- a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8064-eax500.dtsi
+++ b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8064-eax500.dtsi
@@ -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;