From 17b49e20eefa9e824b15fac27363f6b521c3fcd8 Mon Sep 17 00:00:00 2001
From: Jan Alexander <jan@nalx.net>
Date: Wed, 1 Apr 2020 09:44:45 +0200
Subject: [PATCH] ath79-generic: add support for GL.iNet GL-AR750S

---
 docs/user/supported_devices.rst               |  1 +
 .../luasrc/lib/gluon/upgrade/010-primary-mac  |  1 +
 ...le-GL-AR750S-NOR-variant-from-master.patch | 72 +++++++++++++++++++
 targets/ath79-generic                         | 14 +++-
 4 files changed, 87 insertions(+), 1 deletion(-)
 create mode 100644 patches/openwrt/0009-ath79-enable-GL-AR750S-NOR-variant-from-master.patch

diff --git a/docs/user/supported_devices.rst b/docs/user/supported_devices.rst
index 2cb6021cf..c84acf4f9 100644
--- a/docs/user/supported_devices.rst
+++ b/docs/user/supported_devices.rst
@@ -196,6 +196,7 @@ ath79-generic
 * GL.iNet
 
   - GL-AR300M-Lite
+  - GL-AR750S
 
 * OCEDO
 
diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac b/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
index 2a5bc2c79..adfd4ea15 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
@@ -82,6 +82,7 @@ local primary_addrs = {
 			'hiveap-121',
 		}},
 		{'ath79', 'generic', {
+			'glinet,gl-ar750s-nor',
 			'ocedo,raccoon',
 		}},
 		{'ipq40xx', 'generic', {
diff --git a/patches/openwrt/0009-ath79-enable-GL-AR750S-NOR-variant-from-master.patch b/patches/openwrt/0009-ath79-enable-GL-AR750S-NOR-variant-from-master.patch
new file mode 100644
index 000000000..68428339a
--- /dev/null
+++ b/patches/openwrt/0009-ath79-enable-GL-AR750S-NOR-variant-from-master.patch
@@ -0,0 +1,72 @@
+From 0d5a95cac5aada71108e2178e0ec5b2a6efdc415 Mon Sep 17 00:00:00 2001
+From: Jan Alexander <jan@nalx.net>
+Date: Tue, 31 Mar 2020 21:50:28 +0200
+Subject: [PATCH] ath79: enable GL-AR750S NOR variant from master
+
+---
+ target/linux/ath79/base-files/etc/board.d/02_network          | 2 +-
+ .../ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata | 2 +-
+ target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts           | 4 ++--
+ target/linux/ath79/image/generic.mk                           | 4 ++--
+ 4 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
+index 8edd4e6c2e..2d2d4e33af 100755
+--- a/target/linux/ath79/base-files/etc/board.d/02_network
++++ b/target/linux/ath79/base-files/etc/board.d/02_network
+@@ -140,7 +140,7 @@ ath79_setup_interfaces()
+ 	etactica,eg200)
+ 		ucidef_set_interface_lan "eth0" "dhcp"
+ 		;;
+-	glinet,gl-ar750s)
++	glinet,gl-ar750s-nor)
+ 		ucidef_add_switch "switch0" \
+ 			"0@eth0" "2:lan:2" "3:lan:1" "1:wan"
+ 		;;
+diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+index d93e6dcd71..c917f38211 100644
+--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
++++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+@@ -117,7 +117,7 @@ case "$FIRMWARE" in
+ 		ath10kcal_extract "art" 20480 2116
+ 		ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
+ 		;;
+-	glinet,gl-ar750s)
++	glinet,gl-ar750s-nor)
+ 		ath10kcal_extract "art" 20480 2116
+ 		ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0) +1)
+ 		;;
+diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts b/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts
+index 0145a24fba..ebecb8cc77 100644
+--- a/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts
++++ b/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts
+@@ -7,8 +7,8 @@
+ #include "qca956x.dtsi"
+ 
+ / {
+-	compatible = "glinet,gl-ar750s", "qca,qca9563";
+-	model = "GL.iNet GL-AR750S";
++	compatible = "glinet,gl-ar750s-nor", "qca,qca9563";
++	model = "GL.iNet GL-AR750S (NOR)";
+ 
+ 	chosen {
+ 		bootargs = "console=ttyS0,115200n8";
+diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
+index 55053be34f..892ef10f87 100644
+--- a/target/linux/ath79/image/generic.mk
++++ b/target/linux/ath79/image/generic.mk
+@@ -403,9 +403,9 @@ define Device/glinet_gl-ar750s
+   DEVICE_TITLE := GL.iNet GL-AR750S
+   DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct block-mount
+   IMAGE_SIZE := 16000k
+-  SUPPORTED_DEVICES += gl-ar750s
++  SUPPORTED_DEVICES += gl-ar750s glinet,gl-ar750s-nor
+ endef
+-#TARGET_DEVICES += glinet_gl-ar750s
++TARGET_DEVICES += glinet_gl-ar750s
+ 
+ define Device/glinet_gl-x750
+   ATH_SOC := qca9531
+-- 
+2.25.1
+
diff --git a/targets/ath79-generic b/targets/ath79-generic
index 6d84dde72..d55ae16f8 100644
--- a/targets/ath79-generic
+++ b/targets/ath79-generic
@@ -6,6 +6,14 @@ local ATH10K_PACKAGES_QCA9880 = {
 	'-ath10k-firmware-qca988x-ct',
 }
 
+local ATH10K_PACKAGES_QCA9887 = {
+	'kmod-ath10k',
+	'-kmod-ath10k-ct',
+	'-kmod-ath10k-ct-smallbuffers',
+	'ath10k-firmware-qca9887',
+	'-ath10k-firmware-qca9887-ct',
+}
+
 local ATH10K_PACKAGES_QCA9888 = {
 	'kmod-ath10k',
 	'-kmod-ath10k-ct',
@@ -52,6 +60,11 @@ device('gl.inet-gl-ar300m-lite', 'glinet_gl-ar300m-lite', {
 	factory = false,
 })
 
+device('gl.inet-gl-ar750s-nor', 'glinet_gl-ar750s', {
+	factory = false,
+	packages = ATH10K_PACKAGES_QCA9887,
+})
+
 -- OCEDO
 
 device('ocedo-raccoon', 'ocedo_raccoon', {
@@ -63,4 +76,3 @@ device('ocedo-raccoon', 'ocedo_raccoon', {
 device('tp-link-archer-c6-v2', 'tplink_archer-c6-v2', {
 	packages = ATH10K_PACKAGES_QCA9888,
 })
-
-- 
GitLab