Просмотр исходного кода

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 <[email protected]>
Christian Marangi 11 месяцев назад
Родитель
Сommit
c4fe3e9502

+ 0 - 10
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)

+ 1 - 0
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

+ 18 - 0
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;