diff mbox series

ipq40xx: Convert Google Wifi to DSA, reenable

Message ID 20221022200038.1007919-1-computersforpeace@gmail.com
State Accepted
Delegated to: Petr Štetiar
Headers show
Series ipq40xx: Convert Google Wifi to DSA, reenable | expand

Commit Message

Brian Norris Oct. 22, 2022, 8 p.m. UTC
Undo parts of these:

116feb4a1cad ipq40xx: remove non-converted network configs
db19efee9512 ipq40xx: disable boards not converted to DSA

Reintroduce the DT paths /soc/edma@c080000/gmac{0,1}, because the stock
bootloader has memorized them (instead of following aliases); then plug
the MAC address back in via 05_set_iface_mac_ipq40xx.sh, since the
'local-mac-address' property is no longer in the correct node.

Cc: David Bauer <mail@david-bauer.net>
Cc: Robert Marko <robert.marko@sartura.hr>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
---
 .../ipq40xx/base-files/etc/board.d/02_network |  5 +++
 .../arch/arm/boot/dts/qcom-ipq4019-wifi.dts   | 42 +++++++++++++++++++
 target/linux/ipq40xx/image/chromium.mk        |  3 +-
 3 files changed, 48 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network
index 36f1f7c24a55..0cfcac513c7a 100644
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -31,6 +31,7 @@  ipq40xx_setup_interfaces()
 	cilab,meshpoint-one|\
 	edgecore,ecw5211|\
 	glinet,gl-b2200|\
+	google,wifi|\
 	luma,wrtq-329acn|\
 	mikrotik,cap-ac|\
 	netgear,wac510|\
@@ -114,6 +115,10 @@  ipq40xx_setup_macs()
 	ezviz,cs-w3-wd1200g-eup)
 		label_mac=$(mtd_get_mac_binary "ART" 0x6)
 		;;
+	google,wifi)
+		wan_mac=$(get_mac_label)
+		lan_mac=$(macaddr_add "$wan_mac" 1)
+		;;
 	linksys,ea6350v3|\
 	linksys,ea8300  |\
 	linksys,mr8300)
diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-wifi.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-wifi.dts
index 643449f8e4c8..65f593330558 100644
--- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-wifi.dts
+++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-wifi.dts
@@ -13,6 +13,10 @@ 
 	model = "Google WiFi (Gale)";
 	compatible = "google,wifi", "google,gale-v2", "qcom,ipq4019";
 
+	aliases {
+		label-mac-device = &gmac0;
+	};
+
 	chosen {
 		/*
 		 * rootwait: in case we're booting from slow/async USB storage.
@@ -25,6 +29,26 @@ 
 		device_type = "memory";
 		reg = <0x80000000 0x20000000>; /* 512MB */
 	};
+
+	soc {
+		edma@c080000 {
+			/*
+			 * Factory bootloader (depthcharge) will fail to boot
+			 * if this exact path (soc/edma@c080000/gmac0) doesn't
+			 * exist.
+			 */
+			gmac0: gmac0 {
+			};
+
+			/*
+			 * Factory bootloader (depthcharge) will fail to boot
+			 * if this exact path (soc/edma@c080000/gmac1) doesn't
+			 * exist.
+			 */
+			gmac1 {
+			};
+		};
+	};
 };
 
 &tlmm {
@@ -325,6 +349,10 @@ 
 	status = "okay";
 };
 
+&gmac {
+	status = "okay";
+};
+
 &mdio {
 	status = "okay";
 	pinctrl-0 = <&mdio_pins>;
@@ -344,6 +372,20 @@ 
 	non-removable;
 };
 
+&switch {
+	status = "okay";
+};
+
+&swport4 {
+	status = "okay";
+
+	label = "lan";
+};
+
+&swport5 {
+	status = "okay";
+};
+
 &usb2 {
 	status = "okay";
 };
diff --git a/target/linux/ipq40xx/image/chromium.mk b/target/linux/ipq40xx/image/chromium.mk
index 7410794fb4c7..2abd2df02ae4 100644
--- a/target/linux/ipq40xx/image/chromium.mk
+++ b/target/linux/ipq40xx/image/chromium.mk
@@ -33,5 +33,4 @@  define Device/google_wifi
 	DEVICE_PACKAGES := partx-utils mkf2fs e2fsprogs \
 			   kmod-fs-ext4 kmod-fs-f2fs kmod-google-firmware
 endef
-# Missing DSA Setup
-#TARGET_DEVICES += google_wifi
+TARGET_DEVICES += google_wifi