difos/target/linux
Foica David 063e9047cc ath79: add support for TP-Link Deco M4R v1 and v2
This commit adds support for the TP-Link Deco M4R (it can also be M4,
TP-Link uses both names) v1 and v2. It is similar hardware-wise to the
Archer C6 v2. Software-wise it is very different. V2 has a bit different
layout from V1 but the chips are the same and the OEM firmware is the same
for both versions.

Specifications:
SoC: QCA9563-AL3A
RAM: Zentel A3R1GE40JBF
Wireless 2.4GHz: QCA9563-AL3A (main SoC)
Wireless 5GHz: QCA9886
Ethernet Switch: QCA8337N-AL3C
Flash: 16 MB SPI NOR

Flashing:

The device's bootloader only accepts images that are signed using
TP-Link's RSA key, therefore this way of flashing is not possible. The
device has a web GUI that should be accessible after setting up the device
using the app (it requires the app to set it up first because the web GUI
asks for the TP-Link account password) but for unknown reasons, the web
GUI also refuses custom images.

There is a debug firmware image that has been shared on the device's
OpenWrt forum thread that has telnet unlocked, which the bootloader will
accept because it is signed. It can be used to transfer an OpenWrt image
file over to the device and then be used with mtd to flash the device.

Pre-requisites:

- Debug firmware.
- A way of transferring the file to the router, you can use an FTP server
  as an example.
- Set a static IP of 192.168.0.2/255.255.255.0 on your computer.
- OpenWrt image.

Installation:

- Unplug your router and turn it upside down. Using a long and thin object
  like a SIM unlock tool, press and hold the reset button on the router and
  replug it. Keep holding it until the LED flashes yellow.
- Open 192.168.0.1. You should see the bootloader recovery's webpage.
  Choose the debug firmware that you downloaded and flash it. Wait until the
  router reboots (at this stage you can remove the static IP).

- Open a terminal window and connect to the router via telnet (the primary
  router should have a 192.168.0.1 IP address, secondary routers are
  different).
- Transfer the file over to the router, you can use curl to download it
  from the internet (use the insecure flag and make sure your source accepts
  insecure downloads) or from an FTP server.
- The router's default mtd partition scheme has kernel and rootfs
  separated. We can use dd to split the OpenWrt image file and flash it with
  mtd:

   dd if=openwrt.bin of=kernel.bin skip=0 count=8192 bs=256
   dd if=openwrt.bin of=rootfs.bin skip=8192 bs=256

- Once the images are ready, you have to flash the device using mtd
  (make sure to flash the correct partitions or you may be left with a
  hard bricked router):

   mtd write kernel.bin kernel
   mtd write rootfs.bin rootfs

- Flashing is done, reboot the device now.

Signed-off-by: Foica David <superh552@gmail.com>
2022-04-30 23:56:47 +02:00
..
apm821xx kernel: bump 5.10 to 5.10.111 2022-04-16 14:02:11 +02:00
archs38 kernel: delete Linux 5.4 config and patches 2022-03-21 11:36:30 +00:00
armvirt armvirt: add 5.15 as testing kernel 2022-04-09 19:31:46 +02:00
at91 kernel: bump 5.10 to 5.10.113 2022-04-30 21:27:45 +02:00
ath25 generic: 5.15: rework hack patch 2022-03-27 00:07:34 +00:00
ath79 ath79: add support for TP-Link Deco M4R v1 and v2 2022-04-30 23:56:47 +02:00
bcm27xx kernel: bump 5.10 to 5.10.113 2022-04-30 21:27:45 +02:00
bcm47xx kernel: delete Linux 5.4 config and patches 2022-03-21 11:36:30 +00:00
bcm53xx kernel: bump 5.10 to 5.10.110 2022-04-09 19:31:46 +02:00
bcm63xx bcm63xx: fix description fix name case 2022-04-23 20:46:25 +02:00
bcm4908 kernel: delete Linux 5.4 config and patches 2022-03-21 11:36:30 +00:00
bmips kernel: 5.10: consolidate mac80211 crypto options 2021-12-17 16:16:34 +01:00
gemini gemini: Bump kernel to v5.15 2022-04-14 10:12:34 +02:00
generic kernel: 5.15: add missing symbol 2022-04-30 21:27:46 +02:00
imx kernel: bump 5.15 to 5.15.32 2022-04-09 19:31:46 +02:00
ipq40xx ipq40xx: 5.10: fix ar40xx driver 2022-04-29 00:27:25 +02:00
ipq806x ipq806x: RT4230W: utilize nvmem-cells for ath10k caldata 2022-04-16 16:59:31 +02:00
kirkwood target/linux: replace egrep with grep -E 2022-02-07 00:03:27 +01:00
lantiq lantiq: fritz736x: Move GPIO resets to the inidvidual board.dts files 2022-04-16 14:02:11 +02:00
layerscape layerscape: image: drop redundant parameter from kernel build recipe 2022-04-01 14:32:54 +02:00
malta malta: add config-5.15 2022-04-13 19:50:50 +01:00
mediatek mediatek: build ubnt-ledbar as a module 2022-04-30 23:13:33 +08:00
mpc85xx mpc85xx: Fix output location of padded dtb 2022-04-30 23:56:47 +02:00
mvebu mvebu: make boot filesystem reproducible 2022-03-28 20:52:49 +01:00
mxs kernel: move some symbols to generic config 2022-04-09 19:31:46 +02:00
octeon kernel: move some symbols to generic config 2022-04-09 19:31:46 +02:00
octeontx kernel: bump 5.10 to 5.10.110 2022-04-09 19:31:46 +02:00
omap kernel: delete Linux 5.4 config and patches 2022-03-21 11:36:30 +00:00
oxnas kernel: bump 5.10 to 5.10.112 2022-04-23 20:46:25 +02:00
pistachio kernel: bump 5.10 to 5.10.95 2022-02-01 23:34:07 +00:00
qoriq qoriq: enable support for Marvell Alaska PHYs 2022-04-03 22:41:05 +03:00
ramips ramips: add support for Wavlink WL-WN533A8 2022-04-30 23:56:47 +02:00
realtek realtek: add ZyXEL GS1900-24HP v1 support 2022-04-16 17:26:56 +02:00
rockchip kernel: include CONFIG_KEXEC_SIG in configs 2022-03-15 08:33:45 +01:00
sunxi kernel: move some symbols to generic config 2022-04-09 19:31:46 +02:00
tegra kernel: delete Linux 5.4 config and patches 2022-03-21 11:36:30 +00:00
uml uml: make use of 'rootfs-part' feature 2022-01-23 19:48:31 +00:00
x86 kernel: x86: remove an upstreamed patch 2022-04-20 11:53:07 +01:00
zynq kernel: delete Linux 5.4 config and patches 2022-03-21 11:36:30 +00:00
Makefile target: use SPDX license identifiers on Makefiles 2021-02-10 15:47:18 +01:00