aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79
diff options
context:
space:
mode:
authorINAGAKI Hiroshi <musashino.open@gmail.com>2018-12-08 15:18:17 +0900
committerChristian Lamparter <chunkeey@gmail.com>2018-12-24 19:18:07 +0100
commitc566439c9bf3cf2b4e5e5a059332c64199d97611 (patch)
tree88e55e4b1cbf4911e29df8e7ad31e341882d7aae /target/linux/ath79
parent99df98442e1101607e3e6c902d5d957e72cea1d6 (diff)
downloadupstream-c566439c9bf3cf2b4e5e5a059332c64199d97611.tar.gz
upstream-c566439c9bf3cf2b4e5e5a059332c64199d97611.tar.bz2
upstream-c566439c9bf3cf2b4e5e5a059332c64199d97611.zip
ath79: add support for NEC Aterm WG800HP
NEC Aterm WG800HP is a 2.4/5 GHz band 11ac router, based on Qualcomm Atheros QCA9563. Specification: - Qualcomm Atheros QCA9563 - 64 MB of RAM (DDR2) - 8 MB of Flash (SPI-NOR) - 2.4/5 GHz wifi - 2.4 GHz: 2T2R (SoC internal) - 5 GHz: 1T1R (QCA9887) - 4x 10/100/1000 Mbps Ethernet - 8x LEDs, 3x keys (2x buttons, 1x slide-switch) - UART through-hole on PCB (J2) - Vcc, GND, NC, TX, RX from SoC side - 115200n8 Flash instruction using factory image: 1. Connect the computer to the LAN port on WG800HP 2. Connect power cable to WG800HP and turn on it 3. Access to "http://192.168.10.1/" and open firmware update page ("ファームウェア更新") 4. Select the OpenWrt factory image and click update ("更新") button 5. Wait ~150 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Diffstat (limited to 'target/linux/ath79')
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/02_network8
-rw-r--r--target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom4
-rw-r--r--target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata4
-rw-r--r--target/linux/ath79/dts/qca9563_nec_wg800hp.dts188
-rw-r--r--target/linux/ath79/image/generic.mk23
5 files changed, 227 insertions, 0 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 1d6cd4e774..35eff1c8f8 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -89,6 +89,10 @@ ath79_setup_interfaces()
glinet,gl-x750)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;
+ nec,wg800hp)
+ ucidef_add_switch "switch0" \
+ "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
+ ;;
netgear,wndr3700|\
netgear,wndr3700v2|\
netgear,wndr3800)
@@ -238,6 +242,10 @@ ath79_setup_macs()
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
;;
+ nec,wg800hp)
+ lan_mac=$(mtd_get_mac_text board_data 640)
+ wan_mac=$(mtd_get_mac_text board_data 1152)
+ ;;
netgear,wndr3700|\
netgear,wndr3700v2|\
netgear,wndr3800)
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index bf61ecf5dd..f6ff582150 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -111,6 +111,10 @@ case "$FIRMWARE" in
ath9k_eeprom_extract "art" 4096 1088
ath9k_patch_fw_mac $(mtd_get_mac_ascii u-boot-env ethaddr) 2
;;
+ nec,wg800hp)
+ ath9k_eeprom_extract "art" 4096 1088
+ ath9k_patch_fw_mac $(mtd_get_mac_text board_data 1664) 2
+ ;;
*)
ath9k_eeprom_die "board $board is not supported yet"
;;
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 9ecda22244..fbe70b8b5c 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
@@ -96,6 +96,10 @@ case "$FIRMWARE" in
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1)
;;
+ nec,wg800hp)
+ ath10kcal_extract "art" 20480 2116
+ ath10kcal_patch_mac_crc $(mtd_get_mac_text board_data 2176)
+ ;;
ocedo,koala)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(mtd_get_mac_binary art 12)
diff --git a/target/linux/ath79/dts/qca9563_nec_wg800hp.dts b/target/linux/ath79/dts/qca9563_nec_wg800hp.dts
new file mode 100644
index 0000000000..9cba99b6a6
--- /dev/null
+++ b/target/linux/ath79/dts/qca9563_nec_wg800hp.dts
@@ -0,0 +1,188 @@
+// 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"
+
+/ {
+ model = "NEC Aterm WG800HP";
+ compatible = "nec,wg800hp", "qca,qca9563";
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins>;
+
+ wlan2g_red {
+ label = "wg800hp:red:wlan2g";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ active_red {
+ label = "wg800hp:red:active";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+
+ active_green {
+ label = "wg800hp:green:active";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+
+ power_red: power_red {
+ label = "wg800hp:red:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+
+ power_green: power_green {
+ label = "wg800hp:green:power";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+ wlan5g_red {
+ label = "wg800hp:red:wlan5g";
+ gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+ };
+
+ wlan5g_green {
+ label = "wg800hp:green:wlan5g";
+ gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "phy0tpt";
+ };
+
+ wlan2g_green {
+ label = "wg800hp:green:wlan2g";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1tpt";
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ br {
+ label = "br";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_0>;
+ linux,input-type = <EV_SW>;
+ debounce-interval = <60>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ debounce-interval = <60>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ debounce-interval = <60>;
+ };
+ };
+};
+
+&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>;
+ read-only;
+ };
+
+ partition@50000 {
+ compatible = "denx,uimage";
+ label = "firmware";
+ reg = <0x050000 0x6f0000>;
+ };
+
+ partition@740000 {
+ label = "user_data";
+ reg = <0x740000 0x0a0000>;
+ read-only;
+ };
+
+ partition@7e0000 {
+ label = "board_data";
+ reg = <0x7e0000 0x010000>;
+ read-only;
+ };
+
+ art: partition@7f0000 {
+ label = "art";
+ reg = <0x7f0000 0x010000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&mdio0 {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+
+ qca,ar8327-initvals = <
+ 0x04 0x00000080 /* PORT0 PAD MODE CTRL */
+ 0x50 0xcc35cc35 /* LED_CTRL0 */
+ 0x54 0xca35ca35 /* LED_CTRL1 */
+ 0x58 0xc935c935 /* LED_CTRL2 */
+ 0x5c 0x03ffff00 /* LED_CTRL3 */
+ 0x7c 0x0000007e /* PORT0_STATUS */
+ >;
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ phy-mode = "sgmii";
+ phy-handle = <&phy0>;
+};
+
+&pcie {
+ status = "okay";
+};
+
+&uart {
+ status = "okay";
+};
+
+&wmac {
+ status = "okay";
+ qca,no-eeprom;
+};
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index c6cecc20d3..badfa7cbab 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -43,6 +43,16 @@ define Build/elecom-header
endef
+define Build/nec-fw
+ ( stat -c%s $@ | tr -d "\n" | dd bs=16 count=1 conv=sync; ) >> $@
+ ( \
+ echo -n -e "$(1)" | dd bs=16 count=1 conv=sync; \
+ echo -n "0.0.00" | dd bs=16 count=1 conv=sync; \
+ dd if=$@; \
+ ) > $@.new
+ mv $@.new $@
+endef
+
define Device/avm_fritz300e
ATH_SOC := ar7242
DEVICE_TITLE := AVM FRITZ!WLAN Repeater 300E
@@ -262,6 +272,19 @@ define Device/iodata_wn-ag300dgr
endef
TARGET_DEVICES += iodata_wn-ag300dgr
+define Device/nec_wg800hp
+ ATH_SOC := qca9563
+ DEVICE_TITLE := NEC Aterm WG800HP
+ IMAGE_SIZE := 7104k
+ IMAGES += factory.bin
+ IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
+ xor-image -p 6A57190601121E4C004C1E1201061957 -x | \
+ nec-fw LASER_ATERM
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct-htt
+endef
+TARGET_DEVICES += nec_wg800hp
+
define Device/ocedo_koala
ATH_SOC := qca9558
DEVICE_TITLE := OCEDO Koala