ath79: add support for booting QCN5502 SoC
authorWenli Looi <wlooi@ucalgary.ca>
Tue, 15 Jun 2021 09:21:01 +0000 (02:21 -0700)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 6 Feb 2022 23:03:27 +0000 (00:03 +0100)
Based on wikidevi, QCN5502 is a "Dragonfly" like QCA9561 and QCA9563.
Treating it as QCA956x seems to work.

Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
target/linux/ath79/patches-5.10/940-ath79-add-support-for-booting-QCN550x.patch [new file with mode: 0644]

diff --git a/target/linux/ath79/patches-5.10/940-ath79-add-support-for-booting-QCN550x.patch b/target/linux/ath79/patches-5.10/940-ath79-add-support-for-booting-QCN550x.patch
new file mode 100644 (file)
index 0000000..cf77433
--- /dev/null
@@ -0,0 +1,48 @@
+From: Wenli Looi <wlooi@ucalgary.ca>
+Date: Sun, 20 Jun 2021 23:32:28 -0700
+Subject: [PATCH] ath79: add support for booting QCN550x
+
+Based on wikidevi, QCN550x is a "Dragonfly" like QCA9561 and QCA9563.
+Treating it as QCA956x seems to work.
+Tested on Netgear EX7300v2 which boots successfully with
+the same CPU clock as the stock firmware.
+
+Link: https://wikidevi.wi-cat.ru/Qualcomm#bgn
+Link: https://wikidevi.wi-cat.ru/Qualcomm_Atheros#.28a.29bgn_2
+Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
+
+--- a/arch/mips/ath79/early_printk.c
++++ b/arch/mips/ath79/early_printk.c
+@@ -121,6 +121,7 @@ static void prom_putchar_init(void)
+       case REV_ID_MAJOR_QCA9558:
+       case REV_ID_MAJOR_TP9343:
+       case REV_ID_MAJOR_QCA956X:
++      case REV_ID_MAJOR_QCN550X:
+               _prom_putchar = prom_putchar_ar71xx;
+               break;
+--- a/arch/mips/ath79/setup.c
++++ b/arch/mips/ath79/setup.c
+@@ -168,6 +168,12 @@ static void __init ath79_detect_sys_type
+               rev = id & QCA956X_REV_ID_REVISION_MASK;
+               break;
++      case REV_ID_MAJOR_QCN550X:
++              ath79_soc = ATH79_SOC_QCA956X;
++              chip = "550X";
++              rev = id & QCA956X_REV_ID_REVISION_MASK;
++              break;
++
+       case REV_ID_MAJOR_TP9343:
+               ath79_soc = ATH79_SOC_TP9343;
+               chip = "9343";
+--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+@@ -867,6 +867,7 @@
+ #define REV_ID_MAJOR_QCA9558          0x1130
+ #define REV_ID_MAJOR_TP9343           0x0150
+ #define REV_ID_MAJOR_QCA956X          0x1150
++#define REV_ID_MAJOR_QCN550X          0x2170
+ #define AR71XX_REV_ID_MINOR_MASK      0x3
+ #define AR71XX_REV_ID_MINOR_AR7130    0x0