gluon/patches/lede/0045-ar71xx-add-support-for-TP-LINK-Archer-C7-v4.patch

534 lines
19 KiB
Diff
Raw Normal View History

From: Felix Fietkau <nbd@nbd.name>
Date: Tue, 25 Jul 2017 13:32:47 +0200
Subject: ar71xx: add support for TP-LINK Archer C7 v4
TP-Link Archer C7 v4 is a dual-band AC1750 router, based on Qualcomm/Atheros
QCA9561+QCA9888.
Specification:
- 775/650/258 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- 3T3R 2.4 GHz
- 3T3R 5 GHz
- 5x 10/100/1000 Mbps Ethernet
- 7x LED, 2x button
- UART header on PCB
Flash instruction:
1. Upload lede-ar71xx-generic-archer-c7-v4-squashfs-factory.bin via Web interface
Flash instruction using TFTP recovery:
1. Set PC to fixed ip address 192.168.0.66
2. Download lede-ar71xx-generic-archer-c7-v4-squashfs-factory.bin
and rename it to ArcherC7v4_tp_recovery.bin
3. Start a tftp server with the file tp_recovery.bin in its root directory
4. Turn off the router
5. Press and hold Reset button
6. Turn on router with the reset button pressed and wait ~15 seconds
7. Release the reset button and after a short time
the firmware should be transferred from the tftp server
8. Wait ~30 second to complete recovery.
Flash instruction under U-Boot, using UART:
1. tftp 0x81000000 lede-ar71xx-...-sysupgrade.bin
2. erase 0x9f040000 +$filesize
3. cp.b $fileaddr 0x9f040000 $filesize
4. reset
Signed-off-by: Felix Fietkau <nbd@nbd.name>
diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds
index e67b5e38561e841b88e486341950c52e1d454322..44b1c2837e8392596eed14b4bc0d761042109715 100755
--- a/target/linux/ar71xx/base-files/etc/board.d/01_leds
+++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds
@@ -53,7 +53,8 @@ ap121f)
ucidef_set_led_netdev "lan" "LAN" "$board:green:lan" "eth0"
ucidef_set_led_wlan "wlan" "WLAN" "$board:green:wlan" "phy0tpt"
;;
-archer-c25-v1)
+archer-c25-v1|\
+archer-c7-v4)
ucidef_set_led_netdev "wan" "WAN" "$board:green:wan" "eth0"
ucidef_set_led_wlan "wlan" "WLAN" "$board:green:wlan2g" "phy1tpt"
ucidef_set_led_wlan "wlan5g" "WLAN5G" "$board:green:wlan5g" "phy0tpt"
@@ -61,6 +62,12 @@ archer-c25-v1)
ucidef_set_led_switch "lan2" "LAN2" "$board:green:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "$board:green:lan3" "switch0" "0x04"
ucidef_set_led_switch "lan4" "LAN4" "$board:green:lan4" "switch0" "0x02"
+ case "$board" in
+ archer-c7-v4)
+ ucidef_set_led_usbdev "usb1" "USB1" "$board:green:usb1" "1-1"
+ ucidef_set_led_usbdev "usb2" "USB2" "$board:green:usb2" "2-1"
+ ;;
+ esac
;;
arduino-yun)
ucidef_set_led_wlan "wlan" "WLAN" "arduino:blue:wlan" "phy0tpt"
diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network
modules: update LEDE c3cdc53164 ag71xx: Fix rx ring buffer stall on small packets flood on qca956x and qca953x. e07ee06aad ar71xx: QCA956X: add missing register 7bc25dfa63 mvebu: fix mvneta build with Linux 4.4.110 541a1a7ff5 lantiq: activate noise margin delta for VDSL too dea8979a81 Lantiq: make possible to tweak DSL SRN from UCI 9934231670 libubox: update to latest lede-17.01 git HEAD 7f5a040359 kernel: update kernel 4.4 to version 4.4.110 ddedcb19e5 brcm47xx: relocate the stack in loader da43069f5b brcm47xx: relocate loader to higher address f19416ae9d fstools: backport fix from master branch 55c23e44f4 procd: update to latest git HEAD ffbbcc9b34 brcm47xx: image: build firmware for Asus WL-500g Deluxe 0426596453 Revert "iptables: fix nftables compile issue (FS#711)" da126d557c iptables: fix nftables compile issue (FS#711) 473e994571 rpcd: backport version 2017-12-07 from master b833944eb2 uci: update to HEAD of lede-17.01 branch dca4dfacf2 iproute2: cake: fix patch format error ee55629a30 kernel: bump 4.4 to 4.4.108 for 17.01 c4e9487cf5 iproute2: cake: support new operating modes for 17.01 4f1dca9eca kmod-sched-cake: bump to latest bake of cake for 17.01 959a49dc15 ramips: fix widora neo diag led a1908023cc base-files: fix logic when to show failsafe banner 1c9299877b base-files: set FAILSAFE in /etc/profile when /tmp/.failsafe exists 2603c85060 wireguard: bump to 20171221 f8a441e020 kernel: bump 4.4 to 4.4.107 ceea0ac25d wireguard: bump to 20171211 ebb54740c7 brcm47xx: remove target specific network preinit config b41d154f50 rules.mk: export TMPDIR e719a08cc1 usbutils: Update usb.ids file to latest 4cfcfecf76 hostapd: remove unused local var declaration 796bc21023 hostapd: don't set htmode for wpa_supplicant 50147d41b9 libnl-tiny: use fixed message size instead of using the page size 0625814426 packages: nvram: fix memory leak in _nvram_free 0f175041ad mac80211: don't pass the hostapd ctrl iface in adhoc 05f0fac189 hostapd: explicitly set beacon interval for wpa_supplicant 7f78a86254 hostapd: set mcast_rate in mesh mode c315843f88 igmpproxy: remove firewall rules when service is stopped 91e48304a9 openvpn: add support to start/stop single instances e5c284bb81 package/elfutils: add CFLAG -Wno-format-nonliteral dde29b2b01 tools/coreutils: install readlink 2f75641b1f uhttpd: fix query string handling 79024cd3be openssl: fix cryptodev config dependency bead60c2d3 uqmi: replace legacy command invoke with newer type 5872c19c63 procd: Always tell cmake whether to include seccomp support or not cd901ef1a6 libunwind: disable building with ssp 1aedf2f149 tools/squashfs: use host cflags 7fa70027d4 ppp: make the patches apply correctly again d63eb474b3 ppp: fix compile warning 9bd667fc24 dropbear: fix PKG_CONFIG_DEPENDS 9d1bfb8f4d dropbear: make ssh compression support configurable ed4f4f1a8e procd: Install seccomp-trace symlink 77e79b2dd0 openvpn: update to 2.4.4 5beb0abc83 build: remove @ as it's causing an error eff1f7e7ef usbutils: avoid duplicating the git revision 9cf371c1f4 dnsmasq: Pass TARGET_CPPFLAGS to Makefile 2f80d84638 wwan: json format in some modem definitions c61cf4a447 base-files: add /etc/profile.d to conffiles bdc998c696 base-files: order conffiles alphabetically c58e824acc procd: mdns: Support txt values with spaces aaa73fea36 ar71xx: fix switch port numbering on RB750r2 and RB750UPr2 b69ea02a00 scripts/dowload.pl: use glob to expand target dir 80a22eee4b samba36: Remove syslog and load printers lines. 71797b6eca samba36: Don't resolve interfaces. 1458bc2d9c samba36: Remove guest ok since LuCI configures it. f0065554b2 config: make CONFIG_ALL_* select other CONIFG_ALL_* options 2b88309335 nvram: add help message for nvram magic not found 118a2ea0bc nvram: improve argument check when program start c446ee4ad4 nvram: add usage() function 9e84d333b1 nvram: fix memory leak 3b6b892d67 ca-certificates: Update to 20170717 23b9dc2eca base-files: drop unused preinit_echo function ca7c9db47f tools/pkg-config: Update to 0.29.2 75d8127338 base-files: suppress uci not found output in login.sh b616aa6db7 scripts/package-metadata.pl: inhibit compile deps on missing build types 2e1a87a3e1 build: bundle-libraries.sh: do not override argv[0] in inner exec calls a37f8b0c6e samba36: Remove legacy options 89c4f47caa scripts/download.pl: Adjust URLs 338968a170 build: fix invocation of bundled ld.so in SDK and Imagebuilder 0a976262a5 kmod-sched-cake: drop maintainer 610e2afdcc zlib: use default Build/Configure rule cf11a41af6 lzo: use default Build/Configure rule c86490605c netfilter: add iptables-mod-rpfilter package ea23ba9a25 bzip2: add symlink to binary d413c75d24 dropbear: add option to set max auth tries 8693ab5152 dropbear: server support option '-T' max auth tries 0e6a6c8487 hostapd: configure NAS ID regardless of encryption ef3649d90e hostapd: add acct_interval option 3027a68093 valgrind: bump to 3.13.0 3129db331c busybox: backport 'ip rule suppress_{prefixlength, ifgroup}' 86158ad37d libunwind: update to version 1.2.1 59004433e9 imagebuilder: don't rewrite package list output 74eeb07817 imagebuilder: clean package_list 7f3f2bc03b build: remove old kernel-headers build directories c7234e3036 imagebuilder: add package_list function 9c3e4b5434 base-files: board.json's switch reset means existence, not argument 7d1f4073ce gdb: remove Build/Compile rule ; default one works 9a99039989 rb532: enable high-res timers, refresh kernel config e802cbfc25 xburst: enable high-res timers, refresh kernel config e01367e3af kernel: add CONFIG_SCHED_HRTICK=y to the generic config 6e1e2e7b96 package/grub2: update to 2.02 13a5568d6e ip17xx: correct aneg_done return value 816fb3433b mvswitch: fix autonegotiation issue 41ee45428b ppp: propagate master firewall zone to dynamic slave interface a44c44077e usbmode: remove devices with unsupported modes e8bd0a606a tar: override symlink permissions 59a1c1675d tools/sparse: Update to snapshot 2017-03-31 a6e5943a2a elfutils: Pass -Wno-unused-result to silence warnings as errors 08070221ed gcc: fix documentation entries added by 910-mbsd_multi.patch ef43c04c34 scripts/download.pl: print the command used to download files 6e09b20563 tools/libressl: update to 2.5.4 08be74f699 tools/isl: update to 0.18 26ea59cd01 lldpd: bump to 0.9.7 444b64f533 libunwind: update to 1.2 e5612d6640 lantiq: spi: double time out tolerance 28c350f2f0 base-files: fix default procd reload 108a42bcba ramips: support jumbo frame on mt7621 up to 2k 8d4c047dd1 lldpd: drop specific respawn params [use system-wide] 8ee15ed61a elfutils: bump to 0.169 9754a9c606 devel/trace-cmd: Update to 2.6.1 79def69047 comgt-3g: enable modem before to setpin 070463fb61 devel/strace: Update to 4.16 67caf6bbce network/utils/ipset: Update to 6.32 f0a493160c mac80211: gracefully handle preexisting VIF 827f108b42 scripts: Probe external toolchains for libthread-db bb9eb2c96e build: new fixes for symlinked .config handling 4607007a86 build: allow val.% targets to bypass the prepare steps 90575776b7 x86: keep /boot mounted for kexec 6b9eb0c73a hostapd: fix reload frequency change patch 040ff6fdbd build: remove absolute path to perl and replace with /usr/bin/env perl 98588273b1 kernel: allow selecting RTC drivers on targets without explicit RTC support f30114c7c4 dropbear: fix procd interface trigger install 3e7f191008 include/packages-defaults.mk: Remove LARGEFILE option a1392e08c5 netifd: return error status in reload_service 10182cb2c6 grub2: update to 2.02~rc2 38ea91ea9a base-files: use restart if no reload hook for service 9b24d99b91 iproute2: add libgenl.h and ll_map.h to InstallDev section 94597229c3 busybox: fix installation of cron and ntpd scripts in the default config 9ce30f7175 kernel: move initramfs's init script out of base-files c8a0f3aa29 target.mk: check that CPU_TYPE has known CPU_CFLAGS mapping 977db9f08a scripts/download.pl: fix error message on hash mismatch 7fb03d9610 netifd: fix fw3 warnings in dhcp script f69d73f1b2 build: allow specifying flow-control to grub on serial console 91821c8c0b kexec-tools: get kexec running on MUSL and x86 hardware affff02798 busybox: don't install NTP scripts if NTP isn't configured 7ccfa826ee ar8327: Add workarounds for AR8337 switch. 0aafbf6c00 build: fix STAMP_PREPARED with quilt 80304ace58 lantiq: remove lantiq_board_model, it is unused 8be5b12ea1 lantiq: remove lantiq_board_name, use the generic function instead 0f0d742ae3 lantiq: move lantiq_board_detect() to 03_preinit_board.sh f173464f13 base-files: add generic board_name function to functions.sh 62a8252a0f mac80211: Fix race condition leading to wifi interfaces not coming up at boot sometimes. 5f03ce1213 scripts: only generate config from feature flag if fully match f7f69130e5 lzo: Update to 2.10 6ba0cc14e9 tools/coreutils: Update to 8.27 100553d605 tools/libressl: Update to 2.5.1 25fe034861 tools/dosfstools: Update to 4.1 ed4976d884 tools/sed: Update to 4.4 7263e3cdca lldpd: bump to 0.9.6 3225fbfcbf x86: image: drop duplicated copy of bzImage into vmlinuz 37aae44a47 libnl: Fix building with uClibc 950439234e toolchain: add musl libc.so to external toolchain cfb5a550e4 iwcap: fix handling kill signal during dump 1411493569 x86: image: drop unneeded grub call 58e0c0feec x86: image: drop unused ROOTDELAY variable 05f0b8d18b ccache: update to 3.3.4 15efa09507 base-files: add submission service port 56b9f0ffc0 procd.sh: use parameterized respawn values 28c9731984 toolchain: Allow external toolchains to specify libthread-db 2dd9b62f82 rssileds: Fix build with external toolchains 2d31ec4c1b adb: Also pass TARGET_CPPFLAGS ec395eeb17 swconfig: Link with libubox c6dd059a9a px5g: Fix TARGET_LDFLAGS and add TARGET_CPPFLAGS 12b811a609 omcproxy: Update to latest HEAD 1e3ff02ea5 bsdiff: Also pass down TARGET_CPPFLAGS 051a33e7c9 thc-ipv6: Allow overriding CFLAGS a91d8dd162 tools/m4: update 1.4.18 acd481470c build: get rid of FIND_L from host.mk 11cd6077ba build: unsilence move command 903a404663 build: skip headers install and config on make target/linux/prepare a7fc27edce build: make Host/Install/Default use Host/Compile/Default with an extra argument 94f079e338 build: Pass -iremap gcc option as a single argument 3056122bf7 toolchain/gcc: parallelize make install a33b0ced78 toolchain/musl: parallelize make install 1d0f7e3136 imagebuilder: make submake invocations less verbose bdb05f5ef5 gcc: remove obsolete uclibc patch 90a43e508e toolchain/gcc: reduce source directory size by about 420 MB 82615922b0 bcm53xx: suppress osafeloader info error messages during flashing c566a9e563 toolchain: Broaden the executable loader pattern 3387158e45 build: Suffix build directory with _$(LIBC) for external toolchains 2428b6d6b6 tools/sstrip: Fix compile under standard linux. 50b478956a openssl: update to 1.0.2n 135aa3ba7e base-files: upgrade: make get_partitions() endian agnostic 207bcea1de cyassl: update to wolfssl 3.12.2 (1 CVE) 3bb881862b mdadm: fix parameter quoting 6c1b6e8221 mdadm: Fix config generation 4fc0fb3ca3 mdadm: Do not check RUN_DIR 157b892994 kernel: remove out of tree direct-io disable hack adc9f935c3 utils/mdadm: Update to 4.0 8bf67f63b9 mdadm: extend uci config support 4af145ea67 rules.mk: make PKG_CONFIG_DEPENDS properly track string values 2b664499cd kernel: bump 4.4 to 4.4.103 for 17.01 ed82c52a4a uqmi: also try newer pin verification b41a2e646e opkg: bump to version 2017-12-08 f5f5f583f9 hostapd: backport fix for wnm_sleep_mode=0 19ebc19f54 hostapd: Expose the tdls_prohibit option to UCI 3590316121 dnsmasq: backport infinite dns retries fix 060b7f1fbb curl: apply CVE 2017-8816 and 2017-8817 security patches 4b5861c47d mt76: update to the latest version f19d47f848 tools: patch various gnu tools for macOS 10.13 e5a10bc0fc samba36: backport an upstream fix for an information leak (CVE-2017-15275) d77fe9219a ramips: backport MT7628 pinmux fixes 9601e6a0e2 ramips: add missing reset button for Nexx WT1520 0946ec0f46 wireguard: bump to snapshot 20171127
2018-01-09 15:34:34 +00:00
index 454abe6a5005621967dd96e0282e7bce2a0b127e..86ac949bca12561536ce2c8adb190eb004c162e4 100755
--- a/target/linux/ar71xx/base-files/etc/board.d/02_network
+++ b/target/linux/ar71xx/base-files/etc/board.d/02_network
modules: update LEDE c3cdc53164 ag71xx: Fix rx ring buffer stall on small packets flood on qca956x and qca953x. e07ee06aad ar71xx: QCA956X: add missing register 7bc25dfa63 mvebu: fix mvneta build with Linux 4.4.110 541a1a7ff5 lantiq: activate noise margin delta for VDSL too dea8979a81 Lantiq: make possible to tweak DSL SRN from UCI 9934231670 libubox: update to latest lede-17.01 git HEAD 7f5a040359 kernel: update kernel 4.4 to version 4.4.110 ddedcb19e5 brcm47xx: relocate the stack in loader da43069f5b brcm47xx: relocate loader to higher address f19416ae9d fstools: backport fix from master branch 55c23e44f4 procd: update to latest git HEAD ffbbcc9b34 brcm47xx: image: build firmware for Asus WL-500g Deluxe 0426596453 Revert "iptables: fix nftables compile issue (FS#711)" da126d557c iptables: fix nftables compile issue (FS#711) 473e994571 rpcd: backport version 2017-12-07 from master b833944eb2 uci: update to HEAD of lede-17.01 branch dca4dfacf2 iproute2: cake: fix patch format error ee55629a30 kernel: bump 4.4 to 4.4.108 for 17.01 c4e9487cf5 iproute2: cake: support new operating modes for 17.01 4f1dca9eca kmod-sched-cake: bump to latest bake of cake for 17.01 959a49dc15 ramips: fix widora neo diag led a1908023cc base-files: fix logic when to show failsafe banner 1c9299877b base-files: set FAILSAFE in /etc/profile when /tmp/.failsafe exists 2603c85060 wireguard: bump to 20171221 f8a441e020 kernel: bump 4.4 to 4.4.107 ceea0ac25d wireguard: bump to 20171211 ebb54740c7 brcm47xx: remove target specific network preinit config b41d154f50 rules.mk: export TMPDIR e719a08cc1 usbutils: Update usb.ids file to latest 4cfcfecf76 hostapd: remove unused local var declaration 796bc21023 hostapd: don't set htmode for wpa_supplicant 50147d41b9 libnl-tiny: use fixed message size instead of using the page size 0625814426 packages: nvram: fix memory leak in _nvram_free 0f175041ad mac80211: don't pass the hostapd ctrl iface in adhoc 05f0fac189 hostapd: explicitly set beacon interval for wpa_supplicant 7f78a86254 hostapd: set mcast_rate in mesh mode c315843f88 igmpproxy: remove firewall rules when service is stopped 91e48304a9 openvpn: add support to start/stop single instances e5c284bb81 package/elfutils: add CFLAG -Wno-format-nonliteral dde29b2b01 tools/coreutils: install readlink 2f75641b1f uhttpd: fix query string handling 79024cd3be openssl: fix cryptodev config dependency bead60c2d3 uqmi: replace legacy command invoke with newer type 5872c19c63 procd: Always tell cmake whether to include seccomp support or not cd901ef1a6 libunwind: disable building with ssp 1aedf2f149 tools/squashfs: use host cflags 7fa70027d4 ppp: make the patches apply correctly again d63eb474b3 ppp: fix compile warning 9bd667fc24 dropbear: fix PKG_CONFIG_DEPENDS 9d1bfb8f4d dropbear: make ssh compression support configurable ed4f4f1a8e procd: Install seccomp-trace symlink 77e79b2dd0 openvpn: update to 2.4.4 5beb0abc83 build: remove @ as it's causing an error eff1f7e7ef usbutils: avoid duplicating the git revision 9cf371c1f4 dnsmasq: Pass TARGET_CPPFLAGS to Makefile 2f80d84638 wwan: json format in some modem definitions c61cf4a447 base-files: add /etc/profile.d to conffiles bdc998c696 base-files: order conffiles alphabetically c58e824acc procd: mdns: Support txt values with spaces aaa73fea36 ar71xx: fix switch port numbering on RB750r2 and RB750UPr2 b69ea02a00 scripts/dowload.pl: use glob to expand target dir 80a22eee4b samba36: Remove syslog and load printers lines. 71797b6eca samba36: Don't resolve interfaces. 1458bc2d9c samba36: Remove guest ok since LuCI configures it. f0065554b2 config: make CONFIG_ALL_* select other CONIFG_ALL_* options 2b88309335 nvram: add help message for nvram magic not found 118a2ea0bc nvram: improve argument check when program start c446ee4ad4 nvram: add usage() function 9e84d333b1 nvram: fix memory leak 3b6b892d67 ca-certificates: Update to 20170717 23b9dc2eca base-files: drop unused preinit_echo function ca7c9db47f tools/pkg-config: Update to 0.29.2 75d8127338 base-files: suppress uci not found output in login.sh b616aa6db7 scripts/package-metadata.pl: inhibit compile deps on missing build types 2e1a87a3e1 build: bundle-libraries.sh: do not override argv[0] in inner exec calls a37f8b0c6e samba36: Remove legacy options 89c4f47caa scripts/download.pl: Adjust URLs 338968a170 build: fix invocation of bundled ld.so in SDK and Imagebuilder 0a976262a5 kmod-sched-cake: drop maintainer 610e2afdcc zlib: use default Build/Configure rule cf11a41af6 lzo: use default Build/Configure rule c86490605c netfilter: add iptables-mod-rpfilter package ea23ba9a25 bzip2: add symlink to binary d413c75d24 dropbear: add option to set max auth tries 8693ab5152 dropbear: server support option '-T' max auth tries 0e6a6c8487 hostapd: configure NAS ID regardless of encryption ef3649d90e hostapd: add acct_interval option 3027a68093 valgrind: bump to 3.13.0 3129db331c busybox: backport 'ip rule suppress_{prefixlength, ifgroup}' 86158ad37d libunwind: update to version 1.2.1 59004433e9 imagebuilder: don't rewrite package list output 74eeb07817 imagebuilder: clean package_list 7f3f2bc03b build: remove old kernel-headers build directories c7234e3036 imagebuilder: add package_list function 9c3e4b5434 base-files: board.json's switch reset means existence, not argument 7d1f4073ce gdb: remove Build/Compile rule ; default one works 9a99039989 rb532: enable high-res timers, refresh kernel config e802cbfc25 xburst: enable high-res timers, refresh kernel config e01367e3af kernel: add CONFIG_SCHED_HRTICK=y to the generic config 6e1e2e7b96 package/grub2: update to 2.02 13a5568d6e ip17xx: correct aneg_done return value 816fb3433b mvswitch: fix autonegotiation issue 41ee45428b ppp: propagate master firewall zone to dynamic slave interface a44c44077e usbmode: remove devices with unsupported modes e8bd0a606a tar: override symlink permissions 59a1c1675d tools/sparse: Update to snapshot 2017-03-31 a6e5943a2a elfutils: Pass -Wno-unused-result to silence warnings as errors 08070221ed gcc: fix documentation entries added by 910-mbsd_multi.patch ef43c04c34 scripts/download.pl: print the command used to download files 6e09b20563 tools/libressl: update to 2.5.4 08be74f699 tools/isl: update to 0.18 26ea59cd01 lldpd: bump to 0.9.7 444b64f533 libunwind: update to 1.2 e5612d6640 lantiq: spi: double time out tolerance 28c350f2f0 base-files: fix default procd reload 108a42bcba ramips: support jumbo frame on mt7621 up to 2k 8d4c047dd1 lldpd: drop specific respawn params [use system-wide] 8ee15ed61a elfutils: bump to 0.169 9754a9c606 devel/trace-cmd: Update to 2.6.1 79def69047 comgt-3g: enable modem before to setpin 070463fb61 devel/strace: Update to 4.16 67caf6bbce network/utils/ipset: Update to 6.32 f0a493160c mac80211: gracefully handle preexisting VIF 827f108b42 scripts: Probe external toolchains for libthread-db bb9eb2c96e build: new fixes for symlinked .config handling 4607007a86 build: allow val.% targets to bypass the prepare steps 90575776b7 x86: keep /boot mounted for kexec 6b9eb0c73a hostapd: fix reload frequency change patch 040ff6fdbd build: remove absolute path to perl and replace with /usr/bin/env perl 98588273b1 kernel: allow selecting RTC drivers on targets without explicit RTC support f30114c7c4 dropbear: fix procd interface trigger install 3e7f191008 include/packages-defaults.mk: Remove LARGEFILE option a1392e08c5 netifd: return error status in reload_service 10182cb2c6 grub2: update to 2.02~rc2 38ea91ea9a base-files: use restart if no reload hook for service 9b24d99b91 iproute2: add libgenl.h and ll_map.h to InstallDev section 94597229c3 busybox: fix installation of cron and ntpd scripts in the default config 9ce30f7175 kernel: move initramfs's init script out of base-files c8a0f3aa29 target.mk: check that CPU_TYPE has known CPU_CFLAGS mapping 977db9f08a scripts/download.pl: fix error message on hash mismatch 7fb03d9610 netifd: fix fw3 warnings in dhcp script f69d73f1b2 build: allow specifying flow-control to grub on serial console 91821c8c0b kexec-tools: get kexec running on MUSL and x86 hardware affff02798 busybox: don't install NTP scripts if NTP isn't configured 7ccfa826ee ar8327: Add workarounds for AR8337 switch. 0aafbf6c00 build: fix STAMP_PREPARED with quilt 80304ace58 lantiq: remove lantiq_board_model, it is unused 8be5b12ea1 lantiq: remove lantiq_board_name, use the generic function instead 0f0d742ae3 lantiq: move lantiq_board_detect() to 03_preinit_board.sh f173464f13 base-files: add generic board_name function to functions.sh 62a8252a0f mac80211: Fix race condition leading to wifi interfaces not coming up at boot sometimes. 5f03ce1213 scripts: only generate config from feature flag if fully match f7f69130e5 lzo: Update to 2.10 6ba0cc14e9 tools/coreutils: Update to 8.27 100553d605 tools/libressl: Update to 2.5.1 25fe034861 tools/dosfstools: Update to 4.1 ed4976d884 tools/sed: Update to 4.4 7263e3cdca lldpd: bump to 0.9.6 3225fbfcbf x86: image: drop duplicated copy of bzImage into vmlinuz 37aae44a47 libnl: Fix building with uClibc 950439234e toolchain: add musl libc.so to external toolchain cfb5a550e4 iwcap: fix handling kill signal during dump 1411493569 x86: image: drop unneeded grub call 58e0c0feec x86: image: drop unused ROOTDELAY variable 05f0b8d18b ccache: update to 3.3.4 15efa09507 base-files: add submission service port 56b9f0ffc0 procd.sh: use parameterized respawn values 28c9731984 toolchain: Allow external toolchains to specify libthread-db 2dd9b62f82 rssileds: Fix build with external toolchains 2d31ec4c1b adb: Also pass TARGET_CPPFLAGS ec395eeb17 swconfig: Link with libubox c6dd059a9a px5g: Fix TARGET_LDFLAGS and add TARGET_CPPFLAGS 12b811a609 omcproxy: Update to latest HEAD 1e3ff02ea5 bsdiff: Also pass down TARGET_CPPFLAGS 051a33e7c9 thc-ipv6: Allow overriding CFLAGS a91d8dd162 tools/m4: update 1.4.18 acd481470c build: get rid of FIND_L from host.mk 11cd6077ba build: unsilence move command 903a404663 build: skip headers install and config on make target/linux/prepare a7fc27edce build: make Host/Install/Default use Host/Compile/Default with an extra argument 94f079e338 build: Pass -iremap gcc option as a single argument 3056122bf7 toolchain/gcc: parallelize make install a33b0ced78 toolchain/musl: parallelize make install 1d0f7e3136 imagebuilder: make submake invocations less verbose bdb05f5ef5 gcc: remove obsolete uclibc patch 90a43e508e toolchain/gcc: reduce source directory size by about 420 MB 82615922b0 bcm53xx: suppress osafeloader info error messages during flashing c566a9e563 toolchain: Broaden the executable loader pattern 3387158e45 build: Suffix build directory with _$(LIBC) for external toolchains 2428b6d6b6 tools/sstrip: Fix compile under standard linux. 50b478956a openssl: update to 1.0.2n 135aa3ba7e base-files: upgrade: make get_partitions() endian agnostic 207bcea1de cyassl: update to wolfssl 3.12.2 (1 CVE) 3bb881862b mdadm: fix parameter quoting 6c1b6e8221 mdadm: Fix config generation 4fc0fb3ca3 mdadm: Do not check RUN_DIR 157b892994 kernel: remove out of tree direct-io disable hack adc9f935c3 utils/mdadm: Update to 4.0 8bf67f63b9 mdadm: extend uci config support 4af145ea67 rules.mk: make PKG_CONFIG_DEPENDS properly track string values 2b664499cd kernel: bump 4.4 to 4.4.103 for 17.01 ed82c52a4a uqmi: also try newer pin verification b41a2e646e opkg: bump to version 2017-12-08 f5f5f583f9 hostapd: backport fix for wnm_sleep_mode=0 19ebc19f54 hostapd: Expose the tdls_prohibit option to UCI 3590316121 dnsmasq: backport infinite dns retries fix 060b7f1fbb curl: apply CVE 2017-8816 and 2017-8817 security patches 4b5861c47d mt76: update to the latest version f19d47f848 tools: patch various gnu tools for macOS 10.13 e5a10bc0fc samba36: backport an upstream fix for an information leak (CVE-2017-15275) d77fe9219a ramips: backport MT7628 pinmux fixes 9601e6a0e2 ramips: add missing reset button for Nexx WT1520 0946ec0f46 wireguard: bump to snapshot 20171127
2018-01-09 15:34:34 +00:00
@@ -386,6 +386,7 @@ ar71xx_setup_interfaces()
ucidef_set_interface_wan "eth0"
ucidef_set_interface_raw "wlan" "wlan0" "dhcp"
;;
+ archer-c7-v4|\
tl-wdr4300|\
tl-wr1041n-v2)
ucidef_add_switch "switch0" \
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 61db387c9ecefd7090c25a5f5d75fdbf65a44d65..97372bed0ea2fadfab10f22916a1e0d6a9c65725 100644
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -51,6 +51,7 @@ get_status_led() {
status_led="ap135:green:status"
;;
archer-c25-v1|\
+ archer-c7-v4|\
mr12|\
mr16|\
nbg6616|\
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 68f90de802ddd18e09a1da39c0d56292eea9489c..96b8f6b9a4bdd6a1609a819e72ade315bccfb3c0 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
@@ -92,6 +92,7 @@ case "$FIRMWARE" in
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
;;
+ archer-c7-v4|\
archer-c25-v1|\
tl-wdr6500-v2)
ath10kcal_extract "art" 20480 2116
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
2018-02-03 13:22:48 +00:00
index 8f8158bac8a28db4f4f15ce5c37f48a21084dc03..c32894d95b6b09b4b8b59ba64057c23e71b9f656 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
2018-02-03 13:22:48 +00:00
@@ -469,6 +469,9 @@ ar71xx_board_detect() {
*"Archer C5")
name="archer-c5"
;;
+ *"Archer C7 v4")
+ name="archer-c7-v4"
+ ;;
*"Archer C7")
name="archer-c7"
;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index e748a2559cdb3a0ca6618429b0f613a656e39388..d414af969912894574e73e286ed5a3998532d34e 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -207,6 +207,7 @@ platform_check_image() {
ap132|\
ap90q|\
archer-c25-v1|\
+ archer-c7-v4|\
bullet-m|\
c-55|\
carambola2|\
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
index 7ad5419f51ec9909d8b59f33178221a7d81ec184..0a25294c40b5e2d3be825554ec7246a50b9c029b 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
+++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
@@ -1247,6 +1247,7 @@ config ATH79_MACH_ARCHER_C25_V1
config ATH79_MACH_ARCHER_C7
bool "TP-LINK Archer C5/C7/TL-WDR4900 v2 board support"
select SOC_QCA955X
+ select SOC_QCA956X
select ATH79_DEV_AP9X_PCI if PCI
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Makefile b/target/linux/ar71xx/files/arch/mips/ath79/Makefile
index 3365a43ce16fc77b3212b39b92081efe678e8803..a0c73550eb0d5bf07ee731171be9e5ef9ff073e7 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/Makefile
+++ b/target/linux/ar71xx/files/arch/mips/ath79/Makefile
@@ -58,6 +58,7 @@ obj-$(CONFIG_ATH79_MACH_AP90Q) += mach-ap90q.o
obj-$(CONFIG_ATH79_MACH_AP96) += mach-ap96.o
obj-$(CONFIG_ATH79_MACH_ARCHER_C25_V1) += mach-archer-c25-v1.o
obj-$(CONFIG_ATH79_MACH_ARCHER_C7) += mach-archer-c7.o
+obj-$(CONFIG_ATH79_MACH_ARCHER_C7) += mach-archer-c7-v4.o
obj-$(CONFIG_ATH79_MACH_ARDUINO_YUN) += mach-arduino-yun.o
obj-$(CONFIG_ATH79_MACH_AW_NR580) += mach-aw-nr580.o
obj-$(CONFIG_ATH79_MACH_BHR_4GRV2) += mach-bhr-4grv2.o
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c7-v4.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c7-v4.c
new file mode 100644
index 0000000000000000000000000000000000000000..64955c79945c0b2c28d5a93be6e45662200e60ed
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c7-v4.c
@@ -0,0 +1,260 @@
+
+/*
+ * Atheros ARCHER_C7 reference board support
+ *
+ * Copyright (c) 2017 Felix Fietkau <nbd@nbd.name>
+ * Copyright (c) 2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012 Gabor Juhos <juhosg@openwrt.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+#include <linux/platform_device.h>
+#include <linux/ath9k_platform.h>
+#include <linux/ar8216_platform.h>
+#include <linux/proc_fs.h>
+#include <linux/gpio.h>
+#include <linux/spi/spi_gpio.h>
+#include <linux/spi/74x164.h>
+
+#include <asm/mach-ath79/ar71xx_regs.h>
+
+#include "common.h"
+#include "dev-m25p80.h"
+#include "machtypes.h"
+#include "pci.h"
+#include "dev-eth.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+#include "dev-spi.h"
+#include "dev-usb.h"
+#include "dev-wmac.h"
+
+
+#define ARCHER_C7_GPIO_SHIFT_OE 1
+#define ARCHER_C7_GPIO_SHIFT_SER 14
+#define ARCHER_C7_GPIO_SHIFT_SRCLK 15
+#define ARCHER_C7_GPIO_SHIFT_RCLK 16
+#define ARCHER_C7_GPIO_SHIFT_SRCLR 21
+
+#define ARCHER_C7_GPIO_BTN_RESET 5
+#define ARCHER_C7_GPIO_BTN_WPS_WIFI 2
+
+#define ARCHER_C7_GPIO_LED_WLAN5 9
+#define ARCHER_C7_GPIO_LED_POWER 6
+#define ARCHER_C7_GPIO_LED_USB1 7
+#define ARCHER_C7_GPIO_LED_USB2 8
+
+#define ARCHER_C7_74HC_GPIO_BASE QCA956X_GPIO_COUNT
+#define ARCHER_C7_GPIO_LED_WPS (ARCHER_C7_74HC_GPIO_BASE + 0)
+#define ARCHER_C7_GPIO_LED_LAN1 (ARCHER_C7_74HC_GPIO_BASE + 1)
+#define ARCHER_C7_GPIO_LED_LAN2 (ARCHER_C7_74HC_GPIO_BASE + 2)
+#define ARCHER_C7_GPIO_LED_LAN3 (ARCHER_C7_74HC_GPIO_BASE + 3)
+#define ARCHER_C7_GPIO_LED_LAN4 (ARCHER_C7_74HC_GPIO_BASE + 4)
+#define ARCHER_C7_GPIO_LED_WAN_GREEN (ARCHER_C7_74HC_GPIO_BASE + 5)
+#define ARCHER_C7_GPIO_LED_WAN_AMBER (ARCHER_C7_74HC_GPIO_BASE + 6)
+#define ARCHER_C7_GPIO_LED_WLAN2 (ARCHER_C7_74HC_GPIO_BASE + 7)
+
+#define ARCHER_C7_KEYS_POLL_INTERVAL 20 /* msecs */
+#define ARCHER_C7_KEYS_DEBOUNCE_INTERVAL (3 * ARCHER_C7_KEYS_POLL_INTERVAL)
+
+#define ARCHER_C7_MAC0_OFFSET 0
+#define ARCHER_C7_MAC1_OFFSET 6
+#define ARCHER_C7_WMAC_CALDATA_OFFSET 0x1000
+
+#define ARCHER_C7_GPIO_MDC 3
+#define ARCHER_C7_GPIO_MDIO 4
+
+static struct spi_gpio_platform_data archer_c7_v4_spi_data = {
+ .sck = ARCHER_C7_GPIO_SHIFT_SRCLK,
+ .miso = SPI_GPIO_NO_MISO,
+ .mosi = ARCHER_C7_GPIO_SHIFT_SER,
+ .num_chipselect = 1,
+};
+
+static u8 archer_c7_v4_ssr_initdata __initdata = 0xff;
+
+static struct gen_74x164_chip_platform_data archer_c7_v4_ssr_data = {
+ .base = ARCHER_C7_74HC_GPIO_BASE,
+ .num_registers = 1,
+ .init_data = &archer_c7_v4_ssr_initdata,
+};
+
+static struct platform_device archer_c7_v4_spi_device = {
+ .name = "spi_gpio",
+ .id = 1,
+ .dev = {
+ .platform_data = &archer_c7_v4_spi_data,
+ },
+};
+
+static struct spi_board_info archer_c7_v4_spi_info[] = {
+ {
+ .bus_num = 1,
+ .chip_select = 0,
+ .max_speed_hz = 10000000,
+ .modalias = "74x164",
+ .platform_data = &archer_c7_v4_ssr_data,
+ .controller_data = (void *) ARCHER_C7_GPIO_SHIFT_RCLK,
+ },
+};
+
+static struct gpio_led archer_c7_v4_leds_gpio[] __initdata = {
+ {
+ .name = "archer-c7-v4:green:power",
+ .gpio = ARCHER_C7_GPIO_LED_POWER,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:wps",
+ .gpio = ARCHER_C7_GPIO_LED_WPS,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:wlan2g",
+ .gpio = ARCHER_C7_GPIO_LED_WLAN2,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:wlan5g",
+ .gpio = ARCHER_C7_GPIO_LED_WLAN5,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:lan1",
+ .gpio = ARCHER_C7_GPIO_LED_LAN1,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:lan2",
+ .gpio = ARCHER_C7_GPIO_LED_LAN2,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:lan3",
+ .gpio = ARCHER_C7_GPIO_LED_LAN3,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:lan4",
+ .gpio = ARCHER_C7_GPIO_LED_LAN4,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:wan",
+ .gpio = ARCHER_C7_GPIO_LED_WAN_GREEN,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:amber:wan",
+ .gpio = ARCHER_C7_GPIO_LED_WAN_AMBER,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:usb1",
+ .gpio = ARCHER_C7_GPIO_LED_USB1,
+ .active_low = 1,
+ }, {
+ .name = "archer-c7-v4:green:usb2",
+ .gpio = ARCHER_C7_GPIO_LED_USB2,
+ .active_low = 1,
+ },
+};
+
+static struct gpio_keys_button archer_c7_v4_gpio_keys[] __initdata = {
+ {
+ .desc = "WPS and WIFI button",
+ .type = EV_KEY,
+ .code = KEY_WPS_BUTTON,
+ .debounce_interval = ARCHER_C7_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = ARCHER_C7_GPIO_BTN_WPS_WIFI,
+ .active_low = 1,
+ },
+ {
+ .desc = "Reset button",
+ .type = EV_KEY,
+ .code = KEY_RESTART,
+ .debounce_interval = ARCHER_C7_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = ARCHER_C7_GPIO_BTN_RESET,
+ .active_low = 1,
+ },
+};
+
+static struct ar8327_pad_cfg archer_c7_v4_ar8337_pad0_cfg = {
+ .mode = AR8327_PAD_MAC_SGMII,
+ .sgmii_delay_en = true,
+};
+
+static struct ar8327_platform_data archer_c7_v4_ar8337_data = {
+ .pad0_cfg = &archer_c7_v4_ar8337_pad0_cfg,
+ .port0_cfg = {
+ .force_link = 1,
+ .speed = AR8327_PORT_SPEED_1000,
+ .duplex = 1,
+ .txpause = 1,
+ .rxpause = 1,
+ },
+};
+
+static struct mdio_board_info archer_c7_v4_mdio0_info[] = {
+ {
+ .bus_id = "ag71xx-mdio.0",
+ .phy_addr = 0,
+ .platform_data = &archer_c7_v4_ar8337_data,
+ },
+};
+
+
+static void __init archer_c7_v4_setup(void)
+{
+ u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
+ u8 *mac = (u8 *) KSEG1ADDR(0x1ff00008);
+
+ ath79_register_m25p80(NULL);
+
+ spi_register_board_info(archer_c7_v4_spi_info,
+ ARRAY_SIZE(archer_c7_v4_spi_info));
+
+ platform_device_register(&archer_c7_v4_spi_device);
+
+ gpio_request_one(ARCHER_C7_GPIO_SHIFT_OE,
+ GPIOF_OUT_INIT_LOW | GPIOF_EXPORT_DIR_FIXED,
+ "LED control");
+
+ gpio_request_one(ARCHER_C7_GPIO_SHIFT_SRCLR,
+ GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
+ "LED reset");
+
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(archer_c7_v4_leds_gpio),
+ archer_c7_v4_leds_gpio);
+
+ ath79_register_gpio_keys_polled(-1, ARCHER_C7_KEYS_POLL_INTERVAL,
+ ARRAY_SIZE(archer_c7_v4_gpio_keys),
+ archer_c7_v4_gpio_keys);
+
+ ath79_register_usb();
+
+ ath79_gpio_output_select(ARCHER_C7_GPIO_MDC, QCA956X_GPIO_OUT_MUX_GE0_MDC);
+ ath79_gpio_output_select(ARCHER_C7_GPIO_MDIO, QCA956X_GPIO_OUT_MUX_GE0_MDO);
+
+ ath79_register_mdio(0, 0x0);
+
+ mdiobus_register_board_info(archer_c7_v4_mdio0_info,
+ ARRAY_SIZE(archer_c7_v4_mdio0_info));
+
+ ath79_register_wmac(art + ARCHER_C7_WMAC_CALDATA_OFFSET, mac);
+ ath79_register_pci();
+
+ /* GMAC0 is connected to an AR8337 switch */
+ ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
+ ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_SGMII;
+ ath79_eth0_data.speed = SPEED_1000;
+ ath79_eth0_data.duplex = DUPLEX_FULL;
+ ath79_eth0_data.phy_mask = BIT(0);
+ ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
+ ath79_register_eth(0);
+}
+
+MIPS_MACHINE(ATH79_MACH_ARCHER_C7_V4, "ARCHER-C7-V4", "TP-LINK Archer C7 v4",
+ archer_c7_v4_setup);
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
index 9cb4a7f2e1df641232289721b676a9b0149c76e5..e4623fd08836d59ad4e79e96f02e75e502a55ca6 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
+++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
@@ -44,6 +44,7 @@ enum ath79_mach_type {
ATH79_MACH_ARCHER_C5, /* TP-LINK Archer C5 board */
ATH79_MACH_ARCHER_C7, /* TP-LINK Archer C7 board */
ATH79_MACH_ARCHER_C7_V2, /* TP-LINK Archer C7 V2 board */
+ ATH79_MACH_ARCHER_C7_V4, /* TP-LINK Archer C7 V4 board */
ATH79_MACH_ARDUINO_YUN, /* Yun */
ATH79_MACH_AW_NR580, /* AzureWave AW-NR580 */
ATH79_MACH_BHR_4GRV2, /* Buffalo BHR-4GRV2 */
diff --git a/target/linux/ar71xx/image/tp-link.mk b/target/linux/ar71xx/image/tp-link.mk
index 5be7cbfbd4ab7d73d679d52d2581459250e04302..27d6c73454aef96e5da47033ec664d2caffca1d5 100644
--- a/target/linux/ar71xx/image/tp-link.mk
+++ b/target/linux/ar71xx/image/tp-link.mk
@@ -298,6 +298,22 @@ define Device/archer-c7-v2
IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
endef
+define Device/archer-c7-v4
+ DEVICE_TITLE := TP-LINK Archer C7 v4
+ DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
+ BOARDNAME := ARCHER-C7-V4
+ TPLINK_BOARD_NAME := ARCHER-C7-V4
+ IMAGE_SIZE := 15104k
+ LOADER_TYPE := elf
+ KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
+ append-metadata | check-size $$$$(IMAGE_SIZE)
+ IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+ MTDPARTS := spi0.0:128k(factory-uboot)ro,128k(u-boot)ro,1536k(kernel),13568k(rootfs),960k(config)ro,64k(art)ro,15104k@0x40000(firmware)
+ SUPPORTED_DEVICES := archer-c7-v4
+endef
+
define Device/archer-c7-v2-il
$(Device/tplink-16mlzma)
DEVICE_TITLE := TP-LINK Archer C7 v2 IL
@@ -316,7 +332,7 @@ define Device/tl-wdr7500-v3
DEVICE_PROFILE := ARCHERC7
TPLINK_HWID := 0x75000003
endef
-TARGET_DEVICES += archer-c5-v1 archer-c7-v1 archer-c7-v2 archer-c7-v2-il tl-wdr7500-v3
+TARGET_DEVICES += archer-c5-v1 archer-c7-v1 archer-c7-v2 archer-c7-v2-il archer-c7-v4 tl-wdr7500-v3
define Device/tl-mr10u-v1
$(Device/tplink-4mlzma)
diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
index 478d5d8e9b43bbe37694732c138048c8fe8d807c..fec830c23ce6707755ddefc849f195872be1e877 100644
--- a/tools/firmware-utils/src/tplink-safeloader.c
+++ b/tools/firmware-utils/src/tplink-safeloader.c
@@ -376,6 +376,49 @@ static struct device_info boards[] = {
.last_sysupgrade_partition = "file-system"
},
+ /** Firmware layout for the C7 */
+ {
+ .id = "ARCHER-C7-V4",
+ .support_list =
+ "SupportList:\n"
+ "{product_name:Archer C7,product_ver:4.0.0,special_id:45550000}\n"
+ "{product_name:Archer C7,product_ver:4.0.0,special_id:55530000}\n"
+ "{product_name:Archer C7,product_ver:4.0.0,special_id:43410000}\n",
+ .support_trail = '\x00',
+ .soft_ver = "soft_ver:1.0.0\n",
+
+ /**
+ We use a bigger os-image partition than the stock images (and thus
+ smaller file-system), as our kernel doesn't fit in the stock firmware's
+ 1MB os-image.
+ */
+ .partitions = {
+ {"factory-boot", 0x00000, 0x20000},
+ {"fs-uboot", 0x20000, 0x20000},
+ {"os-image", 0x40000, 0x180000}, /* Stock: base 0x40000 size 0x120000 */
+ {"file-system", 0x1c0000, 0xd40000}, /* Stock: base 0x160000 size 0xda0000 */
+ {"default-mac", 0xf00000, 0x00200},
+ {"pin", 0xf00200, 0x00200},
+ {"device-id", 0xf00400, 0x00100},
+ {"product-info", 0xf00500, 0x0fb00},
+ {"soft-version", 0xf10000, 0x00100},
+ {"extra-para", 0xf11000, 0x01000},
+ {"support-list", 0xf12000, 0x0a000},
+ {"profile", 0xf1c000, 0x04000},
+ {"default-config", 0xf20000, 0x10000},
+ {"user-config", 0xf30000, 0x40000},
+ {"qos-db", 0xf70000, 0x40000},
+ {"certificate", 0xfb0000, 0x10000},
+ {"partition-table", 0xfc0000, 0x10000},
+ {"log", 0xfd0000, 0x20000},
+ {"radio", 0xff0000, 0x10000},
+ {NULL, 0, 0}
+ },
+
+ .first_sysupgrade_partition = "os-image",
+ .last_sysupgrade_partition = "file-system",
+ },
+
/** Firmware layout for the C9 */
{
.id = "ARCHERC9",
@@ -929,6 +972,9 @@ static void build_image(const char *output,
strcasecmp(info->id, "TLWR1043NV5") == 0) {
const char mdat[11] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00};
parts[5] = put_data("extra-para", mdat, 11);
+ } else if (strcasecmp(info->id, "ARCHER-C7-V4") == 0) {
+ const char mdat[11] = {0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0xca, 0x00, 0x01, 0x00, 0x00};
+ parts[5] = put_data("extra-para", mdat, 11);
}
size_t len;