ath79: add support for YunCore XD4200 and A782
YunCore XD4200 ('XD4200_W6.0' marking on PCB) is Qualcomm/Atheros based
(QCA9563, QCA9886, QCA8334) dual-band, Wave-2 AC1200 ceiling AP with PoE
(802.3at) support. A782 model ('T750_V5.1' marking on PCB) is a smaller
version of the XD4200, with similar specification but lower TX power.
Specification:
- QCA9563 (775 MHz)
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- 2x 10/100/1000 Mbps Ethernet (QCA8334), with 802.3at PoE support (WAN)
- Wi-Fi 2.4 GHz:
  - XD4200: 2T2R (QCA9563), with ext. PA (SKY65174-21) and LNA
  - A782: 2T2R (QCA9563), with ext. FEM (SKY85329-11)
- Wi-Fi 5 GHz:
  - XD4200: 2T2R (QCA9886), with ext. FEM (SKY85728-11)
  - A782: 2T2R (QCA9886), with ext. FEM (SKY85735-11)
- LEDs:
  - XD4200: 5x (2x driven by SOC, 1x driven by AC radio, 2x Ethernet)
  - A782: 3x (1x RGB, driven by SOC and radio, 2x Ethernet)
- 1x button (reset)
- 1x UART (4-pin, 2.54 mm pitch) header on PCB
- 1x DC jack (12 V)
Flash instructions:
If your device comes with generic QSDK based firmware, you can login
over telnet (login: root, empty password, default IP: 192.168.188.253),
issue first (important!) 'fw_setenv' command and then perform regular
upgrade, using 'sysupgrade -n -F ...' (you can use 'wget' to download
image to the device, SSH server is not available):
  fw_setenv bootcmd "bootm 0x9f050000 || bootm 0x9fe80000"
  sysupgrade -n -F openwrt-...-yuncore_...-squashfs-sysupgrade.bin
In case your device runs firmware with YunCore custom GUI, you can use
U-Boot recovery mode:
1. Set a static IP 192.168.0.141/24 on PC and start TFTP server with
   'tftp' image renamed to 'upgrade.bin'
2. Power the device with reset button pressed and release it after 5-7
   seconds, recovery mode should start downloading image from server
   (unfortunately, there is no visible indication that recovery got
   enabled - in case of problems check TFTP server logs)
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
			
			
This commit is contained in:
		
							
								
								
									
										32
									
								
								target/linux/ath79/dts/qca9563_yuncore_a782.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								target/linux/ath79/dts/qca9563_yuncore_a782.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include "qca9563_yuncore_xd4200.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "yuncore,a782", "qca,qca9563"; | ||||||
