From 2d7f1ed162d796e0b179f4787ccc000b7c39e285 Mon Sep 17 00:00:00 2001 From: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com> Date: Mon, 3 Feb 2020 23:45:16 +0800 Subject: [PATCH] ath79: sync and fix wireless (#2919) This commit sync target ath79 from openwrt master, and revert some commit which will causes wireless to not work. Use ath10k-ct-smallbuffers by default, so that small memory devices can normal work. --- include/image-commands.mk | 31 +- include/image.mk | 3 +- .../etc/hotplug.d/firmware/11-ath10k-caldata | 2 +- .../ath79/dts/ar7161_adtran_bsap1880.dtsi | 1 - .../dts/ar7161_buffalo_wzr-hp-ag300h.dts | 6 +- .../ath79/dts/ar7161_dlink_dir-825-b1.dts | 6 +- .../ath79/dts/ar7161_netgear_wndr3700.dtsi | 11 +- .../ath79/dts/ar7161_ubnt_routerstation.dtsi | 5 +- target/linux/ath79/dts/ar7240.dtsi | 1 - .../ath79/dts/ar7240_dlink_dir-615-e4.dts | 170 ++++++++ .../ath79/dts/ar7240_netgear_wnr612-v2.dtsi | 1 - target/linux/ath79/dts/ar7241.dtsi | 1 - .../ath79/dts/ar7241_netgear_wnr2200.dtsi | 1 - .../ath79/dts/ar7242_buffalo_wzr-bhr.dtsi | 1 - .../ath79/dts/ar7242_ubnt_edgeswitch-5xp.dts | 77 ++++ .../ath79/dts/ar7242_ubnt_edgeswitch-8xp.dts | 190 +++++++++ target/linux/ath79/dts/ar7242_ubnt_sw.dtsi | 142 +++++++ .../ath79/dts/ar9132_tplink_tl-wa901nd-v2.dts | 5 +- target/linux/ath79/dts/ar9330.dtsi | 1 - .../linux/ath79/dts/ar9330_dlink_dir-505.dts | 149 +++++++ target/linux/ath79/dts/ar9331_glinet_6408.dts | 45 +++ target/linux/ath79/dts/ar9331_glinet_6416.dts | 45 +++ .../linux/ath79/dts/ar9331_glinet_64xx.dtsi | 91 +++++ .../dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi | 1 - .../dts/ar9331_tplink_tl-wr741nd-v4.dtsi | 1 - target/linux/ath79/dts/ar9341.dtsi | 4 - target/linux/ath79/dts/ar9341_pcs_cr3000.dts | 6 +- target/linux/ath79/dts/ar9341_tplink.dtsi | 1 - .../linux/ath79/dts/ar9341_tplink_tl-wa.dtsi | 82 ++++ .../ath79/dts/ar9341_tplink_tl-wa850re-v1.dts | 79 ++++ .../dts/ar9342_ubnt_litebeam-ac-gen2.dts | 39 ++ .../dts/ar9342_ubnt_nanostation-loco-m-xw.dts | 29 ++ .../dts/ar9342_ubnt_nanostation-m-xw.dts | 5 +- .../ath79/dts/ar9344_comfast_cf-e120a-v3.dts | 10 +- .../linux/ath79/dts/ar9344_dlink_dir-8x5.dtsi | 1 - .../linux/ath79/dts/ar9344_netgear_wndr.dtsi | 38 +- target/linux/ath79/dts/ar9344_tplink_cpe.dtsi | 1 - .../ath79/dts/ar9344_tplink_cpe_1port.dtsi | 1 - .../ath79/dts/ar9344_tplink_cpe_2port.dtsi | 1 - .../dts/ar9344_tplink_tl-wdr4300-v1-il.dts | 9 + .../ath79/dts/ar9344_tplink_tl-wdr4300.dtsi | 59 ++- target/linux/ath79/dts/ar934x.dtsi | 4 +- .../ath79/dts/qca9531_glinet_gl-ar300m.dtsi | 2 - .../ath79/dts/qca9531_tplink_tl-mr6400-v1.dts | 167 ++++++++ .../dts/qca9531_tplink_tl-wr902ac-v1.dts | 188 +++++++++ .../ath79/dts/qca9533_comfast_cf-e110n-v2.dts | 10 +- .../ath79/dts/qca9533_tplink_cpe210.dtsi | 1 - .../ath79/dts/qca9533_tplink_cpexxx.dtsi | 1 - .../dts/qca9533_tplink_tl-wa850re-v2.dts | 164 ++++++++ .../dts/qca9533_tplink_tl-wr841-v11.dtsi | 1 - .../ath79/dts/qca9533_tplink_tl-wr841.dtsi | 1 - target/linux/ath79/dts/qca953x.dtsi | 2 - .../ath79/dts/qca953x_tplink_tl-wr810n.dtsi | 1 - ...6_mikrotik_routerboard-wap-g-5hact2hnd.dts | 138 +++++++ .../ath79/dts/qca9557_iodata_wn-ac-dgr.dtsi | 1 - .../ath79/dts/qca9558_comfast_cf-wr650ac.dtsi | 1 - .../ath79/dts/qca9558_devolo_dvl1xxx.dtsi | 5 +- .../ath79/dts/qca9558_engenius_ecb1750.dts | 3 +- .../ath79/dts/qca9558_netgear_ex7300.dtsi | 1 - .../linux/ath79/dts/qca9558_ocedo_koala.dts | 3 +- .../ath79/dts/qca9558_tplink_archer-c.dtsi | 1 - .../ath79/dts/qca9558_tplink_re350k-v1.dts | 10 +- .../linux/ath79/dts/qca9558_tplink_rex5x.dtsi | 10 +- .../ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi | 1 - .../linux/ath79/dts/qca9558_zyxel_nbg6716.dts | 8 +- .../linux/ath79/dts/qca9561_avm_fritz4020.dts | 1 - .../dts/qca9561_tplink_archer-c25-v1.dts | 1 - .../ath79/dts/qca9561_tplink_archer-c5x.dtsi | 1 - .../ath79/dts/qca9561_tplink_archer-c6x.dtsi | 2 - .../ath79/dts/qca9563_dlink_dir-842-c.dtsi | 1 - .../ath79/dts/qca9563_elecom_wrc-ghbk2-i.dtsi | 1 - .../ath79/dts/qca9563_glinet_gl-ar750s.dtsi | 2 - .../linux/ath79/dts/qca9563_netgear_wndr.dtsi | 256 ++++++++++++ .../ath79/dts/qca9563_netgear_wndr4300-v2.dts | 19 + .../ath79/dts/qca9563_netgear_wndr4500-v3.dts | 41 ++ .../linux/ath79/dts/qca9563_phicomm_k2t.dts | 10 +- .../dts/qca9563_tplink_archer-x7-v5.dtsi | 1 - .../ath79/dts/qca9563_tplink_re450-v2.dts | 8 +- .../ath79/dts/qca9563_tplink_tl-wr1043n.dtsi | 1 - .../ath79/dts/qca9563_yuncore_xd4200.dtsi | 1 - target/linux/ath79/dts/qca956x.dtsi | 2 - .../ath79/dts/tp9343_tplink_tl-wr940n-v3.dtsi | 1 - .../ath79/dts/tp9343_tplink_tl-wr94x.dtsi | 2 - .../net/ethernet/atheros/ag71xx/ag71xx_main.c | 108 +++++ .../generic/base-files/etc/board.d/01_leds | 13 +- .../generic/base-files/etc/board.d/02_network | 49 ++- .../etc/hotplug.d/firmware/10-ath9k-eeprom | 152 +++++-- .../etc/hotplug.d/firmware/11-ath10k-caldata | 168 +++++--- .../etc/uci-defaults/04_led_migration | 8 +- .../lib/functions/mikrotik-caldata.sh | 21 + target/linux/ath79/generic/config-default | 1 + target/linux/ath79/generic/target.mk | 4 +- target/linux/ath79/image/Makefile | 6 +- target/linux/ath79/image/common-mikrotik.mk | 7 + target/linux/ath79/image/common-netgear.mk | 6 +- target/linux/ath79/image/common-tp-link.mk | 81 ++-- target/linux/ath79/image/generic-tp-link.mk | 215 ++++++---- target/linux/ath79/image/generic-ubnt.mk | 121 ++++-- target/linux/ath79/image/generic.mk | 377 +++++++++++------- target/linux/ath79/image/lzma-loader/Makefile | 4 +- target/linux/ath79/image/nand.mk | 78 ++-- target/linux/ath79/image/tiny-netgear.mk | 18 +- target/linux/ath79/image/tiny-tp-link.mk | 102 +++-- target/linux/ath79/image/tiny.mk | 29 +- .../ath79/nand/base-files/etc/board.d/01_leds | 4 +- .../nand/base-files/etc/board.d/02_network | 8 +- .../etc/hotplug.d/firmware/10-ath9k-eeprom | 69 +++- .../etc/hotplug.d/firmware/11-ath10k-caldata | 35 +- .../ath79/tiny/base-files/etc/board.d/01_leds | 17 + .../tiny/base-files/etc/board.d/02_network | 8 + .../etc/hotplug.d/firmware/10-ath9k-eeprom | 69 +++- target/linux/ath79/tiny/config-default | 1 + 112 files changed, 3515 insertions(+), 691 deletions(-) create mode 100644 target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts create mode 100644 target/linux/ath79/dts/ar7242_ubnt_edgeswitch-5xp.dts create mode 100644 target/linux/ath79/dts/ar7242_ubnt_edgeswitch-8xp.dts create mode 100644 target/linux/ath79/dts/ar7242_ubnt_sw.dtsi create mode 100644 target/linux/ath79/dts/ar9330_dlink_dir-505.dts create mode 100644 target/linux/ath79/dts/ar9331_glinet_6408.dts create mode 100644 target/linux/ath79/dts/ar9331_glinet_6416.dts create mode 100644 target/linux/ath79/dts/ar9331_glinet_64xx.dtsi create mode 100644 target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi create mode 100644 target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts create mode 100644 target/linux/ath79/dts/ar9342_ubnt_litebeam-ac-gen2.dts create mode 100644 target/linux/ath79/dts/ar9342_ubnt_nanostation-loco-m-xw.dts create mode 100644 target/linux/ath79/dts/ar9344_tplink_tl-wdr4300-v1-il.dts create mode 100644 target/linux/ath79/dts/qca9531_tplink_tl-mr6400-v1.dts create mode 100644 target/linux/ath79/dts/qca9531_tplink_tl-wr902ac-v1.dts create mode 100644 target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts create mode 100644 target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts create mode 100644 target/linux/ath79/dts/qca9563_netgear_wndr.dtsi create mode 100644 target/linux/ath79/dts/qca9563_netgear_wndr4300-v2.dts create mode 100644 target/linux/ath79/dts/qca9563_netgear_wndr4500-v3.dts create mode 100644 target/linux/ath79/generic/base-files/lib/functions/mikrotik-caldata.sh create mode 100644 target/linux/ath79/image/common-mikrotik.mk diff --git a/include/image-commands.mk b/include/image-commands.mk index 5dfd6a2c2..4cf129372 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -3,6 +3,10 @@ IMAGE_KERNEL = $(word 1,$^) IMAGE_ROOTFS = $(word 2,$^) +define rootfs_align +$(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1)))))) +endef + define Build/uImage mkimage -A $(LINUX_KARCH) \ -O linux -T kernel \ @@ -271,6 +275,13 @@ define Build/check-size } endef +define Build/check-kernel-size + @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$(stat -c%s $(IMAGE_KERNEL))" ] || { \ + echo "WARNING: Kernel for $@ is too big > $(1)" >&2; \ + rm -f $@; \ + } +endef + define Build/combined-image -sh $(TOPDIR)/scripts/combined-image.sh \ "$(IMAGE_KERNEL)" \ @@ -308,7 +319,7 @@ endef define Build/qsdk-ipq-factory-nor $(TOPDIR)/scripts/mkits-qsdk-ipq-image.sh \ - $@.its hlos $(IMAGE_KERNEL) rootfs $(IMAGE_ROOTFS) + $@.its kernel $(IMAGE_KERNEL) rootfs $(IMAGE_ROOTFS) PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new @mv $@.new $@ endef @@ -335,6 +346,24 @@ define Build/tplink-v1-header @mv $@.new $@ endef +# combine kernel and rootfs into one image +# mktplinkfw +# is "sysupgrade" or "factory" +# +# -a align the rootfs start on an bytes boundary +# -j add jffs2 end-of-filesystem markers +# -s strip padding from end of the image +# -X reserve bytes in the firmware image (hexval prefixed with 0x) +define Build/tplink-v1-image + -$(STAGING_DIR_HOST)/bin/mktplinkfw \ + -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \ + -N "$(VERSION_DIST)" -V $(REVISION) -m $(TPLINK_HEADER_VERSION) \ + -k $(IMAGE_KERNEL) -r $(IMAGE_ROOTFS) -o $@.new -j -X 0x40000 \ + -a $(call rootfs_align,$(FILESYSTEM)) \ + $(wordlist 2,$(words $(1)),$(1)) \ + $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@ +endef + define Build/tplink-v2-header $(STAGING_DIR_HOST)/bin/mktplinkfw2 \ -c -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -L $(KERNEL_LOADADDR) \ diff --git a/include/image.mk b/include/image.mk index 8592c19b9..26da4d681 100644 --- a/include/image.mk +++ b/include/image.mk @@ -420,6 +420,7 @@ define Device/Init DEVICE_DTS := DEVICE_DTS_CONFIG := DEVICE_DTS_DIR := + SOC := BOARD_NAME := UIMAGE_NAME := @@ -437,7 +438,7 @@ DEFAULT_DEVICE_VARS := \ DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE KERNEL_SIZE \ CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI BLOCKSIZE PAGESIZE SUBPAGESIZE \ VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \ - DEVICE_DTS_CONFIG DEVICE_DTS_DIR BOARD_NAME UIMAGE_NAME SUPPORTED_DEVICES \ + DEVICE_DTS_CONFIG DEVICE_DTS_DIR SOC BOARD_NAME UIMAGE_NAME SUPPORTED_DEVICES \ IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR UBOOT_PATH DEVICE_VENDOR \ DEVICE_MODEL DEVICE_VARIANT \ DEVICE_ALT0_VENDOR DEVICE_ALT0_MODEL DEVICE_ALT0_VARIANT \ diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index af6c976d3..0d72ca0c7 100644 --- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -229,7 +229,7 @@ case "$FIRMWARE" in ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ /lib/firmware/ath10k/QCA9888/hw2.0/board.bin ;; - tl-wdr6500-v6) + tl-wdr6500-v6) ath10kcal_extract "art" 8192 12064 ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ /lib/firmware/ath10k/QCA9888/hw2.0/board.bin diff --git a/target/linux/ath79/dts/ar7161_adtran_bsap1880.dtsi b/target/linux/ath79/dts/ar7161_adtran_bsap1880.dtsi index f5dfa7791..b60718dd7 100644 --- a/target/linux/ath79/dts/ar7161_adtran_bsap1880.dtsi +++ b/target/linux/ath79/dts/ar7161_adtran_bsap1880.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts b/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts index 2e00de888..e87f42205 100644 --- a/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts +++ b/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts @@ -47,7 +47,7 @@ usb { label = "buffalo:green:usb"; gpios = <&ath9k0 3 GPIO_ACTIVE_LOW>; - trigger-sources = <&usb_ochi_port>, <&usb_echi_port>; + trigger-sources = <&usb_ohci_port>, <&usb_ehci_port>; linux,default-trigger = "usbport"; }; @@ -180,7 +180,7 @@ #size-cells = <0>; status = "okay"; - usb_ochi_port: port@1 { + usb_ohci_port: port@1 { reg = <1>; #trigger-source-cells = <0>; }; @@ -191,7 +191,7 @@ #size-cells = <0>; status = "okay"; - usb_echi_port: port@1 { + usb_ehci_port: port@1 { reg = <1>; #trigger-source-cells = <0>; }; diff --git a/target/linux/ath79/dts/ar7161_dlink_dir-825-b1.dts b/target/linux/ath79/dts/ar7161_dlink_dir-825-b1.dts index 92de193ab..5e35dddd4 100644 --- a/target/linux/ath79/dts/ar7161_dlink_dir-825-b1.dts +++ b/target/linux/ath79/dts/ar7161_dlink_dir-825-b1.dts @@ -34,7 +34,7 @@ usb { label = "d-link:blue:usb"; gpios = <&gpio 0 GPIO_ACTIVE_LOW>; - trigger-sources = <&usb_ochi_port>, <&usb_echi_port>; + trigger-sources = <&usb_ohci_port>, <&usb_ehci_port>; linux,default-trigger = "usbport"; }; @@ -123,7 +123,7 @@ #size-cells = <0>; status = "okay"; - usb_ochi_port: port@1 { + usb_ohci_port: port@1 { reg = <1>; #trigger-source-cells = <0>; }; @@ -134,7 +134,7 @@ #size-cells = <0>; status = "okay"; - usb_echi_port: port@1 { + usb_ehci_port: port@1 { reg = <1>; #trigger-source-cells = <0>; }; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi index 7d842af06..ab4f37da1 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include @@ -32,7 +31,7 @@ usb_led { label = "netgear:green:usb"; resets = <&rst 12>; - trigger-sources = <&usb_ochi_port>, <&usb_echi_port>; + trigger-sources = <&usb_ohci_port>, <&usb_ehci_port>; linux,default-trigger = "usbport"; }; }; @@ -134,7 +133,7 @@ #size-cells = <0>; status = "okay"; - usb_ochi_port: port@1 { + usb_ohci_port: port@1 { reg = <1>; #trigger-source-cells = <0>; }; @@ -145,7 +144,7 @@ #size-cells = <0>; status = "okay"; - usb_echi_port: port@1 { + usb_ehci_port: port@1 { reg = <1>; #trigger-source-cells = <0>; }; @@ -156,7 +155,7 @@ ath9k0: wifi@0,11 { compatible = "pci168c,0029"; - reg = <0x8800 0 0 0 0x10000>; + reg = <0x8800 0 0 0 0>; mtd-mac-address = <&art 0x0>; qca,no-eeprom; #gpio-cells = <2>; @@ -165,7 +164,7 @@ ath9k1: wifi@0,12 { compatible = "pci168c,0029"; - reg = <0x9000 0 0 0 0x10000>; + reg = <0x9000 0 0 0 0>; mtd-mac-address = <&art 0xc>; qca,no-eeprom; #gpio-cells = <2>; diff --git a/target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi b/target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi index 4f52e3cc4..fc5d8335b 100644 --- a/target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi +++ b/target/linux/ath79/dts/ar7161_ubnt_routerstation.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include @@ -86,7 +85,7 @@ #address-cells = <1>; #size-cells = <0>; - usb_ochi_port: port@1 { + usb_ohci_port: port@1 { reg = <1>; #trigger-source-cells = <0>; }; @@ -97,7 +96,7 @@ #address-cells = <1>; #size-cells = <0>; - usb_echi_port: port@1 { + usb_ehci_port: port@1 { reg = <1>; #trigger-source-cells = <0>; }; diff --git a/target/linux/ath79/dts/ar7240.dtsi b/target/linux/ath79/dts/ar7240.dtsi index 268c8780f..5382a710f 100644 --- a/target/linux/ath79/dts/ar7240.dtsi +++ b/target/linux/ath79/dts/ar7240.dtsi @@ -65,7 +65,6 @@ resets = <&rst 9>; reset-names = "mac"; - phy-mode = "mii"; phy-handle = <&swphy4>; }; diff --git a/target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts b/target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts new file mode 100644 index 000000000..537a99b8d --- /dev/null +++ b/target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts @@ -0,0 +1,170 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "ar7240.dtsi" + +/ { + model = "D-Link DIR-615 E4"; + compatible = "dlink,dir-615-e4", "qca,ar7240"; + + aliases { + led-boot = &led_power_amber; + led-failsafe = &led_power_amber; + led-running = &led_power_green; + led-upgrade = &led_power_amber; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + wps { + label = "wps"; + linux,code = ; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&switch_led_pins>; + + led_power_green: power_green { + label = "d-link:green:power"; + gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; + }; + + led_power_amber: power_amber { + label = "d-link:amber:power"; + gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; + }; + + wps { + label = "d-link:blue:wps"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + }; + + lan1 { + label = "d-link:green:lan1"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + }; + + lan2 { + label = "d-link:green:lan2"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + }; + + lan3 { + label = "d-link:green:lan3"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + + lan4 { + label = "d-link:green:lan4"; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + }; + + wan_amber { + label = "d-link:amber:wan"; + gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; + }; + + wan_green { + label = "d-link:green:wan"; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + }; + + ath9k-leds { + compatible = "gpio-leds"; + + wlan { + label = "d-link:green:wlan"; + gpios = <&ath9k 1 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + }; +}; + +&spi { + status = "okay"; + + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <33000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + reg = <0x0 0x30000>; + label = "u-boot"; + read-only; + }; + + partition@30000 { + reg = <0x30000 0x10000>; + label = "nvram"; + read-only; + }; + + partition@40000 { + compatible = "denx,uimage"; + reg = <0x40000 0x3b0000>; + label = "firmware"; + }; + + partition@3f0000 { + reg = <0x3f0000 0x10000>; + label = "art"; + read-only; + }; + }; + }; +}; + +ð0 { + status = "okay"; +}; + +ð1 { + status = "okay"; +}; + +&pcie { + status = "okay"; + + ath9k: wifi@0,0 { + compatible = "pci168c,002b"; + reg = <0x0000 0 0 0 0>; + qca,no-eeprom; + #gpio-cells = <2>; + gpio-controller; + }; +}; + +&pinmux { + switch_led_pins: pinmux_switch_led_pins { + pinctrl-single,bits = <0x0 0x0 0xf8>; + }; +}; + +&uart { + status = "okay"; +}; diff --git a/target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi b/target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi index 4ce7a0ec3..a7e6b49c1 100644 --- a/target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi +++ b/target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar7241.dtsi b/target/linux/ath79/dts/ar7241.dtsi index 8f0eb3b27..59fcd05f5 100644 --- a/target/linux/ath79/dts/ar7241.dtsi +++ b/target/linux/ath79/dts/ar7241.dtsi @@ -46,7 +46,6 @@ resets = <&rst 9>; reset-names = "mac"; - phy-mode = "mii"; phy-handle = <&swphy4>; }; diff --git a/target/linux/ath79/dts/ar7241_netgear_wnr2200.dtsi b/target/linux/ath79/dts/ar7241_netgear_wnr2200.dtsi index 4c5ae697d..49b869f71 100644 --- a/target/linux/ath79/dts/ar7241_netgear_wnr2200.dtsi +++ b/target/linux/ath79/dts/ar7241_netgear_wnr2200.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar7242_buffalo_wzr-bhr.dtsi b/target/linux/ath79/dts/ar7242_buffalo_wzr-bhr.dtsi index 4a848cb89..589896d9f 100644 --- a/target/linux/ath79/dts/ar7242_buffalo_wzr-bhr.dtsi +++ b/target/linux/ath79/dts/ar7242_buffalo_wzr-bhr.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar7242_ubnt_edgeswitch-5xp.dts b/target/linux/ath79/dts/ar7242_ubnt_edgeswitch-5xp.dts new file mode 100644 index 000000000..f524b2e88 --- /dev/null +++ b/target/linux/ath79/dts/ar7242_ubnt_edgeswitch-5xp.dts @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar7242_ubnt_sw.dtsi" + +/ { + compatible = "ubnt,edgeswitch-5xp", "qca,ar7242"; + model = "Ubiquiti EdgeSwitch 5XP"; + + gpio-export { + compatible = "gpio-export"; + + poe_24v_port1 { + gpio-export,name = "ubnt:24v-poe:port1"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 1 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port2 { + gpio-export,name = "ubnt:24v-poe:port2"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 3 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port3 { + gpio-export,name = "ubnt:24v-poe:port3"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 5 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port4 { + gpio-export,name = "ubnt:24v-poe:port4"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 7 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port5 { + gpio-export,name = "ubnt:24v-poe:port5"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 9 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&mdio0 { + status = "okay"; + + phy0: ethernet-switch@0 { + compatible = "qca,ar8327"; + reg = <0x0>; + + qca,ar8327-initvals = < + 0x04 0x05100000 /* PORT0 PAD MODE CTRL */ + 0x0c 0x05100000 /* PORT6 PAD MODE CTRL */ + 0x50 0x40004000 /* LED_CTRL0 */ + 0x54 0x40004000 /* LED_CTRL1 */ + 0x58 0x40004000 /* LED_CTRL2 */ + 0x5c 0x03ffff00 /* LED_CTRL3 */ + 0x7c 0x0000007e /* PORT0_STATUS */ + 0x94 0x0000007e /* PORT6_STATUS */ + >; + }; +}; + +ð0 { + status = "okay"; + + phy-handle = <&phy0>; + phy-mode = "rgmii"; + + mtd-mac-address = <&art 0x0>; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; diff --git a/target/linux/ath79/dts/ar7242_ubnt_edgeswitch-8xp.dts b/target/linux/ath79/dts/ar7242_ubnt_edgeswitch-8xp.dts new file mode 100644 index 000000000..c7ec5cddc --- /dev/null +++ b/target/linux/ath79/dts/ar7242_ubnt_edgeswitch-8xp.dts @@ -0,0 +1,190 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar7242_ubnt_sw.dtsi" + +/ { + compatible = "ubnt,edgeswitch-8xp", "qca,ar7242"; + model = "Ubiquiti EdgeSwitch 8XP"; + + gpio-export { + compatible = "gpio-export"; + + poe_24v_port1 { + gpio-export,name = "ubnt:24v-poe:port1"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 1 GPIO_ACTIVE_HIGH>; + }; + + poe_48v_port1 { + gpio-export,name = "ubnt:48v-poe:port1"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 0 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port2 { + gpio-export,name = "ubnt:24v-poe:port2"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 3 GPIO_ACTIVE_HIGH>; + }; + + poe_48v_port2 { + gpio-export,name = "ubnt:48v-poe:port2"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 2 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port3 { + gpio-export,name = "ubnt:24v-poe:port3"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 5 GPIO_ACTIVE_HIGH>; + }; + + poe_48v_port3 { + gpio-export,name = "ubnt:48v-poe:port3"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 4 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port4 { + gpio-export,name = "ubnt:24v-poe:port4"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 7 GPIO_ACTIVE_HIGH>; + }; + + poe_48v_port4 { + gpio-export,name = "ubnt:48v-poe:port4"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 6 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port5 { + gpio-export,name = "ubnt:24v-poe:port5"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 9 GPIO_ACTIVE_HIGH>; + }; + + poe_48v_port5 { + gpio-export,name = "ubnt:48v-poe:port5"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 8 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port6 { + gpio-export,name = "ubnt:24v-poe:port6"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 11 GPIO_ACTIVE_HIGH>; + }; + + poe_48v_port6 { + gpio-export,name = "ubnt:48v-poe:port6"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 10 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port7 { + gpio-export,name = "ubnt:24v-poe:port7"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 13 GPIO_ACTIVE_HIGH>; + }; + + poe_48v_port7 { + gpio-export,name = "ubnt:48v-poe:port7"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 12 GPIO_ACTIVE_HIGH>; + }; + + poe_24v_port8 { + gpio-export,name = "ubnt:24v-poe:port8"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 15 GPIO_ACTIVE_HIGH>; + }; + + poe_48v_port8 { + gpio-export,name = "ubnt:48v-poe:port8"; + gpio-export,output = <0>; + gpios = <&gpio_hc595 14 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&mdio0 { + status = "okay"; + + phy-mask = <0x10>; + + ethernet-switch@1e { + compatible = "brcm,bcm53128"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x1e>; + + ports { + port0@0 { + reg = <0>; + label = "lan1"; + }; + + port1@1 { + reg = <1>; + label = "lan2"; + }; + + port2@2 { + reg = <2>; + label = "lan3"; + }; + + port3@3 { + reg = <3>; + label = "lan4"; + }; + + port4@4 { + reg = <4>; + label = "lan5"; + }; + + port5@5 { + reg = <5>; + label = "lan6"; + }; + + port6@6 { + reg = <6>; + label = "lan7"; + }; + + port7@7 { + reg = <7>; + label = "lan8"; + }; + + phy0: port8@8 { + reg = <8>; + label = "cpu"; + ethernet = <ð0>; + + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + + }; + }; +}; + +ð0 { + status = "okay"; + + phy-mode = "rgmii-rxid"; + pll-data = <0x16000000 0x00000101 0x00001313>; + mtd-mac-address = <&art 0x0>; + + phy-handle = <&phy0>; + fixed-link { + speed = <1000>; + full-duplex; + }; +}; diff --git a/target/linux/ath79/dts/ar7242_ubnt_sw.dtsi b/target/linux/ath79/dts/ar7242_ubnt_sw.dtsi new file mode 100644 index 000000000..15f204729 --- /dev/null +++ b/target/linux/ath79/dts/ar7242_ubnt_sw.dtsi @@ -0,0 +1,142 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "ar7242.dtsi" + +/ { + compatible = "qca,ar7242"; + model = "Ubiquiti Networks SW board"; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + aliases { + led-boot = &led_usr; + led-failsafe = &led_usr; + led-running = &led_usr; + led-upgrade = &led_usr; + }; + + leds { + compatible = "gpio-leds"; + + led_usr: usr { + label = "ubnt:yellow:usr"; + gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + linux,code = ; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + gpio_spi { + compatible = "spi-gpio"; + #address-cells = <0x1>; + ranges; + + sck-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>; + mosi-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>; + cs-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>; + num-chipselects = <1>; + + gpio_hc595: gpio_spi@0 { + compatible = "fairchild,74hc595"; + reg = <0>; + registers-number = <2>; + spi-max-frequency = <100000>; + enable-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; + + gpio-controller; + #gpio-cells = <2>; + + }; + }; +}; + +&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 { + reg = <0x000000 0x040000>; + label = "u-boot"; + read-only; + }; + + partition@40000 { + reg = <0x040000 0x010000>; + label = "u-boot-env"; + read-only; + }; + + partition@50000 { + compatible = "denx,uimage"; + reg = <0x050000 0x760000>; + label = "firmware"; + }; + + partition@7b0000 { + reg = <0x7b0000 0x040000>; + label = "cfg"; + read-only; + }; + + art: partition@7f0000 { + reg = <0x7f0000 0x010000>; + label = "art"; + read-only; + }; + }; + }; +}; + +&usb_phy { + status = "okay"; +}; + +&usb { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + hub_port: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&pcie { + status = "okay"; +}; + +&uart { + status = "okay"; +}; + +ð1 { + status = "okay"; + + mtd-mac-address = <&art 0x6>; +}; diff --git a/target/linux/ath79/dts/ar9132_tplink_tl-wa901nd-v2.dts b/target/linux/ath79/dts/ar9132_tplink_tl-wa901nd-v2.dts index 804b71170..e55affdf2 100644 --- a/target/linux/ath79/dts/ar9132_tplink_tl-wa901nd-v2.dts +++ b/target/linux/ath79/dts/ar9132_tplink_tl-wa901nd-v2.dts @@ -110,7 +110,7 @@ &mdio0 { status = "okay"; - phy0: ethernet-phy@c { + phy12: ethernet-phy@c { reg = <0xc>; phy-mode = "mii"; }; @@ -119,10 +119,9 @@ ð0 { status = "okay"; - phy-mode = "mii"; mtd-mac-address = <&uboot 0x1fc00>; - phy-handle = <&phy0>; + phy-handle = <&phy12>; }; &wmac { diff --git a/target/linux/ath79/dts/ar9330.dtsi b/target/linux/ath79/dts/ar9330.dtsi index 64c135405..042b70e0b 100644 --- a/target/linux/ath79/dts/ar9330.dtsi +++ b/target/linux/ath79/dts/ar9330.dtsi @@ -170,7 +170,6 @@ resets = <&rst 9>; reset-names = "mac"; - phy-mode = "mii"; phy-handle = <&swphy4>; }; diff --git a/target/linux/ath79/dts/ar9330_dlink_dir-505.dts b/target/linux/ath79/dts/ar9330_dlink_dir-505.dts new file mode 100644 index 000000000..6984176da --- /dev/null +++ b/target/linux/ath79/dts/ar9330_dlink_dir-505.dts @@ -0,0 +1,149 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "ar9330.dtsi" + +/ { + model = "D-Link DIR-505"; + compatible = "dlink,dir-505", "qca,ar9330"; + + aliases { + serial0 = &uart; + led-boot = &led_power_green; + led-failsafe = &led_status_red; + led-running = &led_power_green; + led-upgrade = &led_status_red; + }; + + keys { + compatible = "gpio-keys"; + + wps { + label = "WPS button"; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + reset { + label = "Reset button"; + gpios = <&gpio 12 GPIO_ACTIVE_HIGH>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&jtag_disable_pins>; + + led_power_green: power { + label = "d-link:green:power"; + gpios = <&gpio 27 GPIO_ACTIVE_LOW>; + }; + + led_status_red: status { + label = "d-link:red:status"; + gpios = <&gpio 26 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&uart { + status = "okay"; +}; + +&gpio { + status = "okay"; + + led_enable { + gpio-hog; + output-low; + gpios = <1 GPIO_ACTIVE_LOW>; + line-name = "d-link:power:led"; + }; +}; + +&usb { + dr_mode = "host"; + status = "okay"; +}; + +&usb_phy { + status = "okay"; +}; + +ð0 { + status = "okay"; + + gmac-config { + device = <&gmac>; + switch-phy-addr-swap = <0>; + switch-phy-swap = <0>; + }; +}; + +ð1 { + compatible = "syscon", "simple-mfd"; + status = "okay"; +}; + +&spi { + num-chipselects = <1>; + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + spi-max-frequency = <50000000>; + reg = <0>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x10000>; + read-only; + }; + + art: partition@10000 { + label = "art"; + reg = <0x10000 0x10000>; + read-only; + }; + + mac: partition@20000 { + label = "mac"; + reg = <0x20000 0x10000>; + read-only; + }; + + partition@30000 { + label = "nvram"; + reg = <0x30000 0x10000>; + read-only; + }; + + partition@40000 { + label = "language"; + reg = <0x40000 0x40000>; + read-only; + }; + + partition@80000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x80000 0x780000>; + }; + }; + }; +}; + +&wmac { + status = "okay"; + qca,no-eeprom; +}; diff --git a/target/linux/ath79/dts/ar9331_glinet_6408.dts b/target/linux/ath79/dts/ar9331_glinet_6408.dts new file mode 100644 index 000000000..121560746 --- /dev/null +++ b/target/linux/ath79/dts/ar9331_glinet_6408.dts @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar9331_glinet_64xx.dtsi" + +/ { + model = "GL.iNet 6408"; + compatible = "glinet,6408", "qca,ar9331"; +}; + +&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>; + + uboot: partition@0 { + reg = <0x0 0x20000>; + label = "u-boot"; + read-only; + }; + + partition@20000 { + compatible = "tplink,firmware"; + reg = <0x20000 0x7d0000>; + label = "firmware"; + }; + + art: partition@7f0000 { + reg = <0x7f0000 0x10000>; + label = "art"; + read-only; + }; + }; + }; +}; diff --git a/target/linux/ath79/dts/ar9331_glinet_6416.dts b/target/linux/ath79/dts/ar9331_glinet_6416.dts new file mode 100644 index 000000000..5f10b6aad --- /dev/null +++ b/target/linux/ath79/dts/ar9331_glinet_6416.dts @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar9331_glinet_64xx.dtsi" + +/ { + model = "GL.iNet 6416"; + compatible = "glinet,6416", "qca,ar9331"; +}; + +&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>; + + uboot: partition@0 { + reg = <0x0 0x20000>; + label = "u-boot"; + read-only; + }; + + partition@20000 { + compatible = "tplink,firmware"; + reg = <0x20000 0xfd0000>; + label = "firmware"; + }; + + art: partition@ff0000 { + reg = <0xff0000 0x10000>; + label = "art"; + read-only; + }; + }; + }; +}; diff --git a/target/linux/ath79/dts/ar9331_glinet_64xx.dtsi b/target/linux/ath79/dts/ar9331_glinet_64xx.dtsi new file mode 100644 index 000000000..2fa970248 --- /dev/null +++ b/target/linux/ath79/dts/ar9331_glinet_64xx.dtsi @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include +#include + +#include "ar9331.dtsi" + +/ { + aliases { + serial0 = &uart; + label-mac-device = &wmac; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + wlan { + label = "gl-inet:red:wlan"; + gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0tpt"; + }; + + lan { + label = "gl-inet:green:lan"; + gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; + }; + }; + + reg_usb_vbus: reg_usb_vbus { + compatible = "regulator-fixed"; + regulator-name = "usb_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&uboot 0x1fc00>; + + gmac-config { + device = <&gmac>; + + switch-phy-addr-swap = <0>; + switch-phy-swap = <0>; + }; +}; + +ð1 { + status = "okay"; + + mtd-mac-address = <&uboot 0x1fc00>; +}; + +&gpio { + status = "okay"; +}; + +&uart { + status = "okay"; +}; + +&usb { + dr_mode = "host"; + vbus-supply = <®_usb_vbus>; + status = "okay"; +}; + +&usb_phy { + status = "okay"; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&uboot 0x1fc00>; +}; diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi b/target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi index a8e0331f0..2bacd0824 100644 --- a/target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi +++ b/target/linux/ath79/dts/ar9331_tplink_tl-wr703n_tl-mr10u.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar9331_tplink_tl-wr741nd-v4.dtsi b/target/linux/ath79/dts/ar9331_tplink_tl-wr741nd-v4.dtsi index 4fb06494a..4f11d5d7a 100644 --- a/target/linux/ath79/dts/ar9331_tplink_tl-wr741nd-v4.dtsi +++ b/target/linux/ath79/dts/ar9331_tplink_tl-wr741nd-v4.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar9341.dtsi b/target/linux/ath79/dts/ar9341.dtsi index a7c5ac626..10161f32a 100644 --- a/target/linux/ath79/dts/ar9341.dtsi +++ b/target/linux/ath79/dts/ar9341.dtsi @@ -17,10 +17,6 @@ interrupts = <2>; }; -ð0 { - phy-mode = "mii"; -}; - ð1 { status = "okay"; }; diff --git a/target/linux/ath79/dts/ar9341_pcs_cr3000.dts b/target/linux/ath79/dts/ar9341_pcs_cr3000.dts index 222516f9b..272b0909b 100644 --- a/target/linux/ath79/dts/ar9341_pcs_cr3000.dts +++ b/target/linux/ath79/dts/ar9341_pcs_cr3000.dts @@ -150,13 +150,11 @@ }; ð1 { - status = "okay"; - phy-handle = <&swphy4>; - mtd-mac-address = <&art 0x0>; - phy-mode = "gmii"; pll-data = <0x06000000 0x00000101 0x00001616>; + mtd-mac-address = <&art 0x0>; + gmac-config { device = <&gmac>; switch-phy-swap = <1>; diff --git a/target/linux/ath79/dts/ar9341_tplink.dtsi b/target/linux/ath79/dts/ar9341_tplink.dtsi index f99b6da67..0a950bd1a 100644 --- a/target/linux/ath79/dts/ar9341_tplink.dtsi +++ b/target/linux/ath79/dts/ar9341_tplink.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi b/target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi new file mode 100644 index 000000000..07cf2063d --- /dev/null +++ b/target/linux/ath79/dts/ar9341_tplink_tl-wa.dtsi @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include +#include + +#include "ar9341.dtsi" + +/ { + aliases { + serial0 = &uart; + label-mac-device = &wmac; + }; +}; + +&ref { + clock-frequency = <25000000>; +}; + +&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>; + + uboot: partition@0 { + label = "u-boot"; + reg = <0x000000 0x020000>; + read-only; + }; + + partition@20000 { + compatible = "tplink,firmware"; + label = "firmware"; + reg = <0x020000 0x3d0000>; + }; + + art: partition@3f0000 { + label = "art"; + reg = <0x3f0000 0x010000>; + read-only; + }; + }; + }; +}; + +&uart { + status = "okay"; +}; + +ð0 { + status = "okay"; + + phy-handle = <&swphy0>; + + mtd-mac-address = <&uboot 0x1fc00>; + + gmac-config { + device = <&gmac>; + + switch-phy-swap = <1>; + }; +}; + +ð1 { + compatible = "syscon", "simple-mfd"; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&uboot 0x1fc00>; +}; diff --git a/target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts b/target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts new file mode 100644 index 000000000..bb0b498b6 --- /dev/null +++ b/target/linux/ath79/dts/ar9341_tplink_tl-wa850re-v1.dts @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar9341_tplink_tl-wa.dtsi" + +/ { + model = "TP-Link TL-WA850RE v1"; + compatible = "tplink,tl-wa850re-v1", "qca,ar9341"; + + aliases { + led-boot = &led_re; + led-failsafe = &led_re; + led-running = &led_re; + led-upgrade = &led_re; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "Reset"; + linux,code = ; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + wps { + label = "WPS"; + linux,code = ; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + lan { + label = "tp-link:blue:lan"; + gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + }; + + wlan { + label = "tp-link:blue:wlan"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + led_re: re { + label = "tp-link:blue:re"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + + signal1 { + label = "tp-link:blue:signal1"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + }; + + signal2 { + label = "tp-link:blue:signal2"; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + }; + + signal3 { + label = "tp-link:blue:signal3"; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + }; + + signal4 { + label = "tp-link:blue:signal4"; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + signal5 { + label = "tp-link:blue:signal5"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + }; +}; diff --git a/target/linux/ath79/dts/ar9342_ubnt_litebeam-ac-gen2.dts b/target/linux/ath79/dts/ar9342_ubnt_litebeam-ac-gen2.dts new file mode 100644 index 000000000..d7eacf44d --- /dev/null +++ b/target/linux/ath79/dts/ar9342_ubnt_litebeam-ac-gen2.dts @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; + +#include +#include + +#include "ar9342_ubnt_wa.dtsi" + +/ { + compatible = "ubnt,litebeam-ac-gen2", "ubnt,wa", "qca,ar9342"; + model = "Ubiquiti LiteBeam AC Gen2"; +}; + +&mdio0 { + status = "okay"; + + phy-mask = <4>; + phy4: ethernet-phy@4 { + reg = <4>; + }; +}; + +ð0 { + status = "okay"; + + /* default for ar934x, except for 1000M and 10M */ + pll-data = <0x02000000 0x00000101 0x00001313>; + + mtd-mac-address = <&art 0x0>; + + phy-mode = "rgmii-id"; + phy-handle = <&phy4>; + + gmac-config { + device = <&gmac>; + rxd-delay = <3>; + rxdv-delay = <3>; + }; +}; diff --git a/target/linux/ath79/dts/ar9342_ubnt_nanostation-loco-m-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_nanostation-loco-m-xw.dts new file mode 100644 index 000000000..8fb05eda2 --- /dev/null +++ b/target/linux/ath79/dts/ar9342_ubnt_nanostation-loco-m-xw.dts @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "ar9342_ubnt_xw.dtsi" + +/ { + compatible = "ubnt,nanostation-loco-m-xw", "ubnt,xw", "qca,ar9342"; + model = "Ubiquiti Nanostation Loco M (XW)"; +}; + +&mdio0 { + status = "okay"; + + phy-mask = <0x1>; + + phy1: ethernet-phy@1 { + reg = <1>; + phy-mode = "mii"; + }; +}; + +ð0 { + status = "okay"; + + phy-handle = <&phy1>; +}; diff --git a/target/linux/ath79/dts/ar9342_ubnt_nanostation-m-xw.dts b/target/linux/ath79/dts/ar9342_ubnt_nanostation-m-xw.dts index 6ac79b0c1..7ca61fe27 100644 --- a/target/linux/ath79/dts/ar9342_ubnt_nanostation-m-xw.dts +++ b/target/linux/ath79/dts/ar9342_ubnt_nanostation-m-xw.dts @@ -17,7 +17,7 @@ phy4-mii-enable; phy-mask = <0x23>; - phy4: ethernet-phy@0 { + phy0: ethernet-phy@0 { reg = <0>; phy-mode = "mii"; }; @@ -26,8 +26,7 @@ ð0 { status = "okay"; - phy-mode = "mii"; - phy-handle = <&phy4>; + phy-handle = <&phy0>; gmac-config { device = <&gmac>; diff --git a/target/linux/ath79/dts/ar9344_comfast_cf-e120a-v3.dts b/target/linux/ath79/dts/ar9344_comfast_cf-e120a-v3.dts index 66ac71826..b4a5bb470 100644 --- a/target/linux/ath79/dts/ar9344_comfast_cf-e120a-v3.dts +++ b/target/linux/ath79/dts/ar9344_comfast_cf-e120a-v3.dts @@ -12,9 +12,9 @@ aliases { serial0 = &uart; - led-boot = &led_wan; - led-failsafe = &led_wan; - led-upgrade = &led_wan; + led-boot = &led_rssihigh; + led-failsafe = &led_rssihigh; + led-upgrade = &led_rssihigh; label-mac-device = ð0; }; @@ -24,7 +24,7 @@ pinctrl-names = "default"; pinctrl-0 = <&led_rssimediumhigh_pin>; - led_wan: wan { + wan { label = "cf-e120a-v3:green:wan"; gpios = <&gpio 3 GPIO_ACTIVE_LOW>; }; @@ -55,7 +55,7 @@ gpios = <&gpio 16 GPIO_ACTIVE_LOW>; }; - rssihigh { + led_rssihigh: rssihigh { label = "cf-e120a-v3:green:rssihigh"; gpios = <&gpio 17 GPIO_ACTIVE_LOW>; }; diff --git a/target/linux/ath79/dts/ar9344_dlink_dir-8x5.dtsi b/target/linux/ath79/dts/ar9344_dlink_dir-8x5.dtsi index 2dd2297e8..9d9af23ba 100644 --- a/target/linux/ath79/dts/ar9344_dlink_dir-8x5.dtsi +++ b/target/linux/ath79/dts/ar9344_dlink_dir-8x5.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi b/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi index 16a4e3f6e..9fd428a1b 100644 --- a/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi +++ b/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include @@ -97,6 +96,22 @@ linux,default-trigger = "usbport"; }; }; + + ubi-concat { + compatible = "mtd-concat"; + devices = <&ubipart0 &ubipart1>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + ubi@ac0000 { + label = "ubi"; + reg = <0x0 0x7500000>; + }; + }; + }; }; &pinmux { @@ -124,7 +139,7 @@ reg = <0x40000 0x40000>; }; - art: partition@80000 { + caldata: partition@80000 { label = "caldata"; reg = <0x80000 0x40000>; read-only; @@ -152,12 +167,12 @@ kernel@6c0000 { label = "kernel"; - reg = <0x6c0000 0x200000>; + reg = <0x6c0000 0x400000>; }; - ubi@8c0000 { - label = "ubi"; - reg = <0x8c0000 0x1700000>; + ubipart0: partition@ac0000 { + label = "ubipart0"; + reg = <0xac0000 0x1500000>; }; partition@6c0000 { @@ -172,10 +187,9 @@ read-only; }; - partition@2000000 { - label = "reserved"; + ubipart1: partition@2000000 { + label = "ubipart1"; reg = <0x2000000 0x6000000>; - read-only; }; }; }; @@ -219,7 +233,7 @@ /* default for ar934x, except for 1000M */ pll-data = <0x06000000 0x00000101 0x00001616>; - mtd-mac-address = <&art 0x0>; + mtd-mac-address = <&caldata 0x0>; phy-mode = "rgmii"; phy-handle = <&phy0>; @@ -246,7 +260,7 @@ &wmac { status = "okay"; - mtd-mac-address = <&art 0x0>; + mtd-mac-address = <&caldata 0x0>; qca,no-eeprom; }; @@ -256,7 +270,7 @@ ath9k: wifi@0,0 { compatible = "pci168c,0033"; reg = <0x0000 0 0 0 0>; - mtd-mac-address = <&art 0xc>; + mtd-mac-address = <&caldata 0xc>; qca,no-eeprom; #gpio-cells = <2>; gpio-controller; diff --git a/target/linux/ath79/dts/ar9344_tplink_cpe.dtsi b/target/linux/ath79/dts/ar9344_tplink_cpe.dtsi index d002dfeb3..27a8d0aa1 100644 --- a/target/linux/ath79/dts/ar9344_tplink_cpe.dtsi +++ b/target/linux/ath79/dts/ar9344_tplink_cpe.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/ar9344_tplink_cpe_1port.dtsi b/target/linux/ath79/dts/ar9344_tplink_cpe_1port.dtsi index 653efdee1..057ba4572 100644 --- a/target/linux/ath79/dts/ar9344_tplink_cpe_1port.dtsi +++ b/target/linux/ath79/dts/ar9344_tplink_cpe_1port.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include "ar9344_tplink_cpe.dtsi" diff --git a/target/linux/ath79/dts/ar9344_tplink_cpe_2port.dtsi b/target/linux/ath79/dts/ar9344_tplink_cpe_2port.dtsi index e97e49d71..8a1332c9c 100644 --- a/target/linux/ath79/dts/ar9344_tplink_cpe_2port.dtsi +++ b/target/linux/ath79/dts/ar9344_tplink_cpe_2port.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include "ar9344_tplink_cpe.dtsi" diff --git a/target/linux/ath79/dts/ar9344_tplink_tl-wdr4300-v1-il.dts b/target/linux/ath79/dts/ar9344_tplink_tl-wdr4300-v1-il.dts new file mode 100644 index 000000000..a84285d69 --- /dev/null +++ b/target/linux/ath79/dts/ar9344_tplink_tl-wdr4300-v1-il.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar9344_tplink_tl-wdr4300.dtsi" + +/ { + model = "TP-Link TL-WDR4300 v1 (IL)"; + compatible = "tplink,tl-wdr4300-v1-il", "qca,ar9344"; +}; diff --git a/target/linux/ath79/dts/ar9344_tplink_tl-wdr4300.dtsi b/target/linux/ath79/dts/ar9344_tplink_tl-wdr4300.dtsi index 9ca96cc7c..dc85075bc 100644 --- a/target/linux/ath79/dts/ar9344_tplink_tl-wdr4300.dtsi +++ b/target/linux/ath79/dts/ar9344_tplink_tl-wdr4300.dtsi @@ -6,6 +6,34 @@ aliases { label-mac-device = &ath9k; }; + + gpio-export { + compatible = "gpio-export"; + + gpio_usb1_power { + gpio-export,name = "tp-link:power:usb1"; + gpio-export,output = <1>; + gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; + }; + + gpio_usb2_power { + gpio-export,name = "tp-link:power:usb2"; + gpio-export,output = <1>; + gpios = <&gpio 21 GPIO_ACTIVE_HIGH>; + }; + + gpio_ext_lna0 { + gpio-export,name = "tp-link:ext:lna0"; + gpio-export,output = <1>; + gpios = <&gpio 18 GPIO_ACTIVE_HIGH>; + }; + + gpio_ext_lna1 { + gpio-export,name = "tp-link:ext:lna1"; + gpio-export,output = <1>; + gpios = <&gpio 19 GPIO_ACTIVE_HIGH>; + }; + }; }; &leds { @@ -24,36 +52,6 @@ }; }; -&gpio { - lna0 { - gpio-hog; - gpios = <18 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "tp-link:ext:lna0"; - }; - - lna1 { - gpio-hog; - gpios = <19 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "tp-link:ext:lna1"; - }; - - usb1_power { - gpio-hog; - gpios = <22 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "tp-link:power:usb1"; - }; - - usb2_power { - gpio-hog; - gpios = <21 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "tp-link:power:usb2"; - }; -}; - &usb { #address-cells = <1>; #size-cells = <0>; @@ -118,7 +116,6 @@ pll-data = <0x06000000 0x00000101 0x00001616>; mtd-mac-address = <&uboot 0x1fc00>; - mtd-mac-address-increment = <(-2)>; phy-mode = "rgmii"; phy-handle = <&phy0>; diff --git a/target/linux/ath79/dts/ar934x.dtsi b/target/linux/ath79/dts/ar934x.dtsi index bb6c64745..8cd0b4e08 100644 --- a/target/linux/ath79/dts/ar934x.dtsi +++ b/target/linux/ath79/dts/ar934x.dtsi @@ -199,8 +199,8 @@ usb_phy: usb-phy { compatible = "qca,ar9340-usb-phy", "qca,ar7200-usb-phy"; - reset-names = "usb-phy", "usb-suspend-override"; - resets = <&rst 4>, <&rst 3>; + reset-names = "usb-phy-analog", "usb-phy", "usb-suspend-override"; + resets = <&rst 11>, <&rst 4>, <&rst 3>; #phy-cells = <0>; diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi index 72bc2a646..8b90f0205 100644 --- a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi +++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi @@ -1,5 +1,3 @@ -/dts-v1/; - #include #include diff --git a/target/linux/ath79/dts/qca9531_tplink_tl-mr6400-v1.dts b/target/linux/ath79/dts/qca9531_tplink_tl-mr6400-v1.dts new file mode 100644 index 000000000..7299257cd --- /dev/null +++ b/target/linux/ath79/dts/qca9531_tplink_tl-mr6400-v1.dts @@ -0,0 +1,167 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/dts-v1/; + +#include +#include + +#include "qca953x.dtsi" + +/ { + compatible = "tplink,tl-mr6400-v1", "qca,qca9531"; + model = "TP-Link TL-MR6400 v1"; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + label-mac-device = &wmac; + }; + + leds { + compatible = "gpio-leds"; + + /* D12 */ + wan { + label = "tp-link:white:wan"; + gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; + }; + + /* D11 */ + 4g { + label = "tp-link:white:4g"; + gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; + }; + + /* D5 */ + wps { + label = "tp-link:white:wps"; + gpios = <&gpio 3 GPIO_ACTIVE_HIGH>; + }; + + /* D3 */ + wlan { + label = "tp-link:white:wlan"; + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0tpt"; + }; + + /* D2 */ + led_power: power { + label = "tp-link:white:power"; + gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; + }; + + /* D4 */ + lan { + label = "tp-link:white:lan"; + gpios = <&gpio 16 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + + /* SW2 */ + reset { + label = "Reset button"; + linux,code = ; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + /* SW3 */ + rfkill { + label = "RF kill button"; + linux,code = ; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + gpio-export { + compatible = "gpio-export"; + + gpio_usb_power { + gpio-export,name = "tp-link:power:lte"; + gpio-export,output = <0>; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&uart { + status = "okay"; +}; + +&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>; + + uboot: partition@0 { + label = "u-boot"; + reg = <0x000000 0x020000>; + read-only; + }; + + partition@20000 { + compatible = "tplink,firmware"; + label = "firmware"; + reg = <0x020000 0x7d0000>; + }; + + art: partition@7f0000 { + label = "art"; + reg = <0x7f0000 0x010000>; + read-only; + }; + }; + }; +}; + +ð0 { + status = "okay"; + + phy-handle = <&swphy0>; + + mtd-mac-address = <&uboot 0x1fc00>; + mtd-mac-address-increment = <1>; +}; + +ð1 { + mtd-mac-address = <&uboot 0x1fc00>; + mtd-mac-address-increment = <(-1)>; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&uboot 0x1fc00>; +}; + +&usb0 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + hub_port: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&usb_phy { + status = "okay"; +}; diff --git a/target/linux/ath79/dts/qca9531_tplink_tl-wr902ac-v1.dts b/target/linux/ath79/dts/qca9531_tplink_tl-wr902ac-v1.dts new file mode 100644 index 000000000..9eca13d82 --- /dev/null +++ b/target/linux/ath79/dts/qca9531_tplink_tl-wr902ac-v1.dts @@ -0,0 +1,188 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "qca953x.dtsi" + +/ { + compatible = "tplink,tl-wr902ac-v1", "qca,qca9531"; + model = "TP-Link TL-WR902AC v1"; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + label-mac-device = &wmac; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + leds { + compatible = "gpio-leds"; + + led_power: power { + label = "tp-link:green:power"; + gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + internet { + label = "tp-link:green:internet"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + }; + + wlan2g { + label = "tp-link:green:wlan2g"; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + usb { + label = "tp-link:green:usb"; + gpios = <&gpio 4 GPIO_ACTIVE_HIGH>; + trigger-sources = <&hub_port0>; + linux,default-trigger = "usbport"; + }; + + wps { + label = "tp-link:green:wps"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + }; + + lan { + label = "tp-link:green:lan"; + gpios = <&gpio 15 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "Reset button"; + linux,code = ; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + wps { + label = "WPS button"; + linux,code = ; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + }; + + sw1 { + label = "Mode switch 1"; + linux,code = ; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + + sw2 { + label = "Mode switch 2"; + linux,code = ; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + }; + }; + + gpio-export { + compatible = "gpio-export"; + + gpio_usb_power { + gpio-export,name = "tp-link:power:usb"; + gpio-export,output = <1>; + gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&uart { + status = "okay"; +}; + +&spi { + status = "okay"; + + 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 0x020000>; + read-only; + }; + + partition@20000 { + compatible = "tplink,firmware"; + label = "firmware"; + reg = <0x020000 0x730000>; + }; + + tplink: partition@750000 { + label = "tplink"; + reg = <0x750000 0x0a0000>; + read-only; + }; + + art: partition@7f0000 { + label = "art"; + reg = <0x7f0000 0x010000>; + read-only; + }; + }; + }; +}; + +ð0 { + status = "okay"; + + phy-handle = <&swphy4>; + + mtd-mac-address = <&tplink 0x8>; + mtd-mac-address-increment = <1>; +}; + +ð1 { + compatible = "syscon", "simple-mfd"; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&tplink 0x8>; +}; + +&pcie0 { + status = "okay"; + + wifi@0,0 { + compatible = "pci168c,0050"; + reg = <0x0000 0 0 0 0>; + }; +}; + +&usb_phy { + status = "okay"; +}; + +&usb0 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + hub_port0: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; diff --git a/target/linux/ath79/dts/qca9533_comfast_cf-e110n-v2.dts b/target/linux/ath79/dts/qca9533_comfast_cf-e110n-v2.dts index 0d0134268..45e3727da 100644 --- a/target/linux/ath79/dts/qca9533_comfast_cf-e110n-v2.dts +++ b/target/linux/ath79/dts/qca9533_comfast_cf-e110n-v2.dts @@ -12,9 +12,9 @@ aliases { serial0 = &uart; - led-boot = &led_wan; - led-failsafe = &led_wan; - led-upgrade = &led_wan; + led-boot = &led_rssihigh; + led-failsafe = &led_rssihigh; + led-upgrade = &led_rssihigh; }; leds { @@ -23,7 +23,7 @@ pinctrl-names = "default"; pinctrl-0 = <&jtag_disable_pins &led_rssilow_pin &led_rssimediumhigh_pin &led_rssihigh_pin>; - led_wan: wan { + wan { label = "cf-e110n-v2:green:wan"; gpios = <&gpio 3 GPIO_ACTIVE_LOW>; }; @@ -48,7 +48,7 @@ gpios = <&gpio 14 GPIO_ACTIVE_LOW>; }; - rssihigh { + led_rssihigh: rssihigh { label = "cf-e110n-v2:green:rssihigh"; gpios = <&gpio 16 GPIO_ACTIVE_LOW>; }; diff --git a/target/linux/ath79/dts/qca9533_tplink_cpe210.dtsi b/target/linux/ath79/dts/qca9533_tplink_cpe210.dtsi index cb329a9a6..5edd2adc8 100644 --- a/target/linux/ath79/dts/qca9533_tplink_cpe210.dtsi +++ b/target/linux/ath79/dts/qca9533_tplink_cpe210.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include "qca9533_tplink_cpexxx.dtsi" diff --git a/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi b/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi index 50d34c7c9..e0505e572 100644 --- a/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi +++ b/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts b/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts new file mode 100644 index 000000000..523691204 --- /dev/null +++ b/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts @@ -0,0 +1,164 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "qca953x.dtsi" + +/ { + compatible = "tplink,tl-wa850re-v2", "qca,qca9533"; + model = "TP-Link TL-WA850RE v2"; + + aliases { + led-boot = &led_re; + led-failsafe = &led_re; + led-running = &led_re; + led-upgrade = &led_re; + label-mac-device = &wmac; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + leds { + compatible = "gpio-leds"; + + pinctrl-names = "default"; + pinctrl-0 = <&jtag_disable_pins>; + + lan { + label = "tp-link:blue:lan"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + }; + + led_re: re { + label = "tp-link:blue:re"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + }; + + signal1 { + label = "tp-link:blue:signal1"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + }; + + signal2 { + label = "tp-link:blue:signal2"; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + }; + + signal3 { + label = "tp-link:blue:signal3"; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + }; + + signal4 { + label = "tp-link:blue:signal4"; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + led_signal5: signal5 { + label = "tp-link:blue:signal5"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + + wlan { + label = "tp-link:blue:wlan"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "Reset button"; + linux,code = ; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + + wps { + label = "WPS button"; + linux,code = ; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&gpio { + led_enable { + gpio-hog; + gpios = <15 GPIO_ACTIVE_HIGH>; + line-name = "tp-link:power:led"; + output-high; + }; +}; + +&uart { + status = "okay"; +}; + +&spi { + status = "okay"; + + num-cs = <1>; + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + 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 0x020000>; + read-only; + }; + + partition@20000 { + label = "firmware"; + reg = <0x020000 0x390000>; + compatible = "tplink,firmware"; + }; + + config: partition@3b0000 { + label = "config"; + reg = <0x3b0000 0x040000>; + read-only; + }; + + art: partition@3f0000 { + label = "art"; + reg = <0x3f0000 0x010000>; + read-only; + }; + }; + }; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&config 0x10008>; +}; + +ð0 { + status = "okay"; + + phy-handle = <&swphy4>; + + mtd-mac-address = <&config 0x10008>; +}; + +ð1 { + compatible = "syscon", "simple-mfd"; +}; diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wr841-v11.dtsi b/target/linux/ath79/dts/qca9533_tplink_tl-wr841-v11.dtsi index ca9598100..a0d0afccc 100644 --- a/target/linux/ath79/dts/qca9533_tplink_tl-wr841-v11.dtsi +++ b/target/linux/ath79/dts/qca9533_tplink_tl-wr841-v11.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include "qca9533_tplink_tl-wr841.dtsi" diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wr841.dtsi b/target/linux/ath79/dts/qca9533_tplink_tl-wr841.dtsi index e3d244ee7..9f1bef3d4 100644 --- a/target/linux/ath79/dts/qca9533_tplink_tl-wr841.dtsi +++ b/target/linux/ath79/dts/qca9533_tplink_tl-wr841.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca953x.dtsi b/target/linux/ath79/dts/qca953x.dtsi index f127d4d01..73a6ad91e 100644 --- a/target/linux/ath79/dts/qca953x.dtsi +++ b/target/linux/ath79/dts/qca953x.dtsi @@ -231,8 +231,6 @@ reset-names = "mac"; resets = <&rst 9>; - - phy-mode = "mii"; }; &mdio1 { diff --git a/target/linux/ath79/dts/qca953x_tplink_tl-wr810n.dtsi b/target/linux/ath79/dts/qca953x_tplink_tl-wr810n.dtsi index c5fd7166a..d08b4d65a 100644 --- a/target/linux/ath79/dts/qca953x_tplink_tl-wr810n.dtsi +++ b/target/linux/ath79/dts/qca953x_tplink_tl-wr810n.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts b/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts new file mode 100644 index 000000000..e13b58b60 --- /dev/null +++ b/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts @@ -0,0 +1,138 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "qca9557.dtsi" + +/ { + compatible = "mikrotik,routerboard-wap-g-5hact2hnd", "qca,qca9556"; + model = "MikroTik RouterBOARD wAP G-5HacT2HnD"; + + aliases { + label-mac-device = ð1; + mdio-gpio1 = &mdio2; + serial0 = &uart; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + mdio2: mdio { + compatible = "virtual,mdio-gpio"; + + gpios = <&gpio 12 GPIO_ACTIVE_HIGH>, /* MDC */ + <&gpio 11 GPIO_ACTIVE_HIGH>; /* MDIO */ + #address-cells = <1>; + #size-cells = <0>; + + phy0: ethernet-phy@0 { + reg = <0>; + device_type = "ethernet-phy"; + + phy-mode = "sgmii"; + + at803x-override-sgmii-link-check; + }; + }; +}; + +ð1 { + status = "okay"; + + mtd-mac-address = <&art 0x10>; + + pll-data = <0x03000101 0x80000101 0x80001313>; + phy-handle = <&phy0>; + + qca955x-sgmii-fixup; + + gmac-config { + device = <&gmac>; + }; +}; + +&spi { + status = "okay"; + + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <104000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "routerboot"; + reg = <0x000000 0x00e000>; + read-only; + }; + + art: partition@e000 { + label = "art"; + reg = <0x000e000 0x001000>; + read-only; + }; + + partition@f000 { + label = "bios"; + reg = <0x000f000 0x001000>; + read-only; + }; + + partition@10000 { + label = "routerboot2"; + reg = <0x010000 0x00f000>; + read-only; + }; + + partition@1f000 { + label = "soft_config"; + reg = <0x001f000 0x001000>; + }; + + partition@20000 { + compatible = "mikrotik,minor"; + label = "firmware"; + reg = <0x020000 0xfe0000>; + }; + }; + }; +}; + +&uart { + status = "okay"; +}; + +&wmac { + status = "okay"; + + qca,no-eeprom; +}; + +&pcie0 { + status = "okay"; + + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0 0 0 0 0>; + }; +}; diff --git a/target/linux/ath79/dts/qca9557_iodata_wn-ac-dgr.dtsi b/target/linux/ath79/dts/qca9557_iodata_wn-ac-dgr.dtsi index 970a144db..b43ab2c6b 100644 --- a/target/linux/ath79/dts/qca9557_iodata_wn-ac-dgr.dtsi +++ b/target/linux/ath79/dts/qca9557_iodata_wn-ac-dgr.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi index 39fae74b8..8ee967ab9 100644 --- a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi +++ b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi b/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi index ea752661b..42b45c590 100644 --- a/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi +++ b/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi @@ -10,8 +10,6 @@ * antennas and number of spatial streams. */ -/dts-v1/; - #include #include @@ -107,7 +105,8 @@ phy4: ethernet-phy@4 { reg = <4>; - at803x-disable-smarteee; + eee-broken-100tx; + eee-broken-1000t; }; }; diff --git a/target/linux/ath79/dts/qca9558_engenius_ecb1750.dts b/target/linux/ath79/dts/qca9558_engenius_ecb1750.dts index 7953ed132..3ccf92a9f 100644 --- a/target/linux/ath79/dts/qca9558_engenius_ecb1750.dts +++ b/target/linux/ath79/dts/qca9558_engenius_ecb1750.dts @@ -125,7 +125,8 @@ phy5: ethernet-phy@5 { reg = <5>; - at803x-disable-smarteee; + eee-broken-100tx; + eee-broken-1000t; }; }; diff --git a/target/linux/ath79/dts/qca9558_netgear_ex7300.dtsi b/target/linux/ath79/dts/qca9558_netgear_ex7300.dtsi index 170563b6a..bbb43354c 100644 --- a/target/linux/ath79/dts/qca9558_netgear_ex7300.dtsi +++ b/target/linux/ath79/dts/qca9558_netgear_ex7300.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9558_ocedo_koala.dts b/target/linux/ath79/dts/qca9558_ocedo_koala.dts index 5e3abdbbb..77c332cc4 100644 --- a/target/linux/ath79/dts/qca9558_ocedo_koala.dts +++ b/target/linux/ath79/dts/qca9558_ocedo_koala.dts @@ -142,7 +142,8 @@ phy5: ethernet-phy@5 { reg = <5>; - at803x-disable-smarteee; + eee-broken-100tx; + eee-broken-1000t; }; }; diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-c.dtsi b/target/linux/ath79/dts/qca9558_tplink_archer-c.dtsi index 3defa554d..9f5d7a6fc 100644 --- a/target/linux/ath79/dts/qca9558_tplink_archer-c.dtsi +++ b/target/linux/ath79/dts/qca9558_tplink_archer-c.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9558_tplink_re350k-v1.dts b/target/linux/ath79/dts/qca9558_tplink_re350k-v1.dts index a78a9d5be..f802de271 100644 --- a/target/linux/ath79/dts/qca9558_tplink_re350k-v1.dts +++ b/target/linux/ath79/dts/qca9558_tplink_re350k-v1.dts @@ -88,11 +88,12 @@ gpios = <&gpio 23 GPIO_ACTIVE_HIGH>, <&gpio 18 GPIO_ACTIVE_HIGH>; - phy0: ethernet-phy@4 { + phy4: ethernet-phy@4 { reg = <4>; phy-mode = "rgmii-rxid"; - at803x-disable-smarteee; + eee-broken-100tx; + eee-broken-1000t; }; }; }; @@ -100,9 +101,10 @@ ð0 { status = "okay"; - mtd-mac-address = <&config 0x10008>; + phy-handle = <&phy4>; pll-data = <0x9e000000 0x80000101 0x80001313>; - phy-handle = <&phy0>; + + mtd-mac-address = <&config 0x10008>; gmac-config { device = <&gmac>; diff --git a/target/linux/ath79/dts/qca9558_tplink_rex5x.dtsi b/target/linux/ath79/dts/qca9558_tplink_rex5x.dtsi index 2bc0f38f0..8827990eb 100644 --- a/target/linux/ath79/dts/qca9558_tplink_rex5x.dtsi +++ b/target/linux/ath79/dts/qca9558_tplink_rex5x.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include @@ -94,7 +93,7 @@ #address-cells = <1>; #size-cells = <0>; - phy0: ethernet-phy@4 { + phy4: ethernet-phy@4 { reg = <4>; reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>; }; @@ -168,13 +167,16 @@ ð0 { status = "okay"; - mtd-mac-address = <&info 0x8>; + + phy-handle = <&phy4>; pll-data = <0xa6000000 0x00000101 0x00001616>; - phy-handle = <&phy0>; + + mtd-mac-address = <&info 0x8>; }; &wmac { status = "okay"; + mtd-cal-data = <&art 0x1000>; mtd-mac-address = <&info 0x8>; mtd-mac-address-increment = <(-1)>; diff --git a/target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi b/target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi index 4c3a3230f..a3f2b1121 100644 --- a/target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi +++ b/target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts b/target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts index 5a896d52b..4ad65c31e 100644 --- a/target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts +++ b/target/linux/ath79/dts/qca9558_zyxel_nbg6716.dts @@ -200,8 +200,8 @@ &mdio0 { status = "okay"; - phy0: ethernet-phy@0 { - reg = <17>; + phy17: ethernet-phy@11 { + reg = <0x11>; phy-mode = "rgmii-id"; }; @@ -236,7 +236,8 @@ status = "okay"; pll-data = <0xa6000000 0x00000101 0x00001616>; - phy-handle = <&phy0>; + phy-handle = <&phy17>; + fixed-link { speed = <1000>; full-duplex; @@ -248,6 +249,7 @@ pll-data = <0x03000101 0x00000101 0x00001616>; phy-handle = <&phy1>; + fixed-link { speed = <1000>; full-duplex; diff --git a/target/linux/ath79/dts/qca9561_avm_fritz4020.dts b/target/linux/ath79/dts/qca9561_avm_fritz4020.dts index 641225259..75cc5761b 100644 --- a/target/linux/ath79/dts/qca9561_avm_fritz4020.dts +++ b/target/linux/ath79/dts/qca9561_avm_fritz4020.dts @@ -153,7 +153,6 @@ ð0 { status = "okay"; - phy-mode = "mii"; phy-handle = <&swphy0>; gmac-config { diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c25-v1.dts b/target/linux/ath79/dts/qca9561_tplink_archer-c25-v1.dts index f894fc867..e7b30df81 100644 --- a/target/linux/ath79/dts/qca9561_tplink_archer-c25-v1.dts +++ b/target/linux/ath79/dts/qca9561_tplink_archer-c25-v1.dts @@ -181,7 +181,6 @@ ð0 { status = "okay"; - phy-mode = "mii"; phy-handle = <&swphy4>; mtd-mac-address = <&info 0x8>; diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c5x.dtsi b/target/linux/ath79/dts/qca9561_tplink_archer-c5x.dtsi index 00cd413bd..c8e4710b3 100644 --- a/target/linux/ath79/dts/qca9561_tplink_archer-c5x.dtsi +++ b/target/linux/ath79/dts/qca9561_tplink_archer-c5x.dtsi @@ -136,7 +136,6 @@ ð0 { status = "okay"; - phy-mode = "mii"; phy-handle = <&swphy0>; mtd-mac-address = <&mac 0x8>; diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c6x.dtsi b/target/linux/ath79/dts/qca9561_tplink_archer-c6x.dtsi index 719a9d065..9b51ebf68 100644 --- a/target/linux/ath79/dts/qca9561_tplink_archer-c6x.dtsi +++ b/target/linux/ath79/dts/qca9561_tplink_archer-c6x.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include @@ -89,7 +88,6 @@ ð0 { status = "okay"; - phy-mode = "mii"; phy-handle = <&swphy4>; mtd-mac-address = <&mac 0x8>; diff --git a/target/linux/ath79/dts/qca9563_dlink_dir-842-c.dtsi b/target/linux/ath79/dts/qca9563_dlink_dir-842-c.dtsi index ac8fe3ae0..2482874c9 100644 --- a/target/linux/ath79/dts/qca9563_dlink_dir-842-c.dtsi +++ b/target/linux/ath79/dts/qca9563_dlink_dir-842-c.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9563_elecom_wrc-ghbk2-i.dtsi b/target/linux/ath79/dts/qca9563_elecom_wrc-ghbk2-i.dtsi index f04304ee4..9395c7b26 100644 --- a/target/linux/ath79/dts/qca9563_elecom_wrc-ghbk2-i.dtsi +++ b/target/linux/ath79/dts/qca9563_elecom_wrc-ghbk2-i.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dtsi b/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dtsi index 8250db55a..3e30a0fd0 100644 --- a/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dtsi +++ b/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dtsi @@ -1,7 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; - #include #include diff --git a/target/linux/ath79/dts/qca9563_netgear_wndr.dtsi b/target/linux/ath79/dts/qca9563_netgear_wndr.dtsi new file mode 100644 index 000000000..bc06c5bd9 --- /dev/null +++ b/target/linux/ath79/dts/qca9563_netgear_wndr.dtsi @@ -0,0 +1,256 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include +#include + +#include "qca956x.dtsi" + +/ { + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + aliases { + led-boot = &led_power_amber; + led-failsafe = &led_power_amber; + led-running = &led_power_green; + led-upgrade = &led_power_amber; + label-mac-device = ð0; + }; + + keys { + compatible = "gpio-keys"; + + wps { + label = "wps"; + linux,code = ; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + }; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + }; + }; + + ath9k-keys { + compatible = "gpio-keys-polled"; + poll-interval = <20>; + + rfkill { + label = "rfkill"; + linux,code = ; + gpios = <&ath9k 9 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds: leds { + compatible = "gpio-leds"; + + pinctrl-names = "default"; + pinctrl-0 = <&jtag_disable_pins>; + + led_power_green: power_green { + label = "netgear:green:power"; + gpios = <&gpio 5 GPIO_ACTIVE_LOW>; + }; + + led_power_amber: power_amber { + label = "netgear:amber:power"; + gpios = <&gpio 6 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + wan_green { + label = "netgear:green:wan"; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + + wan_amber { + label = "netgear:amber:wan"; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + }; + + wlan2g_green { + label = "netgear:green:wlan2g"; + gpios = <&gpio 19 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + wps_green { + label = "netgear:green:wps"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + }; + + ath9k-leds { + compatible = "gpio-leds"; + + wlan5g_blue { + label = "netgear:blue:wlan5g"; + gpios = <&ath9k 7 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + }; +}; + +&spi { + status = "okay"; + + num-cs = <2>; + cs-gpios = <0>, <0>; + + 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 = <0x0 0x40000>; + read-only; + }; + + partition@40000 { + label = "u-boot-env"; + reg = <0x40000 0x10000>; + }; + + partition@50000 { + label = "caldata_backup"; + reg = <0x50000 0x10000>; + read-only; + }; + + partition@60000 { + label = "config"; + reg = <0x60000 0x10000>; + }; + + partition@70000 { + label = "traffic_meter"; + reg = <0x70000 0x10000>; + }; + + partition@80000 { + label = "pot"; + reg = <0x80000 0x10000>; + }; + + partition@90000 { + label = "reserved"; + reg = <0x90000 0x160000>; + }; + + caldata: partition@1f0000 { + label = "caldata"; + reg = <0x1f0000 0x10000>; + read-only; + }; + }; + }; + + flash@1 { + compatible = "spi-nand"; + reg = <1>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "kernel"; + reg = <0x0 0x400000>; + }; + + partition@400000 { + label = "ubi"; + reg = <0x400000 0x7c00000>; + }; + }; + }; +}; + +&mdio0 { + status = "okay"; + + phy-mask = <0>; + + phy0: ethernet-phy@0 { + reg = <0>; + phy-mode = "sgmii"; + qca,mib-poll-interval = <500>; + + qca,ar8327-initvals = < + 0x04 0x00000080 /* PORT0 PAD MODE CTRL */ + 0x10 0x81000080 /* POWER_ON_STRIP */ + 0x50 0xcc35cc35 /* LED_CTRL0 */ + 0x54 0xcb37cb37 /* LED_CTRL1 */ + 0x58 0x00000000 /* LED_CTRL2 */ + 0x5c 0x00f3cf00 /* LED_CTRL3 */ + 0x7c 0x0000007e /* PORT0_STATUS */ + 0x94 0x00000200 /* PORT6_STATUS */ + >; + }; +}; + +ð0 { + status = "okay"; + + pll-data = <0x03000101 0x00000101 0x00001919>; + + mtd-mac-address = <&caldata 0x0>; + + phy-mode = "sgmii"; + phy-handle = <&phy0>; +}; + +&wmac { + status = "okay"; + + mtd-mac-address = <&caldata 0x0>; + qca,no-eeprom; +}; + +&pcie { + status = "okay"; + + ath9k: wifi@0,0 { + /* chip is AR9580, override bogus PCI ID 168c:abcd */ + compatible = "pci168c,0033"; + reg = <0x0000 0 0 0 0>; + mtd-mac-address = <&caldata 0xc>; + qca,no-eeprom; + qca,gpio-mask=<0xf6ff>; /* unmask pin 9 for RFKILL button */ + #gpio-cells = <2>; + gpio-controller; + }; +}; + +&usb_phy0 { + status = "okay"; +}; + +&usb0 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + hub_port0: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&uart { + status = "okay"; +}; diff --git a/target/linux/ath79/dts/qca9563_netgear_wndr4300-v2.dts b/target/linux/ath79/dts/qca9563_netgear_wndr4300-v2.dts new file mode 100644 index 000000000..e4b4ba2ac --- /dev/null +++ b/target/linux/ath79/dts/qca9563_netgear_wndr4300-v2.dts @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +#include "qca9563_netgear_wndr.dtsi" + +/ { + compatible = "netgear,wndr4300-v2", "qca,qca9563"; + model = "Netgear WNDR4300 v2"; +}; + +&leds { + usb_green { + label = "netgear:green:usb"; + gpios = <&gpio 7 GPIO_ACTIVE_LOW>; + trigger-sources = <&hub_port0>; + linux,default-trigger = "usbport"; + }; +}; diff --git a/target/linux/ath79/dts/qca9563_netgear_wndr4500-v3.dts b/target/linux/ath79/dts/qca9563_netgear_wndr4500-v3.dts new file mode 100644 index 000000000..95e30ea84 --- /dev/null +++ b/target/linux/ath79/dts/qca9563_netgear_wndr4500-v3.dts @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +#include "qca9563_netgear_wndr.dtsi" + +/ { + compatible = "netgear,wndr4500-v3", "qca,qca9563"; + model = "Netgear WNDR4500 v3"; +}; + +&leds { + usb1_green { + label = "netgear:green:usb1"; + gpios = <&gpio 7 GPIO_ACTIVE_LOW>; + trigger-sources = <&hub_port0>; + linux,default-trigger = "usbport"; + }; + + usb2_green { + label = "netgear:green:usb2"; + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + trigger-sources = <&hub_port1>; + linux,default-trigger = "usbport"; + }; +}; + +&usb_phy1 { + status = "okay"; +}; + +&usb1 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + hub_port1: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; diff --git a/target/linux/ath79/dts/qca9563_phicomm_k2t.dts b/target/linux/ath79/dts/qca9563_phicomm_k2t.dts index cb5c01b01..a6aa3a8ad 100644 --- a/target/linux/ath79/dts/qca9563_phicomm_k2t.dts +++ b/target/linux/ath79/dts/qca9563_phicomm_k2t.dts @@ -11,10 +11,10 @@ compatible = "phicomm,k2t", "qca,qca9563"; aliases { - led-boot = &status_red; - led-failsafe = &status_red; - led-running = &status_red; - led-upgrade = &status_red; + led-boot = &led_status_red; + led-failsafe = &led_status_red; + led-running = &led_status_red; + led-upgrade = &led_status_red; }; chosen { @@ -29,7 +29,7 @@ gpios = <&gpio 6 GPIO_ACTIVE_LOW>; }; - status_red: status_red { + led_status_red: status_red { label = "phicomm:red:status"; gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; }; diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-x7-v5.dtsi b/target/linux/ath79/dts/qca9563_tplink_archer-x7-v5.dtsi index 3049c8bc2..8d6e1ed9f 100644 --- a/target/linux/ath79/dts/qca9563_tplink_archer-x7-v5.dtsi +++ b/target/linux/ath79/dts/qca9563_tplink_archer-x7-v5.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9563_tplink_re450-v2.dts b/target/linux/ath79/dts/qca9563_tplink_re450-v2.dts index 464be7344..28fefe224 100644 --- a/target/linux/ath79/dts/qca9563_tplink_re450-v2.dts +++ b/target/linux/ath79/dts/qca9563_tplink_re450-v2.dts @@ -103,7 +103,7 @@ #address-cells = <1>; #size-cells = <0>; - phy0: ethernet-phy@4 { + phy4: ethernet-phy@4 { reg = <4>; device_type = "ethernet-phy"; reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>; @@ -125,6 +125,7 @@ &spi { status = "okay"; + num-cs = <1>; flash@0 { @@ -178,12 +179,15 @@ ð0 { status = "okay"; + + phy-handle = <&phy4>; + mtd-mac-address = <&info 0x8>; - phy-handle = <&phy0>; }; &wmac { status = "okay"; + mtd-cal-data = <&art 0x1000>; mtd-mac-address = <&info 0x8>; }; diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wr1043n.dtsi b/target/linux/ath79/dts/qca9563_tplink_tl-wr1043n.dtsi index ba56cf23b..47480481f 100644 --- a/target/linux/ath79/dts/qca9563_tplink_tl-wr1043n.dtsi +++ b/target/linux/ath79/dts/qca9563_tplink_tl-wr1043n.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi b/target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi index 2f7964de9..bd6b24209 100644 --- a/target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi +++ b/target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include diff --git a/target/linux/ath79/dts/qca956x.dtsi b/target/linux/ath79/dts/qca956x.dtsi index ee645aa02..03541b86f 100644 --- a/target/linux/ath79/dts/qca956x.dtsi +++ b/target/linux/ath79/dts/qca956x.dtsi @@ -307,8 +307,6 @@ resets = <&rst 13>; reset-names = "mac"; - status = "disabled"; - fixed-link { speed = <1000>; full-duplex; diff --git a/target/linux/ath79/dts/tp9343_tplink_tl-wr940n-v3.dtsi b/target/linux/ath79/dts/tp9343_tplink_tl-wr940n-v3.dtsi index f5543e4f8..dcb450a2d 100644 --- a/target/linux/ath79/dts/tp9343_tplink_tl-wr940n-v3.dtsi +++ b/target/linux/ath79/dts/tp9343_tplink_tl-wr940n-v3.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include "tp9343_tplink_tl-wr94x.dtsi" diff --git a/target/linux/ath79/dts/tp9343_tplink_tl-wr94x.dtsi b/target/linux/ath79/dts/tp9343_tplink_tl-wr94x.dtsi index c6bb8a241..aeb552530 100644 --- a/target/linux/ath79/dts/tp9343_tplink_tl-wr94x.dtsi +++ b/target/linux/ath79/dts/tp9343_tplink_tl-wr94x.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include #include @@ -74,7 +73,6 @@ ð0 { status = "okay"; - phy-mode = "mii"; phy-handle = <&swphy4>; mtd-mac-address = <&uboot 0x1fc00>; diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c index 0924b81b9..6123a26f2 100644 --- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c +++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c @@ -559,6 +559,112 @@ static void ath79_set_pll(struct ag71xx *ag) udelay(100); } +static void ag71xx_bit_set(void __iomem *reg, u32 bit) +{ + u32 val; + + val = __raw_readl(reg) | bit; + __raw_writel(val, reg); + __raw_readl(reg); +} + +static void ag71xx_bit_clear(void __iomem *reg, u32 bit) +{ + u32 val; + + val = __raw_readl(reg) & ~bit; + __raw_writel(val, reg); + __raw_readl(reg); +} + +static void ag71xx_sgmii_init_qca955x(struct device_node *np) +{ + struct device_node *np_dev; + void __iomem *gmac_base; + u32 mr_an_status; + u32 sgmii_status; + u8 tries = 0; + int err = 0; + + np = of_get_child_by_name(np, "gmac-config"); + if (!np) + return; + + np_dev = of_parse_phandle(np, "device", 0); + if (!np_dev) + goto out; + + gmac_base = of_iomap(np_dev, 0); + if (!gmac_base) { + pr_err("%pOF: can't map GMAC registers\n", np_dev); + err = -ENOMEM; + goto err_iomap; + } + + mr_an_status = __raw_readl(gmac_base + QCA955X_GMAC_REG_MR_AN_STATUS); + if (!(mr_an_status & QCA955X_MR_AN_STATUS_AN_ABILITY)) + goto sgmii_out; + + /* SGMII reset sequence */ + __raw_writel(QCA955X_SGMII_RESET_RX_CLK_N_RESET, + gmac_base + QCA955X_GMAC_REG_SGMII_RESET); + __raw_readl(gmac_base + QCA955X_GMAC_REG_SGMII_RESET); + udelay(10); + + ag71xx_bit_set(gmac_base + QCA955X_GMAC_REG_SGMII_RESET, + QCA955X_SGMII_RESET_HW_RX_125M_N); + udelay(10); + + ag71xx_bit_set(gmac_base + QCA955X_GMAC_REG_SGMII_RESET, + QCA955X_SGMII_RESET_RX_125M_N); + udelay(10); + + ag71xx_bit_set(gmac_base + QCA955X_GMAC_REG_SGMII_RESET, + QCA955X_SGMII_RESET_TX_125M_N); + udelay(10); + + ag71xx_bit_set(gmac_base + QCA955X_GMAC_REG_SGMII_RESET, + QCA955X_SGMII_RESET_RX_CLK_N); + udelay(10); + + ag71xx_bit_set(gmac_base + QCA955X_GMAC_REG_SGMII_RESET, + QCA955X_SGMII_RESET_TX_CLK_N); + udelay(10); + + /* + * The following is what QCA has to say about what happens here: + * + * Across resets SGMII link status goes to weird state. + * If SGMII_DEBUG register reads other than 0x1f or 0x10, + * we are for sure in a bad state. + * + * Issue a PHY reset in MR_AN_CONTROL to keep going. + */ + do { + ag71xx_bit_set(gmac_base + QCA955X_GMAC_REG_MR_AN_CONTROL, + QCA955X_MR_AN_CONTROL_PHY_RESET | + QCA955X_MR_AN_CONTROL_AN_ENABLE); + udelay(200); + ag71xx_bit_clear(gmac_base + QCA955X_GMAC_REG_MR_AN_CONTROL, + QCA955X_MR_AN_CONTROL_PHY_RESET); + mdelay(300); + sgmii_status = __raw_readl(gmac_base + QCA955X_GMAC_REG_SGMII_DEBUG) & + QCA955X_SGMII_DEBUG_TX_STATE_MASK; + + if (tries++ >= 20) { + pr_err("ag71xx: max retries for SGMII fixup exceeded\n"); + break; + } + } while (!(sgmii_status == 0xf || sgmii_status == 0x10)); + +sgmii_out: + iounmap(gmac_base); +err_iomap: + of_node_put(np_dev); +out: + of_node_put(np); +} + static void ath79_mii_ctrl_set_if(struct ag71xx *ag, unsigned int mii_if) { u32 t; @@ -707,6 +813,8 @@ __ag71xx_link_adjust(struct ag71xx *ag, bool update) of_device_is_compatible(np, "qca,qca9550-eth") || of_device_is_compatible(np, "qca,qca9560-eth")) { ath79_set_pllval(ag); + if (of_property_read_bool(np, "qca955x-sgmii-fixup")) + ag71xx_sgmii_init_qca955x(np); } } diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds index 5561677ec..15a467ccc 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds @@ -90,6 +90,10 @@ etactica,eg200) ucidef_set_led_netdev "lan" "LAN" "$boardname:red:eth0" "eth0" ucidef_set_led_oneshot "modbus" "Modbus" "$boardname:red:modbus" "100" "33" ;; +glinet,6408|\ +glinet,6416) + ucidef_set_led_netdev "lan" "LAN" "gl-inet:green:lan" "eth0" + ;; glinet,gl-ar150) ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1" ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x02" @@ -205,7 +209,8 @@ tplink,cpe510-v3) ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "tp-link:green:link3" "wlan0" "51" "100" "-50" "13" ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "tp-link:green:link4" "wlan0" "76" "100" "-75" "13" ;; -tplink,cpe610-v1) +tplink,cpe610-v1|\ +tplink,tl-wr902ac-v1) ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0" ;; tplink,re355-v1|\ @@ -214,6 +219,11 @@ tplink,re450-v2) ucidef_set_led_netdev "lan_data" "LAN Data" "tp-link:green:lan_data" "eth0" "tx rx" ucidef_set_led_netdev "lan_link" "LAN Link" "tp-link:green:lan_link" "eth0" "link" ;; +tplink,tl-mr6400-v1) + ucidef_set_led_switch "lan" "LAN" "tp-link:white:lan" "switch0" "0x0e" + ucidef_set_led_netdev "wan" "WAN" "tp-link:white:wan" "eth1" + ucidef_set_led_netdev "4g" "4G" "tp-link:white:4g" "usb0" + ;; tplink,tl-wr842n-v2) ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1" ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04" @@ -226,6 +236,7 @@ trendnet,tew-823dru) ;; ubnt,bullet-m|\ ubnt,bullet-m-xw|\ +ubnt,nanostation-loco-m-xw|\ ubnt,nanostation-m|\ ubnt,nanostation-m-xw|\ ubnt,rocket-m) diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network index e811f85f0..4630cf844 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -18,8 +18,10 @@ ath79_setup_interfaces() devolo,dvl1750c|\ devolo,dvl1750i|\ devolo,dvl1750x|\ + dlink,dir-505|\ engenius,ecb1750|\ glinet,gl-ar300m-lite|\ + mikrotik,routerboard-wap-g-5hact2hnd|\ netgear,ex6400|\ netgear,ex7300|\ ocedo,koala|\ @@ -37,11 +39,14 @@ ath79_setup_interfaces() tplink,re355-v1|\ tplink,re450-v1|\ tplink,re450-v2|\ + tplink,tl-wr902ac-v1|\ ubnt,bullet-m|\ ubnt,bullet-m-xw|\ ubnt,lap-120|\ + ubnt,litebeam-ac-gen2|\ ubnt,nanobeam-ac|\ ubnt,nanostation-ac-loco|\ + ubnt,nanostation-loco-m-xw|\ ubnt,rocket-m|\ ubnt,unifiac-lite|\ ubnt,unifiac-lr|\ @@ -211,7 +216,8 @@ ath79_setup_interfaces() tplink,archer-c7-v4|\ tplink,archer-c7-v5|\ tplink,tl-wdr3600-v1|\ - tplink,tl-wdr4300-v1) + tplink,tl-wdr4300-v1|\ + tplink,tl-wdr4300-v1-il) ucidef_add_switch "switch0" \ "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan" ;; @@ -232,6 +238,11 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan" ;; + tplink,tl-mr6400-v1) + ucidef_set_interfaces_lan_wan "eth0.1 eth1" "usb0" + ucidef_add_switch "switch0" \ + "0@eth0" "1:lan:1" "2:lan:3" "3:lan:2" + ;; tplink,tl-wr842n-v2) ucidef_set_interface_wan "eth1" ucidef_add_switch "switch0" \ @@ -256,6 +267,16 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2" ;; + ubnt,edgeswitch-5xp) + ucidef_set_interface_wan "eth1" + ucidef_add_switch "switch0" \ + "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" + ;; + ubnt,edgeswitch-8xp) + ucidef_set_interface_wan "eth1" + ucidef_add_switch "switch0" \ + "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:lan:5" "5:lan:6" "6:lan:7" "7:lan:8" "8@eth0" + ;; ubnt,routerstation-pro) ucidef_set_interface_wan "eth0" ucidef_add_switch "switch0" \ @@ -287,12 +308,7 @@ ath79_setup_macs() lan_mac=$(mtd_get_mac_binary "Board data" 2) label_mac=$lan_mac ;; - alfa-network,ap121f|\ - ubnt,airrouter|\ - ubnt,bullet-m|\ - ubnt,nanostation-m|\ - ubnt,rocket-m|\ - ubnt,unifi) + alfa-network,ap121f) label_mac=$(mtd_get_mac_binary art 0x1002) ;; avm,fritz300e) @@ -307,6 +323,9 @@ ath79_setup_macs() lan_mac=$(mtd_get_mac_text "caldata" 0xffa0) wan_mac=$(mtd_get_mac_text "caldata" 0xffb4) ;; + dlink,dir-505) + lan_mac=$(mtd_get_mac_text "mac" 0x4) + ;; dlink,dir-825-c1|\ dlink,dir-835-a1) lan_mac=$(mtd_get_mac_text "mac" 0x4) @@ -392,11 +411,27 @@ ath79_setup_macs() base_mac=$(mtd_get_mac_binary info 0x8) wan_mac=$(macaddr_add "$base_mac" 1) ;; + tplink,tl-wdr3600-v1|\ + tplink,tl-wdr4300-v1|\ + tplink,tl-wdr4300-v1-il) + base_mac=$(mtd_get_mac_binary u-boot 0x1fc00) + wan_mac=$(macaddr_add "$base_mac" 1) + ;; trendnet,tew-823dru) lan_mac=$(mtd_get_mac_text mac 0x4) wan_mac=$(mtd_get_mac_text mac 0x18) label_mac=$wan_mac ;; + ubnt,airrouter|\ + ubnt,bullet-m|\ + ubnt,nanostation-m|\ + ubnt,rocket-m|\ + ubnt,unifi) + label_mac=$(cat /sys/class/ieee80211/phy0/macaddress) + ;; + ubnt,litebeam-ac-gen2) + label_mac=$(mtd_get_mac_binary art 0x5006) + ;; ubnt,routerstation|\ ubnt,routerstation-pro) wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa) diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index f04fb64fc..8a915cec4 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -2,7 +2,81 @@ [ -e /lib/firmware/$FIRMWARE ] && exit 0 -. /lib/functions/caldata.sh +. /lib/functions.sh +. /lib/functions/system.sh +. /lib/functions/mikrotik-caldata.sh + +ath9k_eeprom_die() { + echo "ath9k eeprom: " "$*" + exit 1 +} + +ath9k_eeprom_extract() { + local part=$1 + local offset=$(($2)) + local count=$(($3)) + local mtd + + mtd=$(find_mtd_chardev $part) + [ -n "$mtd" ] || \ + ath9k_eeprom_die "no mtd device found for partition $part" + + dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ + ath9k_eeprom_die "failed to extract from $mtd" +} + +ath9k_eeprom_extract_reverse() { + local part=$1 + local offset=$2 + local count=$(($3)) + local mtd + local reversed + local caldata + + mtd=$(find_mtd_chardev "$part") + reversed=$(hexdump -v -s $offset -n $count -e '/1 "%02x "' $mtd) + + for byte in $reversed; do + caldata="\x${byte}${caldata}" + done + + printf "%b" "$caldata" > /lib/firmware/$FIRMWARE +} + +ath9k_patch_fw_mac() { + local mac=$1 + local mac_offset=$(($2)) + local chksum_offset=$3 + local xor_mac + local xor_fw_mac + local xor_fw_chksum + + [ -z "$mac" -o -z "$mac_offset" ] && return + + [ -n "$chksum_offset" ] && { + xor_mac=${mac//:/} + xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}" + + xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) + xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}" + + xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) + xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac) + + printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \ + dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$(($chksum_offset)) count=2 + } + + macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc oflag=seek_bytes bs=6 seek=$mac_offset count=1 +} + +ath9k_patch_fw_mac_crc() { + local mac=$1 + local mac_offset=$2 + local chksum_offset=$((mac_offset - 10)) + + ath9k_patch_fw_mac "${mac}" "${mac_offset}" "${chksum_offset}" +} board=$(board_name) @@ -10,12 +84,13 @@ case "$FIRMWARE" in "ath9k-eeprom-ahb-18100000.wmac.bin") case $board in avm,fritz4020) - caldata_extract_reverse "urlader" 0x1541 0x440 + ath9k_eeprom_extract_reverse "urlader" 0x1541 0x440 ;; + dlink,dir-505|\ dlink,dir-825-c1|\ dlink,dir-835-a1) - caldata_extract "art" 0x1000 0x440 - ath9k_patch_mac $(mtd_get_mac_text "mac" 0x4) + ath9k_eeprom_extract "art" 0x1000 0x440 + ath9k_patch_fw_mac $(mtd_get_mac_text "mac" 0x4) 0x2 ;; dlink,dir-842-c1|\ dlink,dir-842-c2|\ @@ -23,12 +98,12 @@ case "$FIRMWARE" in dlink,dir-859-a1|\ nec,wg1200cr|\ wd,mynet-n750) - caldata_extract "art" 0x1000 0x440 - ath9k_patch_mac $(mtd_get_mac_ascii devdata "wlan24mac") + ath9k_eeprom_extract "art" 0x1000 0x440 + ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan24mac") 0x2 ;; engenius,ecb1750) - caldata_extract "art" 0x1000 0x440 - ath9k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env "athaddr") +1) + ath9k_eeprom_extract "art" 0x1000 0x440 + ath9k_patch_fw_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env "athaddr") +1) 0x2 ;; engenius,epg5000|\ iodata,wn-ac1167dgr|\ @@ -36,45 +111,50 @@ case "$FIRMWARE" in iodata,wn-ac1600dgr2|\ iodata,wn-ag300dgr|\ sitecom,wlr-7100) - caldata_extract "art" 0x1000 0x440 - ath9k_patch_mac $(mtd_get_mac_ascii u-boot-env ethaddr) + ath9k_eeprom_extract "art" 0x1000 0x440 + ath9k_patch_fw_mac $(mtd_get_mac_ascii u-boot-env ethaddr) 0x2 + ;; + mikrotik,routerboard-wap-g-5hact2hnd) + mikrotik_caldata_extract "art" 0x1000 0x440 + ath9k_patch_fw_mac $(macaddr_add $(mtd_get_mac_binary art 0x10) +2) ;; nec,wg800hp) - caldata_extract "art" 0x1000 0x440 - ath9k_patch_mac $(mtd_get_mac_text board_data 0x680) + ath9k_eeprom_extract "art" 0x1000 0x440 + ath9k_patch_fw_mac $(mtd_get_mac_text board_data 0x680) 0x2 ;; qihoo,c301) - caldata_extract "radiocfg" 0x1000 0x440 - ath9k_patch_mac $(mtd_get_mac_ascii devdata "wlan24mac") + ath9k_eeprom_extract "radiocfg" 0x1000 0x440 + ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan24mac") ;; *) - caldata_die "board $board is not supported yet" + ath9k_eeprom_die "board $board is not supported yet" ;; esac ;; "ath9k-eeprom-pci-0000:00:00.0.bin") case $board in avm,fritz300e) - caldata_extract_reverse "urloader" 0x1541 0x440 + ath9k_eeprom_extract_reverse "urloader" 0x1541 0x440 ;; buffalo,wzr-hp-g302h-a1a0) - caldata_extract "art" 0x1000 0xeb8 + ath9k_eeprom_extract "art" 0x1000 0xeb8 ;; buffalo,wzr-hp-g450h) - caldata_extract "art" 0x1000 0x440 + ath9k_eeprom_extract "art" 0x1000 0x440 ;; dlink,dir-825-c1|\ dlink,dir-835-a1) - caldata_extract "art" 0x5000 0x440 - ath9k_patch_mac $(macaddr_add $(mtd_get_mac_text "mac" 0x18) 1) + ath9k_eeprom_extract "art" 0x5000 0x440 + ath9k_patch_fw_mac $(macaddr_add $(mtd_get_mac_text "mac" 0x18) 1) 0x2 ;; ocedo,raccoon|\ tplink,tl-wdr3500-v1|\ tplink,tl-wdr3600-v1|\ tplink,tl-wdr4300-v1|\ + tplink,tl-wdr4300-v1-il|\ tplink,tl-wdr4900-v2|\ winchannel,wb2000) - caldata_extract "art" 0x5000 0x440 + ath9k_eeprom_extract "art" 0x5000 0x440 ;; netgear,wnr2200-8m|\ netgear,wnr2200-16m|\ @@ -85,21 +165,21 @@ case "$FIRMWARE" in ubnt,bullet-m|\ ubnt,nanostation-m|\ ubnt,rocket-m) - caldata_extract "art" 0x1000 0x1000 + ath9k_eeprom_extract "art" 0x1000 0x1000 ;; ubnt,unifi) - caldata_extract "art" 0x1000 0x800 + ath9k_eeprom_extract "art" 0x1000 0x800 ;; wd,mynet-n750) - caldata_extract "art" 0x5000 0x440 - ath9k_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac") + ath9k_eeprom_extract "art" 0x5000 0x440 + ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan5mac") 0x2 ;; wd,mynet-wifi-rangeextender) - caldata_extract "art" 0x1000 0x1000 - ath9k_patch_mac $(nvram get wl0_hwaddr) + ath9k_eeprom_extract "art" 0x1000 0x1000 + ath9k_patch_fw_mac $(nvram get wl0_hwaddr) "$mac" 0x2 ;; *) - caldata_die "board $board is not supported yet" + ath9k_eeprom_die "board $board is not supported yet" ;; esac ;; @@ -110,14 +190,14 @@ case "$FIRMWARE" in netgear,wndr3700v2|\ netgear,wndr3800|\ netgear,wndr3800ch) - caldata_extract "art" 0x1000 0xeb8 + ath9k_eeprom_extract "art" 0x1000 0xeb8 ;; dlink,dir-825-b1) - caldata_extract "caldata" 0x1000 0xeb8 - ath9k_patch_mac_crc $(mtd_get_mac_text "caldata" 0xffa0) 0x20c + ath9k_eeprom_extract "caldata" 0x1000 0xeb8 + ath9k_patch_fw_mac_crc $(mtd_get_mac_text "caldata" 0xffa0) 0x20c ;; *) - caldata_die "board $board is not supported yet" + ath9k_eeprom_die "board $board is not supported yet" ;; esac ;; @@ -128,14 +208,14 @@ case "$FIRMWARE" in netgear,wndr3700v2|\ netgear,wndr3800|\ netgear,wndr3800ch) - caldata_extract "art" 0x5000 0xeb8 + ath9k_eeprom_extract "art" 0x5000 0xeb8 ;; dlink,dir-825-b1) - caldata_extract "caldata" 0x5000 0xeb8 - ath9k_patch_mac_crc $(macaddr_add $(mtd_get_mac_text "caldata" 0xffb4) 1) 0x20c + ath9k_eeprom_extract "caldata" 0x5000 0xeb8 + ath9k_patch_fw_mac_crc $(macaddr_add $(mtd_get_mac_text "caldata" 0xffb4) 1) 0x20c ;; *) - caldata_die "board $board is not supported yet" + ath9k_eeprom_die "board $board is not supported yet" ;; esac ;; diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 062caf6ad..0f2dd6bae 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -1,9 +1,71 @@ #!/bin/sh +. /lib/functions.sh +. /lib/functions/k2t.sh +. /lib/functions/mikrotik-caldata.sh + +ath10kcal_die() { + echo "ath10cal: " "$*" + exit 1 +} + +ath10kcal_from_file() { + local source=$1 + local offset=$(($2)) + local count=$(($3)) + + dd if=$source of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ + ath10kcal_die "failed to extract calibration data from $source" +} + +ath10kcal_extract() { + local part=$1 + local offset=$(($2)) + local count=$(($3)) + local mtd + + mtd=$(find_mtd_chardev $part) + [ -n "$mtd" ] || \ + ath10kcal_die "no mtd device found for partition $part" + + dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ + ath10kcal_die "failed to extract calibration data from $mtd" +} + +ath10kcal_patch_mac() { + local mac=$1 + + [ -z "$mac" ] && return + + macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc oflag=seek_bytes bs=6 seek=6 count=1 +} + +ath10kcal_patch_mac_crc() { + local mac=$1 + local mac_offset=6 + local chksum_offset=2 + local xor_mac + local xor_fw_mac + local xor_fw_chksum + + xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) + xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}" + + ath10kcal_patch_mac "$mac" && { + xor_mac=${mac//:/} + xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}" + + xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) + xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac) + + printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \ + dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$chksum_offset count=2 + } +} + [ -e /lib/firmware/$FIRMWARE ] && exit 0 -. /lib/functions/caldata.sh -. /lib/functions/k2t.sh +. /lib/functions/system.sh board=$(board_name) @@ -17,12 +79,13 @@ case "$FIRMWARE" in ubnt,unifiac-mesh|\ ubnt,unifiac-mesh-pro|\ ubnt,lap-120|\ + ubnt,litebeam-ac-gen2|\ ubnt,nanobeam-ac|\ ubnt,nanostation-ac|\ ubnt,nanostation-ac-loco|\ ubnt,unifiac-pro|\ yuncore,a770) - caldata_extract "art" 0x5000 0x844 + ath10kcal_extract "art" 0x5000 0x844 ;; devolo,dvl1200e|\ devolo,dvl1200i|\ @@ -30,93 +93,100 @@ case "$FIRMWARE" in devolo,dvl1750e|\ devolo,dvl1750i|\ devolo,dvl1750x) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) -1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary art 0x0) -1) ;; dlink,dir-859-a1) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac") + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac") ;; elecom,wrc-1750ghbk2-i) - caldata_extract "art" 0x5000 0x844 + ath10kcal_extract "art" 0x5000 0x844 ;; engenius,ecb1750) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(mtd_get_mac_ascii u-boot-env athaddr) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(mtd_get_mac_ascii u-boot-env athaddr) ;; engenius,epg5000|\ iodata,wn-ac1167dgr|\ iodata,wn-ac1600dgr2|\ sitecom,wlr-7100) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1) ;; engenius,ews511ap) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1) ;; glinet,gl-ar750) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) +1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) +1) ;; glinet,gl-x750) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) +2) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) +2) + ;; + mikrotik,routerboard-wap-g-5hact2hnd) + mikrotik_caldata_extract "art" 0x5000 0x844 ;; nec,wg800hp) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(mtd_get_mac_text board_data 0x880) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac_crc $(mtd_get_mac_text board_data 0x880) ;; ocedo,koala|\ ocedo,ursus) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(mtd_get_mac_binary art 0xc) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(mtd_get_mac_binary art 0xc) ;; openmesh,om5p-ac-v2) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16) ;; qihoo,c301) - caldata_extract "radiocfg" 0x5000 0x844 - ath10k_patch_mac $(mtd_get_mac_ascii devdata wlan5mac) + ath10kcal_extract "radiocfg" 0x5000 0x844 + ath10kcal_patch_mac_crc $(mtd_get_mac_ascii devdata wlan5mac) ;; tplink,archer-a7-v5|\ tplink,archer-c2-v3|\ tplink,archer-c7-v4|\ tplink,archer-c7-v5|\ tplink,archer-c25-v1) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary info 0x8) -1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary info 0x8) -1) ;; tplink,archer-c5-v1|\ tplink,archer-c7-v2) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary u-boot 0x1fc00) -1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary u-boot 0x1fc00) -1) ;; tplink,archer-d50-v1) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary romfile 0xf100) +2) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary romfile 0xf100) +2) ;; tplink,re350k-v1) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary config 0x10008) +2) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary config 0x10008) +2) ;; tplink,re355-v1|\ tplink,re450-v1) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2) ;; tplink,re450-v2) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary info 0x8) +1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary info 0x8) +1) + ;; + tplink,tl-wr902ac-v1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary tplink 0x8) -1) ;; esac ;; "ath10k/pre-cal-pci-0000:00:00.0.bin") case $board in comfast,cf-e313ac) - caldata_extract "art" 0x5000 0x2f20 - ath10k_patch_mac $(mtd_get_mac_binary art 0x6) + ath10kcal_extract "art" 0x5000 0x2f20 + ath10kcal_patch_mac_crc $(mtd_get_mac_binary art 0x6) ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ /lib/firmware/ath10k/QCA9888/hw2.0/board.bin rm /lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin @@ -125,19 +195,19 @@ case "$FIRMWARE" in dlink,dir-842-c2|\ dlink,dir-842-c3|\ nec,wg1200cr) - caldata_extract "art" 0x5000 0x2f20 - ath10k_patch_mac $(mtd_get_mac_ascii devdata wlan5mac) + ath10kcal_extract "art" 0x5000 0x2f20 + ath10kcal_patch_mac_crc $(mtd_get_mac_ascii devdata wlan5mac) ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ /lib/firmware/ath10k/QCA9888/hw2.0/board.bin ;; netgear,ex6400|\ netgear,ex7300) - caldata_extract "caldata" 0x5000 0x2f20 - ath10k_patch_mac $(mtd_get_mac_binary caldata 0xc) + ath10kcal_extract "caldata" 0x5000 0x2f20 + ath10kcal_patch_mac $(mtd_get_mac_binary caldata 0xc) ;; phicomm,k2t) - caldata_extract "art" 0x5000 0x2f20 - ath10k_patch_mac $(k2t_get_mac "5g_mac") + ath10kcal_extract "art" 0x5000 0x2f20 + ath10kcal_patch_mac_crc $(k2t_get_mac "5g_mac") ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ /lib/firmware/ath10k/QCA9888/hw2.0/board.bin ;; @@ -148,14 +218,14 @@ case "$FIRMWARE" in tplink,archer-c60-v2|\ tplink,archer-c6-v2|\ tplink,archer-c6-v2-us) - caldata_extract "art" 0x5000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary mac 0x8) -1) + ath10kcal_extract "art" 0x5000 0x2f20 + ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary mac 0x8) -1) ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ /lib/firmware/ath10k/QCA9888/hw2.0/board.bin ;; yuncore,a782|\ yuncore,xd4200) - caldata_extract "art" 0x5000 0x2f20 + ath10kcal_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 ;; diff --git a/target/linux/ath79/generic/base-files/etc/uci-defaults/04_led_migration b/target/linux/ath79/generic/base-files/etc/uci-defaults/04_led_migration index b23e5f7db..56fac4a36 100644 --- a/target/linux/ath79/generic/base-files/etc/uci-defaults/04_led_migration +++ b/target/linux/ath79/generic/base-files/etc/uci-defaults/04_led_migration @@ -17,10 +17,14 @@ tplink,archer-c59-v2|\ tplink,archer-c60-v1|\ tplink,archer-c60-v2|\ tplink,archer-c7-v4|\ -tplink,archer-c7-v5) +tplink,archer-c7-v5|\ +tplink,tl-wr902ac-v1) migrate_leds "^$boardonly:=tp-link:" ;; -tplink,archer-c7-v2) +tplink,archer-c7-v2|\ +tplink,tl-wdr3600-v1|\ +tplink,tl-wdr4300-v1|\ +tplink,tl-wdr4300-v1-il) migrate_leds ":blue:=:green:" ;; tplink,re355-v1) diff --git a/target/linux/ath79/generic/base-files/lib/functions/mikrotik-caldata.sh b/target/linux/ath79/generic/base-files/lib/functions/mikrotik-caldata.sh new file mode 100644 index 000000000..9c4016ee5 --- /dev/null +++ b/target/linux/ath79/generic/base-files/lib/functions/mikrotik-caldata.sh @@ -0,0 +1,21 @@ +# Copyright (C) 2019 Robert Marko +# Copyright (C) 2019 Roger Pueyo Centelles +# +# Helper function to extract MAC addresses and calibration data for MikroTik +# + +mikrotik_caldata_extract() { + local part=$1 + local offset=$(($2)) + local count=$(($3)) + local mtd + local erdfile="/lib/firmware/erd.bin" + + mtd=$(find_mtd_chardev $part) + [ -n "$mtd" ] || caldata_die "no mtd device found for partition $part" + + rbextract -e $mtd $erdfile + + dd if=$erdfile of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ + caldata_die "failed to extract calibration data from $mtd" +} diff --git a/target/linux/ath79/generic/config-default b/target/linux/ath79/generic/config-default index 20da0b8ba..2d8f7f20c 100644 --- a/target/linux/ath79/generic/config-default +++ b/target/linux/ath79/generic/config-default @@ -9,6 +9,7 @@ CONFIG_MICREL_PHY=y CONFIG_MTD_REDBOOT_PARTS=y CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-3 CONFIG_MTD_SPLIT_EVA_FW=y +CONFIG_MTD_SPLIT_MINOR_FW=y CONFIG_PHY_AR7100_USB=y CONFIG_PHY_AR7200_USB=y CONFIG_REGULATOR=y diff --git a/target/linux/ath79/generic/target.mk b/target/linux/ath79/generic/target.mk index 0a26110d2..488aa6df1 100644 --- a/target/linux/ath79/generic/target.mk +++ b/target/linux/ath79/generic/target.mk @@ -1,10 +1,8 @@ BOARDNAME:=Generic -FEATURES += squashfs +FEATURES += minor squashfs DEFAULT_PACKAGES += wpad-basic define Target/Description Build firmware images for generic Atheros AR71xx/AR913x/AR934x based boards. endef - - diff --git a/target/linux/ath79/image/Makefile b/target/linux/ath79/image/Makefile index 24768ef5e..a28658ec0 100644 --- a/target/linux/ath79/image/Makefile +++ b/target/linux/ath79/image/Makefile @@ -3,14 +3,13 @@ include $(INCLUDE_DIR)/image.mk KERNEL_LOADADDR = 0x80060000 -DEVICE_VARS += IMAGE_SIZE LOADER_FLASH_OFFS LOADER_TYPE ATH_SOC +DEVICE_VARS += IMAGE_SIZE LOADER_FLASH_OFFS LOADER_TYPE define Build/loader-common rm -rf $@.src $(MAKE) -C lzma-loader \ PKG_BUILD_DIR="$@.src" \ TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \ - LZMA_TEXT_START=0x80a00000 LOADADDR=0x80060000 \ $(1) compile loader.$(LOADER_TYPE) mv "$@.$(LOADER_TYPE)" "$@" rm -rf $@.src @@ -55,9 +54,8 @@ endef define Device/Default - ATH_SOC := DEVICE_DTS_DIR := ../dts - DEVICE_DTS = $$(ATH_SOC)_$(1) + DEVICE_DTS = $$(SOC)_$(1) PROFILES = Default MTDPARTS := BLOCKSIZE := 64k diff --git a/target/linux/ath79/image/common-mikrotik.mk b/target/linux/ath79/image/common-mikrotik.mk new file mode 100644 index 000000000..292237c76 --- /dev/null +++ b/target/linux/ath79/image/common-mikrotik.mk @@ -0,0 +1,7 @@ +define Device/mikrotik + DEVICE_VENDOR := MikroTik + DEVICE_PACKAGES := rbextract rbcfg + LOADER_TYPE := elf + KERNEL := kernel-bin | append-dtb | lzma | loader-kernel + KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel +endef diff --git a/target/linux/ath79/image/common-netgear.mk b/target/linux/ath79/image/common-netgear.mk index 8311222a9..8fa6b030f 100644 --- a/target/linux/ath79/image/common-netgear.mk +++ b/target/linux/ath79/image/common-netgear.mk @@ -37,6 +37,8 @@ define Device/netgear_ath79 DEVICE_VENDOR := NETGEAR KERNEL := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma IMAGES += factory.img - IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.img := $$(IMAGE/default) | netgear-dni | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | \ + check-size $$$$(IMAGE_SIZE) + IMAGE/factory.img := $$(IMAGE/default) | netgear-dni | \ + check-size $$$$(IMAGE_SIZE) endef diff --git a/target/linux/ath79/image/common-tp-link.mk b/target/linux/ath79/image/common-tp-link.mk index bda81a3e2..cfc574e4f 100644 --- a/target/linux/ath79/image/common-tp-link.mk +++ b/target/linux/ath79/image/common-tp-link.mk @@ -1,53 +1,15 @@ -DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION TPLINK_BOARD_NAME TPLINK_BOARD_ID - -define rootfs_align -$(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1)))))) -endef - -# combine kernel and rootfs into one image -# mktplinkfw -# is "sysupgrade" or "factory" -# -# -a align the rootfs start on an bytes boundary -# -j add jffs2 end-of-filesystem markers -# -s strip padding from end of the image -# -X reserve bytes in the firmware image (hexval prefixed with 0x) -define Build/mktplinkfw - -$(STAGING_DIR_HOST)/bin/mktplinkfw \ - -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) \ - -m $(TPLINK_HEADER_VERSION) \ - -k $(IMAGE_KERNEL) \ - -r $@ \ - -o $@.new \ - -j -X 0x40000 \ - -a $(call rootfs_align,$(FILESYSTEM)) \ - $(wordlist 2,$(words $(1)),$(1)) \ - $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@ -endef - -# mktplinkfw-combined -# -# -c combined image -define Build/mktplinkfw-combined - $(STAGING_DIR_HOST)/bin/mktplinkfw \ - -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) -N OpenWrt -V $(REVISION) $(1) \ - -m $(TPLINK_HEADER_VERSION) \ - -k $@ \ - -o $@.new \ - -s -S \ - -c - @mv $@.new $@ -endef +DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION +DEVICE_VARS += TPLINK_BOARD_ID TPLINK_HWREVADD TPLINK_HVERSION define Build/uImageArcher mkimage -A $(LINUX_KARCH) \ - -O linux -T kernel \ - -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ + -O linux -T kernel -C $(1) -a $(KERNEL_LOADADDR) \ + -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ -n '$(call toupper,$(LINUX_KARCH)) OpenWrt Linux-$(LINUX_VERSION)' -d $@ $@.new @mv $@.new $@ endef -define Device/tplink +define Device/tplink-v1 DEVICE_VENDOR := TP-Link TPLINK_HWREV := 0x1 TPLINK_HEADER_VERSION := 1 @@ -55,16 +17,28 @@ define Device/tplink KERNEL := kernel-bin | append-dtb | lzma KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | tplink-v1-header IMAGES += factory.bin - IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | append-metadata - IMAGE/factory.bin := append-rootfs | mktplinkfw factory + IMAGE/sysupgrade.bin := tplink-v1-image sysupgrade | append-metadata + IMAGE/factory.bin := tplink-v1-image factory +endef + +define Device/tplink-v2 + DEVICE_VENDOR := TP-Link + TPLINK_HWREV := 0x1 + TPLINK_HWREVADD := 0x0 + TPLINK_HVERSION := 3 + KERNEL := kernel-bin | append-dtb | lzma + KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | tplink-v2-header + IMAGE/sysupgrade.bin := tplink-v2-image -s | append-metadata | \ + check-size $$$$(IMAGE_SIZE) endef define Device/tplink-nolzma - $(Device/tplink) + $(Device/tplink-v1) LOADER_FLASH_OFFS := 0x22000 COMPILE := loader-$(1).gz COMPILE/loader-$(1).gz := loader-okli-compile - KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1) 7680 + KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | \ + loader-okli $(1) 7680 KERNEL_INITRAMFS := kernel-bin | append-dtb | gzip | tplink-v1-header endef @@ -75,7 +49,7 @@ define Device/tplink-4m endef define Device/tplink-4mlzma - $(Device/tplink) + $(Device/tplink-v1) TPLINK_FLASHLAYOUT := 4Mlzma IMAGE_SIZE := 3904k endef @@ -87,19 +61,19 @@ define Device/tplink-8m endef define Device/tplink-8mlzma - $(Device/tplink) + $(Device/tplink-v1) TPLINK_FLASHLAYOUT := 8Mlzma IMAGE_SIZE := 8000k endef define Device/tplink-16mlzma - $(Device/tplink) + $(Device/tplink-v1) TPLINK_FLASHLAYOUT := 16Mlzma IMAGE_SIZE := 16192k endef define Device/tplink-safeloader - $(Device/tplink) + $(Device/tplink-v1) KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \ append-metadata | check-size $$$$(IMAGE_SIZE) @@ -111,11 +85,12 @@ define Device/tplink-safeloader-uimage KERNEL := kernel-bin | append-dtb | lzma | uImageArcher lzma endef -define Device/tplink-loader-okli +define Device/tplink-safeloader-okli $(Device/tplink-safeloader) LOADER_TYPE := elf LOADER_FLASH_OFFS := 0x43000 COMPILE := loader-$(1).elf COMPILE/loader-$(1).elf := loader-okli-compile - KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1) 12288 + KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | \ + loader-okli $(1) 12288 endef diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk index f5e1a9041..2a2384762 100644 --- a/target/linux/ath79/image/generic-tp-link.mk +++ b/target/linux/ath79/image/generic-tp-link.mk @@ -2,46 +2,47 @@ include ./common-tp-link.mk define Device/tplink_archer-a7-v5 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 15104k DEVICE_MODEL := Archer A7 DEVICE_VARIANT := v5 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \ + ath10k-firmware-qca988x-ct TPLINK_BOARD_ID := ARCHER-A7-V5 BOARDNAME := ARCHER-A7-V5 - SUPPORTED_DEVICES += archer-a7-v5 endef TARGET_DEVICES += tplink_archer-a7-v5 define Device/tplink_archer-c2-v3 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 7808k DEVICE_MODEL := Archer C2 DEVICE_VARIANT := v3 - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct TPLINK_BOARD_ID := ARCHER-C2-V3 endef TARGET_DEVICES += tplink_archer-c2-v3 define Device/tplink_archer-c25-v1 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9561 + SOC := qca9561 IMAGE_SIZE := 7808k DEVICE_MODEL := Archer C25 DEVICE_VARIANT := v1 TPLINK_BOARD_ID := ARCHER-C25-V1 - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct SUPPORTED_DEVICES += archer-c25-v1 endef TARGET_DEVICES += tplink_archer-c25-v1 define Device/tplink_archer-c5-v1 $(Device/tplink-16mlzma) - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_MODEL := Archer C5 DEVICE_VARIANT := v1 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \ + ath10k-firmware-qca988x-ct TPLINK_HWID := 0xc5000001 SUPPORTED_DEVICES += archer-c5 endef @@ -49,43 +50,45 @@ TARGET_DEVICES += tplink_archer-c5-v1 define Device/tplink_archer-c58-v1 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9561 + SOC := qca9561 IMAGE_SIZE := 7936k DEVICE_MODEL := Archer C58 DEVICE_VARIANT := v1 TPLINK_BOARD_ID := ARCHER-C58-V1 - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9888-ct SUPPORTED_DEVICES += archer-c58-v1 endef TARGET_DEVICES += tplink_archer-c58-v1 define Device/tplink_archer-c59-v1 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9561 + SOC := qca9561 IMAGE_SIZE := 14528k DEVICE_MODEL := Archer C59 DEVICE_VARIANT := v1 TPLINK_BOARD_ID := ARCHER-C59-V1 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca9888-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \ + ath10k-firmware-qca9888-ct SUPPORTED_DEVICES += archer-c59-v1 endef TARGET_DEVICES += tplink_archer-c59-v1 define Device/tplink_archer-c59-v2 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9561 + SOC := qca9561 IMAGE_SIZE := 14400k DEVICE_MODEL := Archer C59 DEVICE_VARIANT := v2 TPLINK_BOARD_ID := ARCHER-C59-V2 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca9888-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \ + ath10k-firmware-qca9888-ct SUPPORTED_DEVICES += archer-c59-v2 endef TARGET_DEVICES += tplink_archer-c59-v2 define Device/tplink_archer-c6-v2 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 7808k DEVICE_MODEL := Archer C6 DEVICE_VARIANT := v2 (EU/RU/JP) @@ -96,7 +99,7 @@ TARGET_DEVICES += tplink_archer-c6-v2 define Device/tplink_archer-c6-v2-us $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 15872k DEVICE_MODEL := Archer C6 DEVICE_VARIANT := v2 (US) @@ -110,31 +113,31 @@ TARGET_DEVICES += tplink_archer-c6-v2-us define Device/tplink_archer-c60-v1 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9561 + SOC := qca9561 IMAGE_SIZE := 7936k DEVICE_MODEL := Archer C60 DEVICE_VARIANT := v1 TPLINK_BOARD_ID := ARCHER-C60-V1 - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9888-ct SUPPORTED_DEVICES += archer-c60-v1 endef TARGET_DEVICES += tplink_archer-c60-v1 define Device/tplink_archer-c60-v2 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9561 + SOC := qca9561 IMAGE_SIZE := 7808k DEVICE_MODEL := Archer C60 DEVICE_VARIANT := v2 TPLINK_BOARD_ID := ARCHER-C60-V2 - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9888-ct SUPPORTED_DEVICES += archer-c60-v2 endef TARGET_DEVICES += tplink_archer-c60-v2 define Device/tplink_archer-c7-v1 $(Device/tplink-8mlzma) - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_MODEL := Archer C7 DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -145,25 +148,27 @@ TARGET_DEVICES += tplink_archer-c7-v1 define Device/tplink_archer-c7-v2 $(Device/tplink-16mlzma) - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_MODEL := Archer C7 DEVICE_VARIANT := v2 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \ + ath10k-firmware-qca988x-ct TPLINK_HWID := 0xc7000002 SUPPORTED_DEVICES += archer-c7 IMAGES += factory-us.bin factory-eu.bin - IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US - IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU + IMAGE/factory-us.bin := tplink-v1-image factory -C US + IMAGE/factory-eu.bin := tplink-v1-image factory -C EU endef TARGET_DEVICES += tplink_archer-c7-v2 define Device/tplink_archer-c7-v4 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 15104k DEVICE_MODEL := Archer C7 DEVICE_VARIANT := v4 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \ + ath10k-firmware-qca988x-ct TPLINK_BOARD_ID := ARCHER-C7-V4 BOARDNAME := ARCHER-C7-V4 SUPPORTED_DEVICES += archer-c7-v4 @@ -172,11 +177,12 @@ TARGET_DEVICES += tplink_archer-c7-v4 define Device/tplink_archer-c7-v5 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 15360k DEVICE_MODEL := Archer C7 DEVICE_VARIANT := v5 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \ + ath10k-firmware-qca988x-ct TPLINK_BOARD_ID := ARCHER-C7-V5 BOARDNAME := ARCHER-C7-V5 SUPPORTED_DEVICES += archer-c7-v5 @@ -184,30 +190,25 @@ endef TARGET_DEVICES += tplink_archer-c7-v5 define Device/tplink_archer-d50-v1 - ATH_SOC := qca9531 - DEVICE_VENDOR := TP-Link + $(Device/tplink-v2) + SOC := qca9531 DEVICE_MODEL := Archer D50 DEVICE_VARIANT := v1 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport \ + kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct BOARDNAME := ARCHER-D50-V1 IMAGE_SIZE := 7808k TPLINK_HWID := 0xC1200001 TPLINK_HWREV := 0x00000046 TPLINK_FLASHLAYOUT := 8Mqca - TPLINK_HWREVADD := 0x00000000 - TPLINK_HVERSION := 3 - KERNEL := kernel-bin | append-dtb | lzma KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | \ - tplink-v2-header -s -V "ver. 1.0" - IMAGES := sysupgrade.bin - IMAGE/sysupgrade.bin := tplink-v2-image -s -V "ver. 2.0" | \ - append-metadata | check-size $$$$(IMAGE_SIZE) + tplink-v2-header -s -V "ver. 1.0" endef TARGET_DEVICES += tplink_archer-d50-v1 define Device/tplink_cpe210-v1 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE210 DEVICE_VARIANT := v1 @@ -219,7 +220,7 @@ TARGET_DEVICES += tplink_cpe210-v1 define Device/tplink_cpe210-v2 $(Device/tplink-safeloader) - ATH_SOC := qca9533 + SOC := qca9533 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE210 DEVICE_VARIANT := v2 @@ -232,7 +233,7 @@ TARGET_DEVICES += tplink_cpe210-v2 define Device/tplink_cpe210-v3 $(Device/tplink-safeloader) - ATH_SOC := qca9533 + SOC := qca9533 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE210 DEVICE_VARIANT := v3 @@ -244,8 +245,8 @@ endef TARGET_DEVICES += tplink_cpe210-v3 define Device/tplink_cpe220-v2 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE220 DEVICE_VARIANT := v2 @@ -256,7 +257,7 @@ TARGET_DEVICES += tplink_cpe220-v2 define Device/tplink_cpe220-v3 $(Device/tplink-safeloader) - ATH_SOC := qca9533 + SOC := qca9533 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE220 DEVICE_VARIANT := v3 @@ -267,8 +268,8 @@ endef TARGET_DEVICES += tplink_cpe220-v3 define Device/tplink_cpe510-v1 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE510 DEVICE_VARIANT := v1 @@ -279,8 +280,8 @@ endef TARGET_DEVICES += tplink_cpe510-v1 define Device/tplink_cpe510-v2 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE510 DEVICE_VARIANT := v2 @@ -291,20 +292,19 @@ endef TARGET_DEVICES += tplink_cpe510-v2 define Device/tplink_cpe510-v3 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE510 DEVICE_VARIANT := v3 DEVICE_PACKAGES := rssileds TPLINK_BOARD_ID := CPE510V3 - SUPPORTED_DEVICES += cpe510-v3 endef TARGET_DEVICES += tplink_cpe510-v3 define Device/tplink_cpe610-v1 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := CPE610 DEVICE_VARIANT := v1 @@ -314,7 +314,7 @@ TARGET_DEVICES += tplink_cpe610-v1 define Device/tplink_re350k-v1 $(Device/tplink-safeloader) - ATH_SOC := qca9558 + SOC := qca9558 IMAGE_SIZE := 13760k DEVICE_MODEL := RE350K DEVICE_VARIANT := v1 @@ -327,9 +327,9 @@ TARGET_DEVICES += tplink_re350k-v1 define Device/tplink_rex5x-v1 $(Device/tplink-safeloader) - ATH_SOC := qca9558 + SOC := qca9558 IMAGE_SIZE := 6016k - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct TPLINK_HWID := 0x0 TPLINK_HWREV := 0 endef @@ -354,11 +354,11 @@ TARGET_DEVICES += tplink_re450-v1 define Device/tplink_re450-v2 $(Device/tplink-safeloader) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 6016k DEVICE_MODEL := RE450 DEVICE_VARIANT := v2 - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct TPLINK_HWID := 0x0 TPLINK_HWREV := 0 TPLINK_BOARD_ID := RE450-V2 @@ -366,9 +366,21 @@ define Device/tplink_re450-v2 endef TARGET_DEVICES += tplink_re450-v2 +define Device/tplink_tl-mr6400-v1 + $(Device/tplink-8mlzma) + SOC := qca9531 + DEVICE_MODEL := TL-MR6400 + DEVICE_VARIANT := v1 + TPLINK_HWID := 0x64000001 + DEVICE_PACKAGES := kmod-usb2 kmod-usb-net kmod-usb-net-rndis kmod-usb-serial \ + kmod-usb-serial-option adb-enablemodem + SUPPORTED_DEVICES += tl-mr6400 +endef +TARGET_DEVICES += tplink_tl-mr6400-v1 + define Device/tplink_tl-wdr3500-v1 $(Device/tplink-8mlzma) - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_MODEL := TL-WDR3500 DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -379,7 +391,7 @@ TARGET_DEVICES += tplink_tl-wdr3500-v1 define Device/tplink_tl-wdr3600-v1 $(Device/tplink-8mlzma) - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_MODEL := TL-WDR3600 DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -390,7 +402,7 @@ TARGET_DEVICES += tplink_tl-wdr3600-v1 define Device/tplink_tl-wdr4300-v1 $(Device/tplink-8mlzma) - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_MODEL := TL-WDR4300 DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -399,9 +411,20 @@ define Device/tplink_tl-wdr4300-v1 endef TARGET_DEVICES += tplink_tl-wdr4300-v1 +define Device/tplink_tl-wdr4300-v1-il + $(Device/tplink-8mlzma) + SOC := ar9344 + DEVICE_MODEL := TL-WDR4300 + DEVICE_VARIANT := v1 (IL) + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport + TPLINK_HWID := 0x43008001 + SUPPORTED_DEVICES += tl-wdr4300 +endef +TARGET_DEVICES += tplink_tl-wdr4300-v1-il + define Device/tplink_tl-wdr4900-v2 $(Device/tplink-8mlzma) - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_MODEL := TL-WDR4900 DEVICE_VARIANT := v2 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -411,7 +434,7 @@ TARGET_DEVICES += tplink_tl-wdr4900-v2 define Device/tplink_tl-wr1043nd-v1 $(Device/tplink-8m) - ATH_SOC := ar9132 + SOC := ar9132 DEVICE_MODEL := TL-WR1043N/ND DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -422,7 +445,7 @@ TARGET_DEVICES += tplink_tl-wr1043nd-v1 define Device/tplink_tl-wr1043nd-v2 $(Device/tplink-8mlzma) - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_MODEL := TL-WR1043N/ND DEVICE_VARIANT := v2 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -433,7 +456,7 @@ TARGET_DEVICES += tplink_tl-wr1043nd-v2 define Device/tplink_tl-wr1043nd-v3 $(Device/tplink-8mlzma) - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_MODEL := TL-WR1043N/ND DEVICE_VARIANT := v3 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -444,7 +467,7 @@ TARGET_DEVICES += tplink_tl-wr1043nd-v3 define Device/tplink_tl-wr1043nd-v4 $(Device/tplink-safeloader) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 15552k DEVICE_MODEL := TL-WR1043N/ND DEVICE_VARIANT := v4 @@ -457,7 +480,7 @@ TARGET_DEVICES += tplink_tl-wr1043nd-v4 define Device/tplink_tl-wr1043n-v5 $(Device/tplink-safeloader-uimage) - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 15104k DEVICE_MODEL := TL-WR1043N DEVICE_VARIANT := v5 @@ -468,7 +491,7 @@ TARGET_DEVICES += tplink_tl-wr1043n-v5 define Device/tplink_tl-wr1045nd-v2 $(Device/tplink-8mlzma) - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_MODEL := TL-WR1045ND DEVICE_VARIANT := v2 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -478,21 +501,21 @@ TARGET_DEVICES += tplink_tl-wr1045nd-v2 define Device/tplink_tl-wr2543-v1 $(Device/tplink-8mlzma) - ATH_SOC := ar7242 + SOC := ar7242 DEVICE_MODEL := TL-WR2543N/ND DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport TPLINK_HWID := 0x25430001 - IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade -v 3.13.99 | \ - append-metadata | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := append-rootfs | mktplinkfw factory -v 3.13.99 - SUPPORTED_DEVICES += tl-wr2543-v1 + IMAGE/sysupgrade.bin := tplink-v1-image sysupgrade -v 3.13.99 | \ + append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := tplink-v1-image factory -v 3.13.99 + SUPPORTED_DEVICES += tl-wr2543n endef TARGET_DEVICES += tplink_tl-wr2543-v1 define Device/tplink_tl-wr710n-v1 $(Device/tplink-8mlzma) - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_MODEL := TL-WR710N DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-usb-ledtrig-usbport @@ -503,7 +526,7 @@ TARGET_DEVICES += tplink_tl-wr710n-v1 define Device/tplink_tl-wr810n-v1 $(Device/tplink-8mlzma) - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_MODEL := TL-WR810N DEVICE_VARIANT := v1 TPLINK_HWID := 0x8100001 @@ -513,7 +536,7 @@ TARGET_DEVICES += tplink_tl-wr810n-v1 define Device/tplink_tl-wr810n-v2 $(Device/tplink-8mlzma) - ATH_SOC := qca9533 + SOC := qca9533 DEVICE_MODEL := TL-WR810N DEVICE_VARIANT := v2 TPLINK_HWID := 0x8100002 @@ -522,7 +545,7 @@ TARGET_DEVICES += tplink_tl-wr810n-v2 define Device/tplink_tl-wr842n-v1 $(Device/tplink-8m) - ATH_SOC := ar7241 + SOC := ar7241 DEVICE_MODEL := TL-WR842N/ND DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -532,7 +555,7 @@ TARGET_DEVICES += tplink_tl-wr842n-v1 define Device/tplink_tl-wr842n-v2 $(Device/tplink-8mlzma) - ATH_SOC := ar9341 + SOC := ar9341 DEVICE_MODEL := TL-WR842N/ND DEVICE_VARIANT := v2 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -543,7 +566,7 @@ TARGET_DEVICES += tplink_tl-wr842n-v2 define Device/tplink_tl-wr842n-v3 $(Device/tplink-16mlzma) - ATH_SOC := qca9533 + SOC := qca9533 DEVICE_MODEL := TL-WR842N DEVICE_VARIANT := v3 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport @@ -552,9 +575,25 @@ define Device/tplink_tl-wr842n-v3 endef TARGET_DEVICES += tplink_tl-wr842n-v3 +define Device/tplink_tl-wr902ac-v1 + $(Device/tplink-safeloader) + SOC := qca9531 + DEVICE_MODEL := TL-WR902AC + DEVICE_VARIANT := v1 + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport \ + kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct \ + -swconfig -uboot-envtools + TPLINK_BOARD_ID := TL-WR902AC-V1 + IMAGE_SIZE := 7360k + TPLINK_HWID := 0x0 + TPLINK_HWREV := 0 + SUPPORTED_DEVICES += tl-wr902ac-v1 +endef +TARGET_DEVICES += tplink_tl-wr902ac-v1 + define Device/tplink_wbs210-v2 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := WBS210 DEVICE_VARIANT := v2 @@ -564,8 +603,8 @@ endef TARGET_DEVICES += tplink_wbs210-v2 define Device/tplink_wbs510-v1 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := WBS510 DEVICE_VARIANT := v1 @@ -576,8 +615,8 @@ endef TARGET_DEVICES += tplink_wbs510-v1 define Device/tplink_wbs510-v2 - $(Device/tplink-loader-okli) - ATH_SOC := ar9344 + $(Device/tplink-safeloader-okli) + SOC := ar9344 IMAGE_SIZE := 7680k DEVICE_MODEL := WBS510 DEVICE_VARIANT := v2 diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk index 19dbe2eb8..ffae83eda 100644 --- a/target/linux/ath79/image/generic-ubnt.mk +++ b/target/linux/ath79/image/generic-ubnt.mk @@ -8,11 +8,9 @@ UBNT_REVISION := $(VERSION_DIST)-$(REVISION) # mkubntimage is using the kernel image direct # routerboard creates partitions out of the ubnt header define Build/mkubntimage - -$(STAGING_DIR_HOST)/bin/mkfwimage \ - -B $(UBNT_BOARD) -v $(UBNT_TYPE).$(UBNT_CHIP).v6.0.0-$(VERSION_DIST)-$(REVISION) \ - -k $(IMAGE_KERNEL) \ - -r $@ \ - -o $@ + -$(STAGING_DIR_HOST)/bin/mkfwimage -B $(UBNT_BOARD) \ + -v $(UBNT_TYPE).$(UBNT_CHIP).v6.0.0-$(VERSION_DIST)-$(REVISION) \ + -k $(IMAGE_KERNEL) -r $@ -o $@ endef # all UBNT XM/WA devices expect the kernel image to have 1024k while flash, when @@ -21,11 +19,9 @@ define Build/mkubntimage-split -[ -f $@ ] && ( \ dd if=$@ of=$@.old1 bs=1024k count=1; \ dd if=$@ of=$@.old2 bs=1024k skip=1; \ - $(STAGING_DIR_HOST)/bin/mkfwimage \ - -B $(UBNT_BOARD) -v $(UBNT_TYPE).$(UBNT_CHIP).v$(UBNT_VERSION)-$(UBNT_REVISION) \ - -k $@.old1 \ - -r $@.old2 \ - -o $@; \ + $(STAGING_DIR_HOST)/bin/mkfwimage -B $(UBNT_BOARD) \ + -v $(UBNT_TYPE).$(UBNT_CHIP).v$(UBNT_VERSION)-$(UBNT_REVISION) \ + -k $@.old1 -r $@.old2 -o $@; \ rm $@.old1 $@.old2 ) endef @@ -36,8 +32,6 @@ endef define Device/ubnt DEVICE_VENDOR := Ubiquiti DEVICE_PACKAGES := kmod-usb2 - UBNT_BOARD := XM - UBNT_VERSION := 6.0.0 IMAGES += factory.bin IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | mkubntimage-split @@ -45,54 +39,70 @@ endef define Device/ubnt-bz $(Device/ubnt) + SOC := ar7241 IMAGE_SIZE := 7448k - UBNT_TYPE := BZ + UBNT_BOARD := XM UBNT_CHIP := ar7240 - ATH_SOC := ar7241 + UBNT_TYPE := BZ + UBNT_VERSION := 6.0.0 +endef + +define Device/ubnt-sw + $(Device/ubnt) + SOC := ar7242 + DEVICE_PACKAGES += kmod-usb-ohci + IMAGE_SIZE := 7552k + UBNT_BOARD := SW + UBNT_CHIP := ar7240 + UBNT_TYPE := SW + UBNT_VERSION := 1.4.1 + KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma | uImage lzma endef define Device/ubnt-wa $(Device/ubnt) + SOC := ar9342 IMAGE_SIZE := 15744k - UBNT_TYPE := WA - UBNT_CHIP := ar934x UBNT_BOARD := WA + UBNT_CHIP := ar934x + UBNT_TYPE := WA UBNT_VERSION := 8.5.0 - ATH_SOC := ar9342 endef define Device/ubnt-xm $(Device/ubnt) + SOC := ar7241 DEVICE_VARIANT := XM DEVICE_PACKAGES += kmod-usb-ohci IMAGE_SIZE := 7448k - UBNT_TYPE := XM + UBNT_BOARD := XM UBNT_CHIP := ar7240 - ATH_SOC := ar7241 + UBNT_TYPE := XM + UBNT_VERSION := 6.0.0 KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma | uImage lzma endef define Device/ubnt-xw $(Device/ubnt) + SOC := ar9342 DEVICE_VARIANT := XW IMAGE_SIZE := 7552k - UBNT_TYPE := XW - UBNT_CHIP := ar934x UBNT_BOARD := XM - UBNT_VERSION := 6.0.4 + UBNT_CHIP := ar934x UBNT_REVISION := 42.$(UBNT_REVISION) - ATH_SOC := ar9342 + UBNT_TYPE := XW + UBNT_VERSION := 6.0.4 endef define Device/ubnt_acb-isp $(Device/ubnt) - ATH_SOC := qca9533 - IMAGE_SIZE := 15744k + SOC := qca9533 DEVICE_MODEL := airCube ISP + IMAGE_SIZE := 15744k UBNT_BOARD := ACB-ISP - UBNT_TYPE := ACB UBNT_CHIP := qca9533 - IMAGES := sysupgrade.bin + UBNT_TYPE := ACB + UBNT_VERSION := 2.5.0 endef TARGET_DEVICES += ubnt_acb-isp @@ -119,39 +129,64 @@ define Device/ubnt_bullet-m-xw endef TARGET_DEVICES += ubnt_bullet-m-xw +define Device/ubnt_edgeswitch-5xp + $(Device/ubnt-sw) + DEVICE_MODEL := EdgeSwitch 5XP +endef +TARGET_DEVICES += ubnt_edgeswitch-5xp + +define Device/ubnt_edgeswitch-8xp + $(Device/ubnt-sw) + DEVICE_MODEL := EdgeSwitch 8XP + DEVICE_PACKAGES += switch-bcm53xx-mdio +endef +TARGET_DEVICES += ubnt_edgeswitch-8xp + define Device/ubnt_lap-120 $(Device/ubnt-wa) DEVICE_MODEL := LiteAP ac DEVICE_VARIANT := LAP-120 - DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct - IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split + DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct endef TARGET_DEVICES += ubnt_lap-120 +define Device/ubnt_litebeam-ac-gen2 + $(Device/ubnt-wa) + DEVICE_MODEL := LiteBeam AC + DEVICE_VARIANT := Gen2 + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct +endef +TARGET_DEVICES += ubnt_litebeam-ac-gen2 + define Device/ubnt_nanobeam-ac $(Device/ubnt-wa) DEVICE_MODEL := NanoBeam AC - DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct rssileds - IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split + DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct rssileds endef TARGET_DEVICES += ubnt_nanobeam-ac define Device/ubnt_nanostation-ac $(Device/ubnt-wa) DEVICE_MODEL := Nanostation AC - DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct rssileds - IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split + DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct rssileds endef TARGET_DEVICES += ubnt_nanostation-ac define Device/ubnt_nanostation-ac-loco $(Device/ubnt-wa) DEVICE_MODEL := Nanostation AC loco - DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct - IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage-split + DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct endef TARGET_DEVICES += ubnt_nanostation-ac-loco +define Device/ubnt_nanostation-loco-m-xw + $(Device/ubnt-xw) + DEVICE_MODEL := Nanostation Loco M + DEVICE_PACKAGES += rssileds + SUPPORTED_DEVICES += loco-m-xw +endef +TARGET_DEVICES += ubnt_nanostation-loco-m-xw + define Device/ubnt_nanostation-m $(Device/ubnt-xm) DEVICE_MODEL := Nanostation M @@ -177,12 +212,14 @@ endef TARGET_DEVICES += ubnt_rocket-m define Device/ubnt_routerstation_common - DEVICE_PACKAGES := -kmod-ath9k -wpad-mini -uboot-envtools kmod-usb-ohci kmod-usb2 fconfig + DEVICE_PACKAGES := -kmod-ath9k -wpad-mini -uboot-envtools kmod-usb-ohci \ + kmod-usb2 fconfig DEVICE_VENDOR := Ubiquiti - ATH_SOC := ar7161 + SOC := ar7161 IMAGE_SIZE := 16128k IMAGES := factory.bin - IMAGE/factory.bin := append-rootfs | pad-rootfs | mkubntimage | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := append-rootfs | pad-rootfs | mkubntimage | \ + check-size $$$$(IMAGE_SIZE) KERNEL := kernel-bin | append-dtb | lzma | pad-to $$(BLOCKSIZE) KERNEL_INITRAMFS := kernel-bin | append-dtb endef @@ -217,7 +254,7 @@ TARGET_DEVICES += ubnt_unifi define Device/ubnt_unifiac DEVICE_VENDOR := Ubiquiti - ATH_SOC := qca9563 + SOC := qca9563 IMAGE_SIZE := 7744k DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct endef @@ -239,14 +276,14 @@ TARGET_DEVICES += ubnt_unifiac-lr define Device/ubnt_unifiac-mesh $(Device/ubnt_unifiac) DEVICE_MODEL := UniFi AC-Mesh - SUPPORTED_DEVICES += ubnt-unifiac-mesh + SUPPORTED_DEVICES += unifiac-lite endef TARGET_DEVICES += ubnt_unifiac-mesh define Device/ubnt_unifiac-mesh-pro $(Device/ubnt_unifiac) DEVICE_MODEL := UniFi AC-Mesh Pro - SUPPORTED_DEVICES += ubnt-unifiac-mesh-pro + SUPPORTED_DEVICES += unifiac-pro endef TARGET_DEVICES += ubnt_unifiac-mesh-pro @@ -254,6 +291,6 @@ define Device/ubnt_unifiac-pro $(Device/ubnt_unifiac) DEVICE_MODEL := UniFi AC-Pro DEVICE_PACKAGES += kmod-usb2 - SUPPORTED_DEVICES += ubnt-unifiac-pro + SUPPORTED_DEVICES += unifiac-pro endef TARGET_DEVICES += ubnt_unifiac-pro diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 865126549..1bc7b2d68 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -1,4 +1,5 @@ include ./common-buffalo.mk +include ./common-mikrotik.mk include ./common-netgear.mk include ./common-tp-link.mk include ./common-yuncore.mk @@ -82,16 +83,16 @@ define Device/seama # - 28 bytes seama_header # - 36 bytes of META data (4-bytes aligned) IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs - IMAGE/sysupgrade.bin := \ - $$(IMAGE/default) | seama | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := \ - $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := $$(IMAGE/default) | seama | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | pad-rootfs -x 64 | seama | \ + seama-seal | check-size $$$$(IMAGE_SIZE) SEAMA_SIGNATURE := endef define Device/8dev_carambola2 - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_VENDOR := 8devices DEVICE_MODEL := Carambola2 DEVICE_PACKAGES := kmod-usb2 kmod-usb-chipidea2 @@ -101,7 +102,7 @@ endef TARGET_DEVICES += 8dev_carambola2 define Device/adtran_bsap1880 - ATH_SOC := ar7161 + SOC := ar7161 DEVICE_VENDOR := Adtran/Bluesocket DEVICE_PACKAGES += -swconfig -uboot-envtools fconfig KERNEL := kernel-bin | append-dtb | lzma | pad-to $$(BLOCKSIZE) @@ -110,7 +111,8 @@ define Device/adtran_bsap1880 IMAGES += kernel.bin rootfs.bin IMAGE/kernel.bin := append-kernel IMAGE/rootfs.bin := append-rootfs | pad-rootfs - IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata + IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | \ + check-size $$$$(IMAGE_SIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata endef define Device/adtran_bsap1800-v2 @@ -127,7 +129,7 @@ endef TARGET_DEVICES += adtran_bsap1840 define Device/alfa-network_ap121f - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_VENDOR := ALFA Network DEVICE_MODEL := AP121F DEVICE_PACKAGES := kmod-usb2 kmod-usb-chipidea2 kmod-usb-storage -swconfig @@ -137,7 +139,7 @@ endef TARGET_DEVICES += alfa-network_ap121f define Device/aruba_ap-105 - ATH_SOC := ar7161 + SOC := ar7161 DEVICE_VENDOR := Aruba DEVICE_MODEL := AP-105 IMAGE_SIZE := 16000k @@ -146,50 +148,52 @@ endef TARGET_DEVICES += aruba_ap-105 define Device/avm_fritz300e - ATH_SOC := ar7242 + SOC := ar7242 DEVICE_VENDOR := AVM DEVICE_MODEL := FRITZ!WLAN Repeater 300E KERNEL := kernel-bin | append-dtb | lzma | eva-image KERNEL_INITRAMFS := $$(KERNEL) IMAGE_SIZE := 15232k IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | \ - append-squashfs-fakeroot-be | pad-to 256 | \ - append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) + append-squashfs-fakeroot-be | pad-to 256 | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) DEVICE_PACKAGES := fritz-tffs rssileds -swconfig endef TARGET_DEVICES += avm_fritz300e define Device/avm_fritz4020 - ATH_SOC := qca9561 + SOC := qca9561 DEVICE_VENDOR := AVM DEVICE_MODEL := FRITZ!Box 4020 IMAGE_SIZE := 15232k KERNEL := kernel-bin | append-dtb | lzma | eva-image KERNEL_INITRAMFS := $$(KERNEL) IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | \ - append-squashfs-fakeroot-be | pad-to 256 | \ - append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) + append-squashfs-fakeroot-be | pad-to 256 | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) DEVICE_PACKAGES := fritz-tffs SUPPORTED_DEVICES += fritz4020 endef TARGET_DEVICES += avm_fritz4020 define Device/buffalo_bhr-4grv - ATH_SOC := ar7242 + SOC := ar7242 DEVICE_VENDOR := Buffalo DEVICE_MODEL := BHR-4GRV DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport IMAGE_SIZE := 32256k IMAGES += factory.bin tftp.bin - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc BHR-4GRV 1.99 | buffalo-tag BHR-4GRV 3 + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \ + pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc BHR-4GRV 1.99 | \ + buffalo-tag BHR-4GRV 3 IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header SUPPORTED_DEVICES += wzr-hp-g450h endef TARGET_DEVICES += buffalo_bhr-4grv define Device/buffalo_bhr-4grv2 - ATH_SOC := qca9557 + SOC := qca9557 DEVICE_VENDOR := Buffalo DEVICE_MODEL := BHR-4GRV2 IMAGE_SIZE := 16000k @@ -197,50 +201,57 @@ endef TARGET_DEVICES += buffalo_bhr-4grv2 define Device/buffalo_wzr-hp-ag300h - ATH_SOC := ar7161 + SOC := ar7161 DEVICE_VENDOR := Buffalo DEVICE_MODEL := WZR-HP-AG300H IMAGE_SIZE := 32320k IMAGES += factory.bin tftp.bin - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-AG300H 1.99 | buffalo-tag WZR-HP-AG300H 3 + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \ + pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-AG300H 1.99 | \ + buffalo-tag WZR-HP-AG300H 3 IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header - DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset kmod-owl-loader + DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \ + kmod-leds-reset kmod-owl-loader SUPPORTED_DEVICES += wzr-hp-ag300h endef TARGET_DEVICES += buffalo_wzr-hp-ag300h define Device/buffalo_wzr-hp-g302h-a1a0 - ATH_SOC := ar7242 + SOC := ar7242 DEVICE_VENDOR := Buffalo DEVICE_MODEL := WZR-HP-G302H DEVICE_VARIANT := A1A0 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport IMAGE_SIZE := 32128k IMAGES += factory.bin tftp.bin - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-G302H 1.99 | buffalo-tag WZR-HP-G302H 4 + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \ + pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-G302H 1.99 | \ + buffalo-tag WZR-HP-G302H 4 IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header SUPPORTED_DEVICES += wzr-hp-g300nh2 endef TARGET_DEVICES += buffalo_wzr-hp-g302h-a1a0 define Device/buffalo_wzr-hp-g450h - ATH_SOC := ar7242 + SOC := ar7242 DEVICE_VENDOR := Buffalo DEVICE_MODEL := WZR-HP-G450H/WZR-450HP DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport IMAGE_SIZE := 32256k IMAGES += factory.bin tftp.bin - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-G450H 1.99 | buffalo-tag WZR-HP-G450H 3 + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \ + pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WZR-HP-G450H 1.99 | \ + buffalo-tag WZR-HP-G450H 3 IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header SUPPORTED_DEVICES += wzr-hp-g450h endef TARGET_DEVICES += buffalo_wzr-hp-g450h define Device/comfast_cf-e110n-v2 - ATH_SOC := qca9533 + SOC := qca9533 DEVICE_VENDOR := COMFAST DEVICE_MODEL := CF-E110N DEVICE_VARIANT := v2 @@ -250,7 +261,7 @@ endef TARGET_DEVICES += comfast_cf-e110n-v2 define Device/comfast_cf-e120a-v3 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := COMFAST DEVICE_MODEL := CF-E120A DEVICE_VARIANT := v3 @@ -260,17 +271,17 @@ endef TARGET_DEVICES += comfast_cf-e120a-v3 define Device/comfast_cf-e313ac - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := COMFAST DEVICE_MODEL := CF-E313AC - DEVICE_PACKAGES := rssileds kmod-leds-gpio kmod-ath10k-ct ath10k-firmware-qca9888-ct \ - -swconfig -uboot-envtools + DEVICE_PACKAGES := rssileds kmod-leds-gpio kmod-ath10k-ct-smallbuffers \ + ath10k-firmware-qca9888-ct -swconfig -uboot-envtools IMAGE_SIZE := 7936k endef TARGET_DEVICES += comfast_cf-e313ac define Device/comfast_cf-e314n-v2 - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := COMFAST DEVICE_MODEL := CF-E314N DEVICE_VARIANT := v2 @@ -280,7 +291,7 @@ endef TARGET_DEVICES += comfast_cf-e314n-v2 define Device/comfast_cf-e5 - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := COMFAST DEVICE_MODEL := CF-E5/E7 DEVICE_PACKAGES := rssileds kmod-leds-gpio kmod-usb2 kmod-usb-net \ @@ -290,7 +301,7 @@ endef TARGET_DEVICES += comfast_cf-e5 define Device/comfast_cf-wr650ac-v1 - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := COMFAST DEVICE_MODEL := CF-WR650AC DEVICE_VARIANT := v1 @@ -300,7 +311,7 @@ endef TARGET_DEVICES += comfast_cf-wr650ac-v1 define Device/comfast_cf-wr650ac-v2 - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := COMFAST DEVICE_MODEL := CF-WR650AC DEVICE_VARIANT := v2 @@ -310,7 +321,7 @@ endef TARGET_DEVICES += comfast_cf-wr650ac-v2 define Device/devolo_dvl1200e - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := devolo DEVICE_MODEL := WiFi pro 1200e DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct @@ -319,7 +330,7 @@ endef TARGET_DEVICES += devolo_dvl1200e define Device/devolo_dvl1200i - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := devolo DEVICE_MODEL := WiFi pro 1200i DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct @@ -328,7 +339,7 @@ endef TARGET_DEVICES += devolo_dvl1200i define Device/devolo_dvl1750c - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := devolo DEVICE_MODEL := WiFi pro 1750c DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct @@ -337,7 +348,7 @@ endef TARGET_DEVICES += devolo_dvl1750c define Device/devolo_dvl1750e - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := devolo DEVICE_MODEL := WiFi pro 1750e DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct @@ -346,7 +357,7 @@ endef TARGET_DEVICES += devolo_dvl1750e define Device/devolo_dvl1750i - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := devolo DEVICE_MODEL := WiFi pro 1750i DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct @@ -355,7 +366,7 @@ endef TARGET_DEVICES += devolo_dvl1750i define Device/devolo_dvl1750x - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := devolo DEVICE_MODEL := WiFi pro 1750x DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct @@ -363,36 +374,51 @@ define Device/devolo_dvl1750x endef TARGET_DEVICES += devolo_dvl1750x +define Device/dlink_dir-505 + SOC := ar9330 + DEVICE_VENDOR := D-Link + DEVICE_MODEL := DIR-505 + IMAGE_SIZE := 7680k + DEVICE_PACKAGES := kmod-usb2 + SUPPORTED_DEVICES += dir-505-a1 +endef +TARGET_DEVICES += dlink_dir-505 + define Device/dlink_dir-825-b1 - ATH_SOC := ar7161 + SOC := ar7161 DEVICE_VENDOR := D-Link DEVICE_MODEL := DIR-825 DEVICE_VARIANT := B1 IMAGE_SIZE := 6208k - IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) - DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset kmod-owl-loader + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) + DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \ + kmod-leds-reset kmod-owl-loader SUPPORTED_DEVICES += dir-825-b1 endef TARGET_DEVICES += dlink_dir-825-b1 define Device/dlink_dir-825-c1 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := D-Link DEVICE_MODEL := DIR-825 DEVICE_VARIANT := C1 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset kmod-owl-loader + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset \ + kmod-owl-loader SUPPORTED_DEVICES += dir-825-c1 IMAGE_SIZE := 15936k IMAGES := factory.bin sysupgrade.bin - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \ + pad-rootfs IMAGE/factory.bin := $$(IMAGE/default) | pad-offset $$$$(IMAGE_SIZE) 26 | \ append-string 00DB120AR9344-RT-101214-00 | check-size $$$$(IMAGE_SIZE) - IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | \ + check-size $$$$(IMAGE_SIZE) endef TARGET_DEVICES += dlink_dir-825-c1 define Device/dlink_dir-835-a1 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := D-Link DEVICE_MODEL := DIR-835 DEVICE_VARIANT := A1 @@ -400,15 +426,17 @@ define Device/dlink_dir-835-a1 SUPPORTED_DEVICES += dir-835-a1 IMAGE_SIZE := 15936k IMAGES := factory.bin sysupgrade.bin - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \ + pad-rootfs IMAGE/factory.bin := $$(IMAGE/default) | pad-offset $$$$(IMAGE_SIZE) 26 | \ append-string 00DB120AR9344-RT-101214-00 | check-size $$$$(IMAGE_SIZE) - IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | \ + check-size $$$$(IMAGE_SIZE) endef TARGET_DEVICES += dlink_dir-835-a1 define Device/dlink_dir-842-c - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := D-Link DEVICE_MODEL := DIR-842 KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma @@ -419,11 +447,12 @@ define Device/dlink_dir-842-c # 64 bytes offset: # - 28 bytes seama_header # - 36 bytes of META data (4-bytes aligned) - IMAGE/default := append-kernel | uImage lzma | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs - IMAGE/sysupgrade.bin := \ - $$(IMAGE/default) | seama | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := \ - $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | check-size $$$$(IMAGE_SIZE) + IMAGE/default := append-kernel | uImage lzma | \ + pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs + IMAGE/sysupgrade.bin := $$(IMAGE/default) | seama | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | pad-rootfs -x 64 | seama | \ + seama-seal | check-size $$$$(IMAGE_SIZE) IMAGE_SIZE := 15680k endef @@ -450,19 +479,18 @@ TARGET_DEVICES += dlink_dir-842-c3 define Device/dlink_dir-859-a1 $(Device/seama) - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := D-Link DEVICE_MODEL := DIR-859 DEVICE_VARIANT := A1 IMAGE_SIZE := 15872k - DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct SEAMA_SIGNATURE := wrgac37_dlink.2013gui_dir859 - SUPPORTED_DEVICES += dir-859-a1 endef TARGET_DEVICES += dlink_dir-859-a1 define Device/elecom_wrc-1750ghbk2-i - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := ELECOM DEVICE_MODEL := WRC-1750GHBK2-I/C IMAGE_SIZE := 15808k @@ -473,7 +501,7 @@ endef TARGET_DEVICES += elecom_wrc-1750ghbk2-i define Device/elecom_wrc-300ghbk2-i - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := ELECOM DEVICE_MODEL := WRC-300GHBK2-I IMAGE_SIZE := 7616k @@ -483,7 +511,7 @@ endef TARGET_DEVICES += elecom_wrc-300ghbk2-i define Device/embeddedwireless_dorin - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_VENDOR := Embedded Wireless DEVICE_MODEL := Dorin DEVICE_PACKAGES := kmod-usb-chipidea2 @@ -492,20 +520,21 @@ endef TARGET_DEVICES += embeddedwireless_dorin define Device/engenius_ecb1750 - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := EnGenius DEVICE_MODEL := ECB1750 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct IMAGE_SIZE := 15680k IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \ - append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ - senao-header -r 0x101 -p 0x6d -t 2 - IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) + append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ + senao-header -r 0x101 -p 0x6d -t 2 + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) endef TARGET_DEVICES += engenius_ecb1750 define Device/engenius_epg5000 - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := EnGenius DEVICE_MODEL := EPG5000 DEVICE_PACKAGES := ath10k-firmware-qca988x-ct kmod-ath10k-ct kmod-usb2 @@ -519,7 +548,7 @@ endef TARGET_DEVICES += engenius_epg5000 define Device/engenius_ews511ap - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := EnGenius DEVICE_MODEL := EWS511AP DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct @@ -528,18 +557,44 @@ endef TARGET_DEVICES += engenius_ews511ap define Device/etactica_eg200 - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_VENDOR := eTactica DEVICE_MODEL := EG200 DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-ledtrig-oneshot \ - kmod-usb-serial kmod-usb-serial-ftdi kmod-usb-storage kmod-fs-ext4 + kmod-usb-serial kmod-usb-serial-ftdi kmod-usb-storage kmod-fs-ext4 IMAGE_SIZE := 16000k SUPPORTED_DEVICES += rme-eg200 endef TARGET_DEVICES += etactica_eg200 +define Device/glinet_6408 + $(Device/tplink-8mlzma) + SOC := ar9331 + DEVICE_VENDOR := GL.iNet + DEVICE_MODEL := 6408 + DEVICE_PACKAGES := kmod-usb2 + IMAGE_SIZE := 8000k + TPLINK_HWID := 0x08000001 + IMAGES := sysupgrade.bin + SUPPORTED_DEVICES += gl-inet +endef +TARGET_DEVICES += glinet_6408 + +define Device/glinet_6416 + $(Device/tplink-16mlzma) + SOC := ar9331 + DEVICE_VENDOR := GL.iNet + DEVICE_MODEL := 6416 + DEVICE_PACKAGES := kmod-usb2 + IMAGE_SIZE := 16192k + TPLINK_HWID := 0x08000001 + IMAGES := sysupgrade.bin + SUPPORTED_DEVICES += gl-inet +endef +TARGET_DEVICES += glinet_6416 + define Device/glinet_gl-ar150 - ATH_SOC := ar9330 + SOC := ar9330 DEVICE_VENDOR := GL.iNet DEVICE_MODEL := GL-AR150 DEVICE_PACKAGES := kmod-usb-chipidea2 @@ -549,7 +604,7 @@ endef TARGET_DEVICES += glinet_gl-ar150 define Device/glinet_gl-ar300m-common-nor - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := GL.iNet DEVICE_PACKAGES := kmod-usb2 IMAGE_SIZE := 16000k @@ -570,7 +625,7 @@ endef TARGET_DEVICES += glinet_gl-ar300m16 define Device/glinet_gl-ar750 - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := GL.iNet DEVICE_MODEL := GL-AR750 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct @@ -580,7 +635,7 @@ endef TARGET_DEVICES += glinet_gl-ar750 define Device/glinet_gl-x750 - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := GL.iNet DEVICE_MODEL := GL-X750 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct @@ -589,7 +644,7 @@ endef TARGET_DEVICES += glinet_gl-x750 define Device/iodata_etg3-r - ATH_SOC := ar9342 + SOC := ar9342 DEVICE_VENDOR := I-O DATA DEVICE_MODEL := ETG3-R IMAGE_SIZE := 7680k @@ -598,60 +653,59 @@ endef TARGET_DEVICES += iodata_etg3-r define Device/iodata_wn-ac1167dgr - ATH_SOC := qca9557 + SOC := qca9557 DEVICE_VENDOR := I-O DATA DEVICE_MODEL := WN-AC1167DGR IMAGE_SIZE := 14656k IMAGES += factory.bin IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \ - append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ - senao-header -r 0x30a -p 0x61 -t 2 + append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ + senao-header -r 0x30a -p 0x61 -t 2 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct endef TARGET_DEVICES += iodata_wn-ac1167dgr define Device/iodata_wn-ac1600dgr - ATH_SOC := qca9557 + SOC := qca9557 DEVICE_VENDOR := I-O DATA DEVICE_MODEL := WN-AC1600DGR IMAGE_SIZE := 14656k IMAGES += factory.bin IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \ - append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ - senao-header -r 0x30a -p 0x60 -t 2 -v 200 + append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ + senao-header -r 0x30a -p 0x60 -t 2 -v 200 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct endef TARGET_DEVICES += iodata_wn-ac1600dgr define Device/iodata_wn-ac1600dgr2 - ATH_SOC := qca9557 + SOC := qca9557 DEVICE_VENDOR := I-O DATA DEVICE_MODEL := WN-AC1600DGR2/DGR3 IMAGE_SIZE := 14656k IMAGES += dgr2-dgr3-factory.bin - IMAGE/dgr2-dgr3-factory.bin := \ - append-kernel | pad-to $$$$(BLOCKSIZE) | \ - append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ - senao-header -r 0x30a -p 0x60 -t 2 -v 200 + IMAGE/dgr2-dgr3-factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \ + append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ + senao-header -r 0x30a -p 0x60 -t 2 -v 200 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct endef TARGET_DEVICES += iodata_wn-ac1600dgr2 define Device/iodata_wn-ag300dgr - ATH_SOC := ar1022 + SOC := ar1022 DEVICE_VENDOR := I-O DATA DEVICE_MODEL := WN-AG300DGR IMAGE_SIZE := 15424k IMAGES += factory.bin IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \ - append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ - senao-header -r 0x30a -p 0x47 -t 2 + append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ + senao-header -r 0x30a -p 0x47 -t 2 DEVICE_PACKAGES := kmod-usb2 endef TARGET_DEVICES += iodata_wn-ag300dgr define Device/jjplus_ja76pf2 - ATH_SOC := ar7161 + SOC := ar7161 DEVICE_VENDOR := jjPlus DEVICE_MODEL := JA76PF2 DEVICE_PACKAGES += -kmod-ath9k -swconfig -wpad-mini -uboot-envtools fconfig @@ -666,7 +720,7 @@ endef TARGET_DEVICES += jjplus_ja76pf2 define Device/librerouter_librerouter-v1 - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := Librerouter DEVICE_MODEL := LibreRouter DEVICE_VARIANT := v1 @@ -675,46 +729,57 @@ define Device/librerouter_librerouter-v1 endef TARGET_DEVICES += librerouter_librerouter-v1 +define Device/mikrotik_routerboard-wap-g-5hact2hnd + $(Device/mikrotik) + SOC := qca9556 + DEVICE_MODEL := RouterBOARD wAP G-5HacT2HnD (wAP AC) + IMAGE_SIZE := 16256k + IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 -e | \ + pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) + DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct + SUPPORTED_DEVICES += rb-wapg-5hact2hnd +endef +TARGET_DEVICES += mikrotik_routerboard-wap-g-5hact2hnd + define Device/nec_wg1200cr - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := NEC DEVICE_MODEL := Aterm WG1200CR IMAGE_SIZE := 7616k SEAMA_MTDBLOCK := 6 SEAMA_SIGNATURE := wrgac72_necpf.2016gui_wg1200cr IMAGES += factory.bin - IMAGE/default := \ - append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs - IMAGE/sysupgrade.bin := \ - $$(IMAGE/default) | seama | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := \ - $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | nec-enc 9gsiy9nzep452pad | \ - check-size $$$$(IMAGE_SIZE) + IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs + IMAGE/sysupgrade.bin := $$(IMAGE/default) | seama | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | pad-rootfs -x 64 | seama | \ + seama-seal | nec-enc 9gsiy9nzep452pad | check-size $$$$(IMAGE_SIZE) DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct endef TARGET_DEVICES += nec_wg1200cr define Device/nec_wg800hp - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := NEC DEVICE_MODEL := 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 + append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ + xor-image -p 6A57190601121E4C004C1E1201061957 -x | nec-fw LASER_ATERM + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct-htt endef TARGET_DEVICES += nec_wg800hp define Device/netgear_ex6400_ex7300 - ATH_SOC := qca9558 + SOC := qca9558 NETGEAR_KERNEL_MAGIC := 0x27051956 NETGEAR_BOARD_ID := EX7300series NETGEAR_HW_ID := 29765104+16+0+128 IMAGE_SIZE := 15552k - IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | netgear-rootfs | pad-rootfs + IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | \ + netgear-rootfs | pad-rootfs DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca99x0-ct $(Device/netgear_ath79) endef @@ -732,9 +797,11 @@ endef TARGET_DEVICES += netgear_ex7300 define Device/netgear_wndr3x00 - ATH_SOC := ar7161 - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs - DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset kmod-owl-loader + SOC := ar7161 + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | \ + append-rootfs | pad-rootfs + DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \ + kmod-leds-reset kmod-owl-loader $(Device/netgear_ath79) endef @@ -746,7 +813,8 @@ define Device/netgear_wndr3700 NETGEAR_BOARD_ID := WNDR3700 IMAGE_SIZE := 7680k IMAGES += factory-NA.img - IMAGE/factory-NA.img := $$(IMAGE/default) | netgear-dni NA | check-size $$$$(IMAGE_SIZE) + IMAGE/factory-NA.img := $$(IMAGE/default) | netgear-dni NA | \ + check-size $$$$(IMAGE_SIZE) SUPPORTED_DEVICES += wndr3700 endef TARGET_DEVICES += netgear_wndr3700 @@ -786,7 +854,7 @@ endef TARGET_DEVICES += netgear_wndr3800ch define Device/netgear_wnr2200_common - ATH_SOC := ar7241 + SOC := ar7241 DEVICE_MODEL := WNR2200 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport NETGEAR_KERNEL_MAGIC := 0x32323030 @@ -820,37 +888,40 @@ endef TARGET_DEVICES += netgear_wnr2200-16m define Device/ocedo_koala - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := Ocedo DEVICE_MODEL := Koala DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct SUPPORTED_DEVICES += koala IMAGE_SIZE := 7424k - IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) endef TARGET_DEVICES += ocedo_koala define Device/ocedo_raccoon - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := Ocedo DEVICE_MODEL := Raccoon IMAGE_SIZE := 7424k - IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) endef TARGET_DEVICES += ocedo_raccoon define Device/ocedo_ursus - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := Ocedo DEVICE_MODEL := Ursus DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct IMAGE_SIZE := 7424k - IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) endef TARGET_DEVICES += ocedo_ursus define Device/openmesh_om5p-ac-v2 - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := OpenMesh DEVICE_MODEL := OM5P-AC DEVICE_VARIANT := v2 @@ -861,7 +932,7 @@ endef TARGET_DEVICES += openmesh_om5p-ac-v2 define Device/pcs_cap324 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := PowerCloud Systems DEVICE_MODEL := CAP324 IMAGE_SIZE := 16000k @@ -870,7 +941,7 @@ endef TARGET_DEVICES += pcs_cap324 define Device/pcs_cr3000 - ATH_SOC := ar9341 + SOC := ar9341 DEVICE_VENDOR := PowerCloud Systems DEVICE_MODEL := CR3000 IMAGE_SIZE := 7808k @@ -879,7 +950,7 @@ endef TARGET_DEVICES += pcs_cr3000 define Device/pcs_cr5000 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := PowerCloud Systems DEVICE_MODEL := CR5000 DEVICE_PACKAGES := kmod-usb2 @@ -889,18 +960,19 @@ endef TARGET_DEVICES += pcs_cr5000 define Device/phicomm_k2t - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := Phicomm DEVICE_MODEL := K2T IMAGE_SIZE := 15744k - IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) - DEVICE_PACKAGES := kmod-leds-reset kmod-ath10k-ct ath10k-firmware-qca9888-ct + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \ + append-metadata | check-size $$$$(IMAGE_SIZE) + DEVICE_PACKAGES := kmod-leds-reset kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9888-ct endef TARGET_DEVICES += phicomm_k2t define Device/pisen_ts-d084 $(Device/tplink-8mlzma) - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_VENDOR := PISEN DEVICE_MODEL := TS-D084 DEVICE_PACKAGES := kmod-usb2 kmod-usb-chipidea2 @@ -909,7 +981,7 @@ endef TARGET_DEVICES += pisen_ts-d084 define Device/pisen_wmb001n - ATH_SOC := ar9341 + SOC := ar9341 DEVICE_VENDOR := PISEN DEVICE_MODEL := WMB001N IMAGE_SIZE := 14080k @@ -918,7 +990,8 @@ define Device/pisen_wmb001n LOADER_FLASH_OFFS := 0x20000 COMPILE := loader-$(1).bin loader-$(1).uImage COMPILE/loader-$(1).bin := loader-okli-compile - COMPILE/loader-$(1).uImage := append-loader-okli $(1) | pad-to 64k | lzma | uImage lzma + COMPILE/loader-$(1).uImage := append-loader-okli $(1) | pad-to 64k | lzma | \ + uImage lzma KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 IMAGES += factory.bin IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | pisen_wmb001n-factory $(1) @@ -927,7 +1000,7 @@ TARGET_DEVICES += pisen_wmb001n define Device/pisen_wmm003n $(Device/tplink-8mlzma) - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_VENDOR := PISEN DEVICE_MODEL := Cloud Easy Power (WMM003N) DEVICE_PACKAGES := kmod-usb2 kmod-usb-chipidea2 @@ -937,10 +1010,11 @@ TARGET_DEVICES += pisen_wmm003n define Device/qihoo_c301 $(Device/seama) - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := Qihoo DEVICE_MODEL := C301 - DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct uboot-envtools + DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct \ + uboot-envtools IMAGE_SIZE := 15744k SEAMA_SIGNATURE := wrgac26_qihoo360_360rg SUPPORTED_DEVICES += qihoo-c301 @@ -948,7 +1022,7 @@ endef TARGET_DEVICES += qihoo_c301 define Device/rosinson_wr818 - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := Rosinson DEVICE_MODEL := WR818 IMAGE_SIZE := 15872k @@ -957,11 +1031,11 @@ endef TARGET_DEVICES += rosinson_wr818 define Device/sitecom_wlr-7100 - ATH_SOC := ar1022 + SOC := ar1022 DEVICE_VENDOR := Sitecom DEVICE_MODEL := WLR-7100 DEVICE_VARIANT := v1 002 - DEVICE_PACKAGES := ath10k-firmware-qca988x kmod-ath10k kmod-usb2 + DEVICE_PACKAGES := ath10k-firmware-qca988x-ct kmod-ath10k-ct-smallbuffers kmod-usb2 IMAGES += factory.dlf IMAGE/factory.dlf := append-kernel | pad-to $$$$(BLOCKSIZE) | \ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \ @@ -971,7 +1045,7 @@ endef TARGET_DEVICES += sitecom_wlr-7100 define Device/trendnet_tew-823dru - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := Trendnet DEVICE_MODEL := TEW-823DRU DEVICE_VARIANT := v1.0R @@ -979,16 +1053,18 @@ define Device/trendnet_tew-823dru SUPPORTED_DEVICES += tew-823dru IMAGE_SIZE := 15296k IMAGES := factory.bin sysupgrade.bin - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \ + pad-rootfs IMAGE/factory.bin := $$(IMAGE/default) | pad-offset $$$$(IMAGE_SIZE) 26 | \ append-string 00AP135AR9558-RT-131129-00 | check-size $$$$(IMAGE_SIZE) - IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | \ + check-size $$$$(IMAGE_SIZE) endef TARGET_DEVICES += trendnet_tew-823dru define Device/wd_mynet-n750 $(Device/seama) - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := Western Digital DEVICE_MODEL := My Net N750 IMAGE_SIZE := 15872k @@ -999,7 +1075,7 @@ endef TARGET_DEVICES += wd_mynet-n750 define Device/wd_mynet-wifi-rangeextender - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := Western Digital DEVICE_MODEL := My Net Wi-Fi Range Extender DEVICE_PACKAGES := rssileds nvram -swconfig @@ -1013,16 +1089,17 @@ endef TARGET_DEVICES += wd_mynet-wifi-rangeextender define Device/winchannel_wb2000 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := Winchannel DEVICE_MODEL := WB2000 IMAGE_SIZE := 15872k - DEVICE_PACKAGES := kmod-i2c-core kmod-i2c-gpio kmod-rtc-ds1307 kmod-usb2 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := kmod-i2c-core kmod-i2c-gpio kmod-rtc-ds1307 kmod-usb2 \ + kmod-usb-ledtrig-usbport endef TARGET_DEVICES += winchannel_wb2000 define Device/xiaomi_mi-router-4q - ATH_SOC := qca9561 + SOC := qca9561 DEVICE_VENDOR := Xiaomi DEVICE_MODEL := Mi Router 4Q IMAGE_SIZE := 14336k @@ -1030,7 +1107,7 @@ endef TARGET_DEVICES += xiaomi_mi-router-4q define Device/yuncore_a770 - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := YunCore DEVICE_MODEL := A770 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct @@ -1041,7 +1118,7 @@ endef TARGET_DEVICES += yuncore_a770 define Device/yuncore_a782 - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := YunCore DEVICE_MODEL := A782 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct @@ -1052,7 +1129,7 @@ endef TARGET_DEVICES += yuncore_a782 define Device/yuncore_xd4200 - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := YunCore DEVICE_MODEL := XD4200 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct @@ -1063,11 +1140,11 @@ endef TARGET_DEVICES += yuncore_xd4200 define Device/zbtlink_zbt-wd323 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := ZBT DEVICE_MODEL := WD323 IMAGE_SIZE := 16000k DEVICE_PACKAGES := kmod-usb2 kmod-i2c-core kmod-i2c-gpio kmod-rtc-pcf8563 \ - kmod-usb-serial kmod-usb-serial-cp210x uqmi + kmod-usb-serial kmod-usb-serial-cp210x uqmi endef TARGET_DEVICES += zbtlink_zbt-wd323 diff --git a/target/linux/ath79/image/lzma-loader/Makefile b/target/linux/ath79/image/lzma-loader/Makefile index 738093a95..0ff59bc56 100644 --- a/target/linux/ath79/image/lzma-loader/Makefile +++ b/target/linux/ath79/image/lzma-loader/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk -LZMA_TEXT_START := 0x80a00000 +LZMA_TEXT_START := 0x81800000 LOADADDR := 0x80060000 LOADER := loader.bin LOADER_NAME := $(basename $(notdir $(LOADER))) -LOADER_DATA := +LOADER_DATA := TARGET_DIR := FLASH_OFFS := FLASH_MAX := diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk index 19c2d4214..95ddca26b 100644 --- a/target/linux/ath79/image/nand.mk +++ b/target/linux/ath79/image/nand.mk @@ -29,7 +29,7 @@ define Build/zyxel-factory endef define Device/aerohive_hiveap-121 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_VENDOR := Aerohive DEVICE_MODEL := HiveAP 121 DEVICE_PACKAGES := kmod-usb2 @@ -40,13 +40,14 @@ define Device/aerohive_hiveap-121 UBINIZE_OPTS := -E 5 SUPPORTED_DEVICES += hiveap-121 IMAGES += factory.bin - IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \ + check-size $$$$(IMAGE_SIZE) IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata endef TARGET_DEVICES += aerohive_hiveap-121 define Device/glinet_gl-ar300m-common-nand - ATH_SOC := qca9531 + SOC := qca9531 DEVICE_VENDOR := GL.iNet DEVICE_MODEL := GL-AR300M DEVICE_PACKAGES := kmod-usb2 @@ -76,23 +77,26 @@ endef TARGET_DEVICES += glinet_gl-ar300m-nor define Device/glinet_gl-ar750s-common - ATH_SOC := qca9563 + SOC := qca9563 DEVICE_VENDOR := GL.iNet DEVICE_MODEL := GL-AR750S - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct \ - kmod-usb2 kmod-usb-storage block-mount - KERNEL_SIZE := 4096k + DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2 \ + kmod-usb-storage block-mount + KERNEL_SIZE := 2048k IMAGE_SIZE := 16000k PAGESIZE := 2048 VID_HDR_OFFSET := 2048 endef +# NB: The kernel size is intentionally restricted at this time; see commit message define Device/glinet_gl-ar750s-nor-nand $(Device/glinet_gl-ar750s-common) DEVICE_VARIANT := NOR/NAND BLOCKSIZE := 128k + GL_UBOOT_UBI_OFFSET := 2048k IMAGES += factory.img - IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi + IMAGE/factory.img := append-kernel | pad-to $$$$(GL_UBOOT_UBI_OFFSET) | \ + append-ubi | check-kernel-size $$$$(GL_UBOOT_UBI_OFFSET) IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata SUPPORTED_DEVICES += glinet,gl-ar750s-nor endef @@ -110,61 +114,87 @@ TARGET_DEVICES += glinet_gl-ar750s-nor define Device/netgear_ath79_nand DEVICE_VENDOR := NETGEAR DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport - KERNEL_SIZE := 2048k + KERNEL_SIZE := 4096k BLOCKSIZE := 128k PAGESIZE := 2048 IMAGE_SIZE := 25600k KERNEL := kernel-bin | append-dtb | lzma -d20 | \ - pad-offset $$(KERNEL_SIZE) 129 | \ - netgear-uImage lzma | append-string -e '\xff' | \ + pad-offset $$(KERNEL_SIZE) 129 | netgear-uImage lzma | \ + append-string -e '\xff' | \ append-uImage-fakehdr filesystem $$(NETGEAR_KERNEL_MAGIC) KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma IMAGES := sysupgrade.bin factory.img - IMAGE/factory.img := append-kernel | append-ubi | netgear-dni | check-size $$$$(IMAGE_SIZE) - IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.img := append-kernel | append-ubi | netgear-dni | \ + check-size $$$$(IMAGE_SIZE) + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | \ + check-size $$$$(IMAGE_SIZE) UBINIZE_OPTS := -E 5 endef define Device/netgear_wndr3700-v4 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_MODEL := WNDR3700 DEVICE_VARIANT := v4 NETGEAR_KERNEL_MAGIC := 0x33373033 NETGEAR_BOARD_ID := WNDR3700v4 NETGEAR_HW_ID := 29763948+128+128 - SUPPORTED_DEVICES += wndr3700v4 $(Device/netgear_ath79_nand) endef TARGET_DEVICES += netgear_wndr3700-v4 define Device/netgear_wndr4300 - ATH_SOC := ar9344 + SOC := ar9344 DEVICE_MODEL := WNDR4300 NETGEAR_KERNEL_MAGIC := 0x33373033 NETGEAR_BOARD_ID := WNDR4300 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3 - SUPPORTED_DEVICES += wndr4300 $(Device/netgear_ath79_nand) endef TARGET_DEVICES += netgear_wndr4300 +define Device/netgear_wndr4300-v2 + SOC := qca9563 + DEVICE_MODEL := WNDR4300 + DEVICE_VARIANT := v2 + NETGEAR_KERNEL_MAGIC := 0x27051956 + NETGEAR_BOARD_ID := WNDR4500series + NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012175 + $(Device/netgear_ath79_nand) +endef +TARGET_DEVICES += netgear_wndr4300-v2 + +define Device/netgear_wndr4500-v3 + SOC := qca9563 + DEVICE_MODEL := WNDR4500 + DEVICE_VARIANT := v3 + NETGEAR_KERNEL_MAGIC := 0x27051956 + NETGEAR_BOARD_ID := WNDR4500series + NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012173 + $(Device/netgear_ath79_nand) +endef +TARGET_DEVICES += netgear_wndr4500-v3 + define Device/zyxel_nbg6716 - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_VENDOR := ZyXEL DEVICE_MODEL := NBG6716 - DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct ath10k-firmware-qca988x-ct + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \ + ath10k-firmware-qca988x-ct RAS_BOARD := NBG6716 RAS_ROOTFS_SIZE := 29696k RAS_VERSION := "OpenWrt Linux-$(LINUX_VERSION)" KERNEL_SIZE := 4096k BLOCKSIZE := 128k PAGESIZE := 2048 - KERNEL := kernel-bin | append-dtb | uImage none | \ - zyxel-buildkerneljffs | check-size 4096k + KERNEL := kernel-bin | append-dtb | uImage none | zyxel-buildkerneljffs | \ + check-size 4096k IMAGES := sysupgrade.tar sysupgrade-4M-Kernel.bin factory.bin - IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata - IMAGE/sysupgrade-4M-Kernel.bin/squashfs := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to 263192576 | gzip - IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | zyxel-factory + IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | \ + sysupgrade-tar rootfs=$$$$@ | append-metadata + IMAGE/sysupgrade-4M-Kernel.bin/squashfs := append-kernel | \ + pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to 263192576 | gzip + IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \ + zyxel-factory UBINIZE_OPTS := -E 5 endef TARGET_DEVICES += zyxel_nbg6716 diff --git a/target/linux/ath79/image/tiny-netgear.mk b/target/linux/ath79/image/tiny-netgear.mk index d257ddd0e..591ea5722 100644 --- a/target/linux/ath79/image/tiny-netgear.mk +++ b/target/linux/ath79/image/tiny-netgear.mk @@ -1,11 +1,12 @@ include ./common-netgear.mk define Device/netgear_ar7240 - ATH_SOC := ar7240 + SOC := ar7240 NETGEAR_KERNEL_MAGIC := 0x32303631 KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma IMAGE_SIZE := 3712k - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | \ + append-rootfs | pad-rootfs $(Device/netgear_ath79) endef @@ -29,30 +30,33 @@ endef TARGET_DEVICES += on_n150r define Device/netgear_wnr1000-v2 - ATH_SOC := ar7240 + SOC := ar7240 DEVICE_MODEL := WNR1000 DEVICE_VARIANT := v2 NETGEAR_KERNEL_MAGIC := 0x31303031 NETGEAR_BOARD_ID := WNR1000V2 NETGEAR_HW_ID := 29763331+4+32 IMAGE_SIZE := 3712k - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | \ + append-rootfs | pad-rootfs SUPPORTED_DEVICES += wnr1000-v2 $(Device/netgear_ath79) endef TARGET_DEVICES += netgear_wnr1000-v2 define Device/netgear_wnr2000-v3 - ATH_SOC := ar7241 + SOC := ar7241 DEVICE_MODEL := WNR2000 DEVICE_VARIANT := v3 NETGEAR_KERNEL_MAGIC := 0x32303033 NETGEAR_BOARD_ID := WNR2000V3 NETGEAR_HW_ID := 29763551+04+32 IMAGE_SIZE := 3712k - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | \ + append-rootfs | pad-rootfs IMAGES += factory-NA.img - IMAGE/factory-NA.img := $$(IMAGE/default) | netgear-dni NA | check-size $$$$(IMAGE_SIZE) + IMAGE/factory-NA.img := $$(IMAGE/default) | netgear-dni NA | \ + check-size $$$$(IMAGE_SIZE) SUPPORTED_DEVICES += wnr2000-v3 $(Device/netgear_ath79) endef diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk index 3fc933392..2107e47cc 100644 --- a/target/linux/ath79/image/tiny-tp-link.mk +++ b/target/linux/ath79/image/tiny-tp-link.mk @@ -2,7 +2,7 @@ include ./common-tp-link.mk define Device/tplink_tl-mr10u $(Device/tplink-4mlzma) - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_MODEL := TL-MR10U DEVICE_PACKAGES := kmod-usb-chipidea2 TPLINK_HWID := 0x00100101 @@ -13,7 +13,7 @@ TARGET_DEVICES += tplink_tl-mr10u define Device/tplink_tl-mr3020-v1 $(Device/tplink-4mlzma) IMAGE_SIZE := 3840k - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_MODEL := TL-MR3020 DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-usb-ledtrig-usbport @@ -24,7 +24,7 @@ TARGET_DEVICES += tplink_tl-mr3020-v1 define Device/tplink_tl-mr3040-v2 $(Device/tplink-4mlzma) - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_MODEL := TL-MR3040 DEVICE_VARIANT := v2 DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-usb-ledtrig-usbport @@ -35,29 +35,29 @@ TARGET_DEVICES += tplink_tl-mr3040-v2 define Device/tplink_tl-mr3220-v1 $(Device/tplink-4m) - ATH_SOC := ar7241 + SOC := ar7241 DEVICE_MODEL := TL-MR3220 DEVICE_VARIANT := v1 TPLINK_HWID := 0x32200001 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport - SUPPORTED_DEVICES += tl-mr3220-v1 + SUPPORTED_DEVICES += tl-mr3220 endef TARGET_DEVICES += tplink_tl-mr3220-v1 define Device/tplink_tl-mr3420-v1 $(Device/tplink-4m) - ATH_SOC := ar7241 + SOC := ar7241 DEVICE_MODEL := TL-MR3420 DEVICE_VARIANT := v1 TPLINK_HWID := 0x34200001 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport - SUPPORTED_DEVICES += tl-mr3420-v1 + SUPPORTED_DEVICES += tl-mr3420 endef TARGET_DEVICES += tplink_tl-mr3420-v1 define Device/tplink_tl-mr3420-v2 $(Device/tplink-4mlzma) - ATH_SOC := ar9341 + SOC := ar9341 DEVICE_MODEL := TL-MR3420 DEVICE_VARIANT := v2 TPLINK_HWID := 0x34200002 @@ -66,9 +66,34 @@ define Device/tplink_tl-mr3420-v2 endef TARGET_DEVICES += tplink_tl-mr3420-v2 +define Device/tplink_tl-wa850re-v1 + $(Device/tplink-4mlzma) + SOC := ar9341 + DEVICE_MODEL := TL-WA850RE + DEVICE_VARIANT := v1 + TPLINK_HWID := 0x08500001 + DEVICE_PACKAGES := rssileds + SUPPORTED_DEVICES += tl-wa850re +endef +TARGET_DEVICES += tplink_tl-wa850re-v1 + +define Device/tplink_tl-wa850re-v2 + $(Device/tplink-safeloader) + SOC := qca9533 + IMAGE_SIZE := 3648k + DEVICE_MODEL := TL-WA850RE + DEVICE_VARIANT := v2 + TPLINK_BOARD_ID := TLWA850REV2 + TPLINK_HWID := 0x08500002 + TPLINK_HWREV := 0x0 + DEVICE_PACKAGES := rssileds + SUPPORTED_DEVICES += tl-wa850re-v2 +endef +TARGET_DEVICES += tplink_tl-wa850re-v2 + define Device/tplink_tl-wa901nd-v2 $(Device/tplink-4m) - ATH_SOC := ar9132 + SOC := ar9132 DEVICE_MODEL := TL-WA901ND DEVICE_VARIANT := v2 TPLINK_HWID := 0x09010002 @@ -77,7 +102,7 @@ TARGET_DEVICES += tplink_tl-wa901nd-v2 define Device/tplink_tl-wr703n $(Device/tplink-4mlzma) - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_MODEL := TL-WR703N DEVICE_PACKAGES := kmod-usb-chipidea2 TPLINK_HWID := 0x07030101 @@ -87,7 +112,7 @@ TARGET_DEVICES += tplink_tl-wr703n define Device/tplink_tl-wr740n-v1 $(Device/tplink-4m) - ATH_SOC := ar7240 + SOC := ar7240 DEVICE_MODEL := TL-WR740N DEVICE_VARIANT := v1/v2 TPLINK_HWID := 0x07400001 @@ -96,7 +121,7 @@ TARGET_DEVICES += tplink_tl-wr740n-v1 define Device/tplink_tl-wr740n-v3 $(Device/tplink-4m) - ATH_SOC := ar7240 + SOC := ar7240 DEVICE_MODEL := TL-WR740N DEVICE_VARIANT := v3 TPLINK_HWID := 0x07400003 @@ -105,17 +130,16 @@ TARGET_DEVICES += tplink_tl-wr740n-v3 define Device/tplink_tl-wr740n-v4 $(Device/tplink-4mlzma) - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_MODEL := TL-WR740N DEVICE_VARIANT := v4 TPLINK_HWID := 0x07400004 - SUPPORTED_DEVICES += tl-wr740n-v4 endef TARGET_DEVICES += tplink_tl-wr740n-v4 define Device/tplink_tl-wr741-v1 $(Device/tplink-4m) - ATH_SOC := ar7240 + SOC := ar7240 DEVICE_MODEL := TL-WR741N/ND DEVICE_VARIANT := v1/v2 TPLINK_HWID := 0x07410001 @@ -124,17 +148,17 @@ TARGET_DEVICES += tplink_tl-wr741-v1 define Device/tplink_tl-wr741nd-v4 $(Device/tplink-4mlzma) - ATH_SOC := ar9331 + SOC := ar9331 DEVICE_MODEL := TL-WR741N/ND DEVICE_VARIANT := v4 TPLINK_HWID := 0x07410004 - SUPPORTED_DEVICES += tl-wr741n-v4 + SUPPORTED_DEVICES += tl-wr741nd-v4 endef TARGET_DEVICES += tplink_tl-wr741nd-v4 define Device/tplink_tl-wr743nd-v1 $(Device/tplink-4m) - ATH_SOC := ar7240 + SOC := ar7240 DEVICE_MODEL := TL-WR743ND DEVICE_VARIANT := v1 TPLINK_HWID := 0x07430001 @@ -143,7 +167,7 @@ TARGET_DEVICES += tplink_tl-wr743nd-v1 define Device/tplink_tl-wr841-v5 $(Device/tplink-4m) - ATH_SOC := ar7240 + SOC := ar7240 DEVICE_MODEL := TL-WR841N/ND DEVICE_VARIANT := v5/v6 TPLINK_HWID := 0x08410005 @@ -152,17 +176,17 @@ TARGET_DEVICES += tplink_tl-wr841-v5 define Device/tplink_tl-wr841-v7 $(Device/tplink-4m) - ATH_SOC := ar7241 + SOC := ar7241 DEVICE_MODEL := TL-WR841N/ND DEVICE_VARIANT := v7 TPLINK_HWID := 0x08410007 - SUPPORTED_DEVICES += tl-wr841-v7 + SUPPORTED_DEVICES += tl-wr841n-v7 endef TARGET_DEVICES += tplink_tl-wr841-v7 define Device/tplink_tl-wr841-v8 $(Device/tplink-4mlzma) - ATH_SOC := ar9341 + SOC := ar9341 DEVICE_MODEL := TL-WR841N/ND DEVICE_VARIANT := v8 TPLINK_HWID := 0x08410008 @@ -172,7 +196,7 @@ TARGET_DEVICES += tplink_tl-wr841-v8 define Device/tplink_tl-wr841-v9 $(Device/tplink-4mlzma) - ATH_SOC := qca9533 + SOC := qca9533 DEVICE_MODEL := TL-WR841N/ND DEVICE_VARIANT := v9 TPLINK_HWID := 0x08410009 @@ -182,7 +206,7 @@ TARGET_DEVICES += tplink_tl-wr841-v9 define Device/tplink_tl-wr841-v10 $(Device/tplink-4mlzma) - ATH_SOC := qca9533 + SOC := qca9533 DEVICE_MODEL := TL-WR841N/ND DEVICE_VARIANT := v10 TPLINK_HWID := 0x08410010 @@ -192,33 +216,33 @@ TARGET_DEVICES += tplink_tl-wr841-v10 define Device/tplink_tl-wr841-v11 $(Device/tplink-4mlzma) - ATH_SOC := qca9533 + SOC := qca9533 DEVICE_MODEL := TL-WR841N/ND DEVICE_VARIANT := v11 TPLINK_HWID := 0x08410011 SUPPORTED_DEVICES += tl-wr841n-v11 IMAGES += factory-us.bin factory-eu.bin - IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US - IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU + IMAGE/factory-us.bin := tplink-v1-image factory -C US + IMAGE/factory-eu.bin := tplink-v1-image factory -C EU endef TARGET_DEVICES += tplink_tl-wr841-v11 define Device/tplink_tl-wr841-v12 $(Device/tplink-4mlzma) - ATH_SOC := qca9533 + SOC := qca9533 DEVICE_MODEL := TL-WR841N/ND DEVICE_VARIANT := v12 TPLINK_HWID := 0x08410012 SUPPORTED_DEVICES += tl-wr841n-v11 IMAGES += factory-us.bin factory-eu.bin - IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US - IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU + IMAGE/factory-us.bin := tplink-v1-image factory -C US + IMAGE/factory-eu.bin := tplink-v1-image factory -C EU endef TARGET_DEVICES += tplink_tl-wr841-v12 define Device/tplink_tl-wr940n-v3 $(Device/tplink-4mlzma) - ATH_SOC := tp9343 + SOC := tp9343 DEVICE_MODEL := TL-WR940N DEVICE_VARIANT := v3 TPLINK_HWID := 0x09410006 @@ -228,21 +252,21 @@ TARGET_DEVICES += tplink_tl-wr940n-v3 define Device/tplink_tl-wr940n-v4 $(Device/tplink-4mlzma) - ATH_SOC := tp9343 + SOC := tp9343 DEVICE_MODEL := TL-WR940N DEVICE_VARIANT := v4 TPLINK_HWID := 0x09400004 SUPPORTED_DEVICES += tl-wr940n-v4 IMAGES += factory-us.bin factory-eu.bin factory-br.bin - IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US - IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU - IMAGE/factory-br.bin := append-rootfs | mktplinkfw factory -C BR + IMAGE/factory-us.bin := tplink-v1-image factory -C US + IMAGE/factory-eu.bin := tplink-v1-image factory -C EU + IMAGE/factory-br.bin := tplink-v1-image factory -C BR endef TARGET_DEVICES += tplink_tl-wr940n-v4 define Device/tplink_tl-wr941-v2 $(Device/tplink-4m) - ATH_SOC := ar9132 + SOC := ar9132 DEVICE_MODEL := TL-WR941ND DEVICE_VARIANT := v2/v3 DEVICE_ALT0_VENDOR := TP-Link @@ -255,7 +279,7 @@ TARGET_DEVICES += tplink_tl-wr941-v2 define Device/tplink_tl-wr941-v4 $(Device/tplink-4m) - ATH_SOC := ar7240 + SOC := ar7240 DEVICE_MODEL := TL-WR941ND DEVICE_VARIANT := v4 DEVICE_ALT0_VENDOR := TP-Link @@ -267,7 +291,7 @@ TARGET_DEVICES += tplink_tl-wr941-v4 define Device/tplink_tl-wr941nd-v6 $(Device/tplink-4mlzma) - ATH_SOC := tp9343 + SOC := tp9343 DEVICE_MODEL := TL-WR941ND DEVICE_VARIANT := v6 TPLINK_HWID := 0x09410006 @@ -277,7 +301,7 @@ TARGET_DEVICES += tplink_tl-wr941nd-v6 define Device/tplink_tl-wr941n-v7-cn $(Device/tplink-4mlzma) - ATH_SOC := qca9558 + SOC := qca9558 DEVICE_MODEL := TL-WR941N DEVICE_VARIANT := v7 (CN) TPLINK_HWID := 0x09410007 diff --git a/target/linux/ath79/image/tiny.mk b/target/linux/ath79/image/tiny.mk index 8f867575a..54b20b608 100644 --- a/target/linux/ath79/image/tiny.mk +++ b/target/linux/ath79/image/tiny.mk @@ -1,20 +1,41 @@ include ./common-buffalo.mk define Device/buffalo_whr-g301n - ATH_SOC := ar7240 + SOC := ar7240 DEVICE_VENDOR := Buffalo DEVICE_MODEL := WHR-G301N IMAGE_SIZE := 3712k IMAGES += factory.bin tftp.bin - IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) - IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WHR-G301N 1.99 | buffalo-tag WHR-G301N 3 + IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \ + pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | buffalo-enc WHR-G301N 1.99 | \ + buffalo-tag WHR-G301N 3 IMAGE/tftp.bin := $$(IMAGE/default) | buffalo-tftp-header SUPPORTED_DEVICES += whr-g301n endef TARGET_DEVICES += buffalo_whr-g301n +define Device/dlink_dir-615-e4 + SOC := ar7240 + DEVICE_VENDOR := D-Link + DEVICE_MODEL := DIR-615 + DEVICE_VARIANT := E4 + IMAGE_SIZE := 3776k + FACTORY_IMAGE_SIZE := 3456k + IMAGES += factory.bin + IMAGE/default := append-kernel | append-rootfs | pad-rootfs + IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | \ + check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | \ + check-size $$$$(FACTORY_IMAGE_SIZE) | pad-to $$$$(FACTORY_IMAGE_SIZE) | \ + append-string "AP99-AR7240-RT-091105-05" + SUPPORTED_DEVICES += dir-615-e4 + DEFAULT := n +endef +TARGET_DEVICES += dlink_dir-615-e4 + define Device/pqi_air-pen - ATH_SOC := ar9330 + SOC := ar9330 DEVICE_VENDOR := PQI DEVICE_MODEL := Air-Pen DEVICE_PACKAGES := kmod-usb2 diff --git a/target/linux/ath79/nand/base-files/etc/board.d/01_leds b/target/linux/ath79/nand/base-files/etc/board.d/01_leds index 49d400549..d9989ec53 100755 --- a/target/linux/ath79/nand/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/nand/base-files/etc/board.d/01_leds @@ -13,7 +13,9 @@ glinet,gl-ar300m-nor) ucidef_set_led_netdev "lan" "LAN" "gl-ar300m:green:lan" "eth0" ;; netgear,wndr3700-v4|\ -netgear,wndr4300) +netgear,wndr4300|\ +netgear,wndr4300-v2|\ +netgear,wndr4500-v3) ucidef_set_led_switch "wan-amber" "WAN (amber)" "netgear:amber:wan" "switch0" "0x20" ;; esac diff --git a/target/linux/ath79/nand/base-files/etc/board.d/02_network b/target/linux/ath79/nand/base-files/etc/board.d/02_network index f7e43addc..bd02a4b38 100755 --- a/target/linux/ath79/nand/base-files/etc/board.d/02_network +++ b/target/linux/ath79/nand/base-files/etc/board.d/02_network @@ -17,7 +17,9 @@ ath79_setup_interfaces() "0@eth0" "2:lan:2" "3:lan:1" "1:wan" ;; netgear,wndr3700-v4|\ - netgear,wndr4300) + netgear,wndr4300|\ + netgear,wndr4300-v2|\ + netgear,wndr4500-v3) ucidef_add_switch "switch0" \ "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" ;; @@ -37,7 +39,9 @@ ath79_setup_macs() case "$board" in netgear,wndr3700-v4|\ - netgear,wndr4300) + netgear,wndr4300|\ + netgear,wndr4300-v2|\ + netgear,wndr4500-v3) wan_mac=$(mtd_get_mac_binary caldata 0x6) ;; zyxel,nbg6716) diff --git a/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 25bafe67a..ffca1787a 100644 --- a/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -2,7 +2,54 @@ [ -e /lib/firmware/$FIRMWARE ] && exit 0 -. /lib/functions/caldata.sh +. /lib/functions.sh +. /lib/functions/system.sh + +ath9k_eeprom_die() { + echo "ath9k eeprom: " "$*" + exit 1 +} + +ath9k_eeprom_extract() { + local part=$1 + local offset=$(($2)) + local count=$(($3)) + local mtd + + mtd=$(find_mtd_chardev $part) + [ -n "$mtd" ] || \ + ath9k_eeprom_die "no mtd device found for partition $part" + + dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ + ath9k_eeprom_die "failed to extract from $mtd" +} + +ath9k_patch_fw_mac() { + local mac=$1 + local mac_offset=$(($2)) + local chksum_offset=$3 + local xor_mac + local xor_fw_mac + local xor_fw_chksum + + [ -z "$mac" -o -z "$mac_offset" ] && return + + [ -n "$chksum_offset" ] && { + xor_mac=${mac//:/} + xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}" + + xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) + xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}" + + xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) + xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac) + + printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \ + dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$(($chksum_offset)) count=2 + } + + macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc oflag=seek_bytes bs=6 seek=$mac_offset count=1 +} board=$(board_name) @@ -10,26 +57,30 @@ case "$FIRMWARE" in "ath9k-eeprom-ahb-18100000.wmac.bin") case $board in netgear,wndr3700-v4|\ - netgear,wndr4300) - caldata_extract "caldata" 0x1000 0x440 + netgear,wndr4300|\ + netgear,wndr4300-v2|\ + netgear,wndr4500-v3) + ath9k_eeprom_extract "caldata" 0x1000 0x440 ;; zyxel,nbg6716) - caldata_extract "art" 0x1000 0x440 - ath9k_patch_mac $(mtd_get_mac_ascii u-boot-env ethaddr) + ath9k_eeprom_extract "art" 0x1000 0x440 + ath9k_patch_fw_mac $(mtd_get_mac_ascii u-boot-env ethaddr) ;; *) - caldata_die "board $board is not supported yet" + ath9k_eeprom_die "board $board is not supported yet" ;; esac ;; "ath9k-eeprom-pci-0000:00:00.0.bin") case $board in netgear,wndr3700-v4|\ - netgear,wndr4300) - caldata_extract "caldata" 0x5000 0x440 + netgear,wndr4300|\ + netgear,wndr4300-v2|\ + netgear,wndr4500-v3) + ath9k_eeprom_extract "caldata" 0x5000 0x440 ;; *) - caldata_die "board $board is not supported yet" + ath9k_eeprom_die "board $board is not supported yet" ;; esac ;; diff --git a/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 9305f061f..3b09a634f 100644 --- a/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -1,8 +1,31 @@ #!/bin/sh -[ -e /lib/firmware/$FIRMWARE ] && exit 0 +. /lib/functions.sh +. /lib/functions/system.sh -. /lib/functions/caldata.sh +ath10kcal_extract() { + local part=$1 + local offset=$(($2)) + local count=$(($3)) + local mtd + + mtd=$(find_mtd_chardev $part) + [ -n "$mtd" ] || \ + ath10kcal_die "no mtd device found for partition $part" + + dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ + ath10kcal_die "failed to extract calibration data from $mtd" +} + +ath10kcal_patch_mac() { + local mac=$1 + + [ -z "$mac" ] && return + + macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc oflag=seek_bytes bs=6 seek=6 count=1 +} + +[ -e /lib/firmware/$FIRMWARE ] && exit 0 board=$(board_name) @@ -11,12 +34,12 @@ case "$FIRMWARE" in case $board in glinet,gl-ar750s-nor|\ glinet,gl-ar750s-nor-nand) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) +1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) +1) ;; zyxel,nbg6716) - caldata_extract "art" 0x5000 0x844 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1) + ath10kcal_extract "art" 0x5000 0x844 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1) ;; esac ;; diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds index 03f135f0b..75de6f3aa 100755 --- a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds @@ -15,6 +15,13 @@ buffalo,whr-g301n) ucidef_set_led_switch "lan3" "LAN3" "$boardname:green:lan3" "switch0" "0x08" ucidef_set_led_switch "lan4" "LAN4" "$boardname:green:lan4" "switch0" "0x10" ;; +dlink,dir-615-e4) + ucidef_set_led_netdev "wan" "WAN" "d-link:green:wan" "eth0" + ucidef_set_led_switch "lan1" "LAN1" "d-link:green:lan1" "switch0" "0x02" + ucidef_set_led_switch "lan2" "LAN2" "d-link:green:lan2" "switch0" "0x04" + ucidef_set_led_switch "lan3" "LAN3" "d-link:green:lan3" "switch0" "0x08" + ucidef_set_led_switch "lan4" "LAN4" "d-link:green:lan4" "switch0" "0x10" + ;; netgear,wnr1000-v2|\ netgear,wnr2000-v3) ucidef_set_led_netdev "wan-amber" "WAN (amber)" "netgear:amber:wan" "eth0" @@ -47,6 +54,16 @@ tplink,tl-wr841-v8) ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10" ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02" ;; +tplink,tl-wa850re-v1|\ +tplink,tl-wa850re-v2) + ucidef_set_led_netdev "lan" "LAN" "tp-link:blue:lan" "eth0" + ucidef_set_rssimon "wlan0" "200000" "1" + ucidef_set_led_rssi "rssilow" "RSSILOW" "tp-link:blue:signal1" "wlan0" "1" "100" + ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "tp-link:blue:signal2" "wlan0" "20" "100" + ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "tp-link:blue:signal3" "wlan0" "40" "100" + ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "tp-link:blue:signal4" "wlan0" "60" "100" + ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "tp-link:blue:signal5" "wlan0" "80" "100" + ;; tplink,tl-wr740n-v1|\ tplink,tl-wr740n-v3|\ tplink,tl-wr741-v1|\ diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/02_network b/target/linux/ath79/tiny/base-files/etc/board.d/02_network index b2616456e..56200de59 100755 --- a/target/linux/ath79/tiny/base-files/etc/board.d/02_network +++ b/target/linux/ath79/tiny/base-files/etc/board.d/02_network @@ -13,6 +13,7 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" ;; + dlink,dir-615-e4|\ netgear,wnr1000-v2|\ netgear,wnr2000-v3|\ netgear,wnr612-v2|\ @@ -31,6 +32,8 @@ ath79_setup_interfaces() tplink,tl-mr10u|\ tplink,tl-mr3020-v1|\ tplink,tl-mr3040-v2|\ + tplink,tl-wa850re-v1|\ + tplink,tl-wa850re-v2|\ tplink,tl-wa901nd-v2|\ tplink,tl-wr703n) ucidef_set_interface_lan "eth0" @@ -75,6 +78,11 @@ ath79_setup_macs() local board="$1" case "$board" in + dlink,dir-615-e4) + lan_mac=$(mtd_get_mac_ascii "nvram" "lan_mac") + wan_mac=$(mtd_get_mac_ascii "nvram" "wan_mac") + label_mac=$wan_mac + ;; tplink,tl-wr941-v2|\ tplink,tl-wr941n-v7-cn) base_mac=$(mtd_get_mac_binary u-boot 0x1fc00) diff --git a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 3da95cc16..e54b6acdb 100644 --- a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -2,7 +2,62 @@ [ -e /lib/firmware/$FIRMWARE ] && exit 0 -. /lib/functions/caldata.sh +. /lib/functions.sh +. /lib/functions/system.sh + +ath9k_eeprom_die() { + echo "ath9k eeprom: " "$*" + exit 1 +} + +ath9k_eeprom_extract() { + local part=$1 + local offset=$(($2)) + local count=$(($3)) + local mtd + + mtd=$(find_mtd_chardev $part) + [ -n "$mtd" ] || \ + ath9k_eeprom_die "no mtd device found for partition $part" + + dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ + ath9k_eeprom_die "failed to extract from $mtd" +} + +ath9k_patch_fw_mac() { + local mac=$1 + local mac_offset=$(($2)) + local chksum_offset=$3 + local xor_mac + local xor_fw_mac + local xor_fw_chksum + + [ -z "$mac" -o -z "$mac_offset" ] && return + + [ -n "$chksum_offset" ] && { + xor_mac=${mac//:/} + xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}" + + xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) + xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}" + + xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) + xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac) + + printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \ + dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$(($chksum_offset)) count=2 + } + + macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc oflag=seek_bytes bs=6 seek=$mac_offset count=1 +} + +ath9k_patch_fw_mac_crc() { + local mac=$1 + local mac_offset=$2 + local chksum_offset=$((mac_offset - 10)) + + ath9k_patch_fw_mac "${mac}" "${mac_offset}" "${chksum_offset}" +} board=$(board_name) @@ -12,7 +67,11 @@ case "$FIRMWARE" in buffalo,whr-g301n|\ tplink,tl-wr841-v5|\ tplink,tl-wr941-v4) - caldata_extract "art" 0x1000 0xeb8 + ath9k_eeprom_extract "art" 0x1000 0xeb8 + ;; + dlink,dir-615-e4) + ath9k_eeprom_extract "art" 0x1000 0x1000 + ath9k_patch_fw_mac_crc $(mtd_get_mac_ascii "nvram" "lan_mac") 0x10c ;; netgear,wnr1000-v2|\ netgear,wnr2000-v3|\ @@ -25,13 +84,13 @@ case "$FIRMWARE" in tplink,tl-wr741-v1|\ tplink,tl-wr743nd-v1|\ tplink,tl-wr841-v7) - caldata_extract "art" 0x1000 0x1000 + ath9k_eeprom_extract "art" 0x1000 0x1000 ;; pqi,air-pen) - caldata_extract "art" 0x1000 0x7d2 + ath9k_eeprom_extract "art" 0x1000 0x7d2 ;; *) - caldata_die "board $board is not supported yet" + ath9k_eeprom_die "board $board is not supported yet" ;; esac ;; diff --git a/target/linux/ath79/tiny/config-default b/target/linux/ath79/tiny/config-default index 90cd5534c..9b845abbf 100644 --- a/target/linux/ath79/tiny/config-default +++ b/target/linux/ath79/tiny/config-default @@ -1,4 +1,5 @@ CONFIG_LEDS_RESET=y +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y CONFIG_NET_DSA=y CONFIG_NET_DSA_MV88E6060=y CONFIG_NET_DSA_TAG_TRAILER=y