|  | 	model = "YunCore A782"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_system; | ||||||
|  | 		led-failsafe = &led_system; | ||||||
|  | 		led-running = &led_system; | ||||||
|  | 		led-upgrade = &led_system; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_system: system { | ||||||
|  | 			label = "a782:red:system"; | ||||||
|  | 			gpios = <&gpio 1 GPIO_ACTIVE_LOW>; | ||||||
|  | 			default-state = "keep"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan2g { | ||||||
|  | 			label = "a782:green:wlan2g"; | ||||||
|  | 			gpios = <&gpio 19 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,default-trigger = "phy1tpt"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
							
								
								
									
										32
									
								
								target/linux/ath79/dts/qca9563_yuncore_xd4200.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								target/linux/ath79/dts/qca9563_yuncore_xd4200.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include "qca9563_yuncore_xd4200.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "yuncore,xd4200", "qca,qca9563"; | ||||||
|  | 	model = "YunCore XD4200"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_system; | ||||||
|  | 		led-failsafe = &led_system; | ||||||
|  | 		led-running = &led_system; | ||||||
|  | 		led-upgrade = &led_system; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_system: system { | ||||||
|  | 			label = "xd4200:blue:system"; | ||||||
|  | 			gpios = <&gpio 1 GPIO_ACTIVE_LOW>; | ||||||
|  | 			default-state = "keep"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan2g { | ||||||
|  | 			label = "xd4200:blue:wlan2g"; | ||||||
|  | 			gpios = <&gpio 19 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,default-trigger = "phy1tpt"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
							
								
								
									
										122
									
								
								target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,122 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  |  | ||||||
|  | #include "qca956x.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	aliases { | ||||||
|  | 		label-mac-device = ð0; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		bootargs = "console=ttyS0,115200n8"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 			gpios = <&gpio 2 GPIO_ACTIVE_LOW>; | ||||||
|  | 			debounce-interval = <60>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pll-data = <0x03000101 0x00000101 0x00001919>; | ||||||
|  |  | ||||||
|  | 	mtd-mac-address = <&art 0x0>; | ||||||
|  | 	phy-mode = "sgmii"; | ||||||
|  | 	phy-handle = <&phy0>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gpio { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	phy-mask = <0>; | ||||||
|  |  | ||||||
|  | 	phy0: ethernet-phy@0 { | ||||||
|  | 		reg = <0>; | ||||||
|  | 		phy-mode = "sgmii"; | ||||||
|  |  | ||||||
|  | 		qca,ar8327-initvals = < | ||||||
|  | 			0x04 0x00080080 /* PORT0 PAD MODE CTRL */ | ||||||
|  | 			0x10 0x81000080 /* POWER_ON_STRIP */ | ||||||
|  | 			0x50 0xcf37cf37 /* LED_CTRL0 */ | ||||||
|  | 			0x54 0xcf37cf37 /* LED_CTRL1 */ | ||||||
|  | 			0x58 0xcf37cf37 /* LED_CTRL2 */ | ||||||
|  | 			0x5c 0x0000c300 /* LED_CTRL3 */ | ||||||
|  | 			0x7c 0x0000007e /* PORT0_STATUS */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	wifi@0,0 { | ||||||
|  | 		compatible = "pci168c,0056"; | ||||||
|  | 		reg = <0x0000 0 0 0 0>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &spi { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	num-cs = <1>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <25000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "u-boot"; | ||||||
|  | 				reg = <0x000000 0x040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "u-boot-env"; | ||||||
|  | 				reg = <0x040000 0x010000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@50000 { | ||||||
|  | 				compatible = "denx,uimage"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x050000 0xfa0000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			art: partition@ff0000 { | ||||||
|  | 				label = "art"; | ||||||
|  | 				reg = <0xff0000 0x010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &uart { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wmac { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	mtd-cal-data = <&art 0x1000>; | ||||||
|  | }; | ||||||
| @@ -164,7 +164,9 @@ ath79_setup_interfaces() | |||||||
| 	nec,wg1200cr|\ | 	nec,wg1200cr|\ | ||||||
| 	ubnt,nanostation-ac|\ | 	ubnt,nanostation-ac|\ | ||||||
| 	ubnt,unifiac-mesh-pro|\ | 	ubnt,unifiac-mesh-pro|\ | ||||||
| 	ubnt,unifiac-pro) | 	ubnt,unifiac-pro|\ | ||||||
|  | 	yuncore,a782|\ | ||||||
|  | 	yuncore,xd4200) | ||||||
| 		ucidef_add_switch "switch0" \ | 		ucidef_add_switch "switch0" \ | ||||||
| 			"0@eth0" "2:lan" "3:wan" | 			"0@eth0" "2:lan" "3:wan" | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -154,6 +154,12 @@ case "$FIRMWARE" in | |||||||
| 		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ | 		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ | ||||||
| 			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | 			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | ||||||
| 		;; | 		;; | ||||||
|  | 	yuncore,a782|\ | ||||||
|  | 	yuncore,xd4200) | ||||||
|  | 		caldata_extract "art" 0x5000 0x2f20 | ||||||
|  | 		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ | ||||||
|  | 			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | ||||||
|  | 		;; | ||||||
| 	esac | 	esac | ||||||
| 	;; | 	;; | ||||||
| *) | *) | ||||||
|   | |||||||
| @@ -1040,6 +1040,28 @@ define Device/yuncore_a770 | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += yuncore_a770 | TARGET_DEVICES += yuncore_a770 | ||||||
|  |  | ||||||
|  | define Device/yuncore_a782 | ||||||
|  |   ATH_SOC := qca9563 | ||||||
|  |   DEVICE_VENDOR := YunCore | ||||||
|  |   DEVICE_MODEL := A782 | ||||||
|  |   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct | ||||||
|  |   IMAGE_SIZE := 16000k | ||||||
|  |   IMAGES += tftp.bin | ||||||
|  |   IMAGE/tftp.bin := $$(IMAGE/sysupgrade.bin) | yuncore-tftp-header-16m | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += yuncore_a782 | ||||||
|  |  | ||||||
|  | define Device/yuncore_xd4200 | ||||||
|  |   ATH_SOC := qca9563 | ||||||
|  |   DEVICE_VENDOR := YunCore | ||||||
|  |   DEVICE_MODEL := XD4200 | ||||||
|  |   DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct | ||||||
|  |   IMAGE_SIZE := 16000k | ||||||
|  |   IMAGES += tftp.bin | ||||||
|  |   IMAGE/tftp.bin := $$(IMAGE/sysupgrade.bin) | yuncore-tftp-header-16m | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += yuncore_xd4200 | ||||||
|  |  | ||||||
| define Device/zbtlink_zbt-wd323 | define Device/zbtlink_zbt-wd323 | ||||||
|   ATH_SOC := ar9344 |   ATH_SOC := ar9344 | ||||||
|   DEVICE_VENDOR := ZBT |   DEVICE_VENDOR := ZBT | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Piotr Dymacz
					Piotr Dymacz