aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79
Commit message (Collapse)AuthorAgeFilesLines
* ath79: move dts-v1 statement to ath79.dtsiAdrian Schmutzler2020-09-25349-629/+333
| | | | | | | | | | | | | | | | | | | The "/dts-v1/;" identifier is supposed to be present once at the top of a device tree file after the includes have been processed. In ath79, we therefore requested to have in the DTS files so far, and omit it in the DTSI files. However, essentially the syntax of the parent ath79.dtsi file already determines the DTS version, so putting it into the DTS files is just a useless repetition. Consequently, this patch puts the dts-v1 statement into the parent ath79.dtsi, which is (indirectly) included by all DTS files. All other occurences are removed. Since the dts-v1 statement needs to be before any other definitions, this also moves the includes to make sure the ath79.dtsi or its descendants are always included first. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: move ath79-clk.h include to ath79.dtsiAdrian Schmutzler2020-09-259-9/+10
| | | | | | | | | | ath79.dtsi uses ATH79_CLK_MDIO, so the include <dt-bindings/clock/ath79-clk.h> needs to be moved there. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: move engenius_loader_okli recipe before devicesAdrian Schmutzler2020-09-251-14/+15
| | | | | | | | Move engenius_loader_okli image recipe in front of all Engenius devices, so adding new device entries will not have them sorted before the shared recipe. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* target: update SPDX license namesAdrian Schmutzler2020-09-2219-19/+19
| | | | | | | SPDX moved from GPL-2.0 to GPL-2.0-only and from GPL-2.0+ to GPL-2.0-or-later. Reflect that in the SPDX license headers. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: remove DTS from ATH79 target namePaul Spooren2020-09-221-1/+1
| | | | | | | The legacy ar71xx target is removed and multiple targets use DTS now, so there is no need to point that out for ATH79 specifically. Signed-off-by: Paul Spooren <mail@aparcar.org>
* ath79/mikrotik: fix soft_config location for SXT 5nRoger Pueyo Centelles2020-09-171-4/+4
| | | | | | | | | | | | | The soft_config partition for these devices lays between 0xe000 and 0xf000 (as correctly detected by the RouterBoard platform driver), before the bootloader2 partition which starts at 0x10000. This commit correctly sorts the partitions, fixing the parsing error. Fixes: FS#3314 Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> Reviewed-by: Thibaut VARÈNE <hacks@slashdirt.org>
* ath79: add support for Ubiquiti UniFi AP ProDavid Bauer2020-09-174-0/+188
| | | | | | | | | | | | | | | | | | | | | | | This adds support for the Ubiquiti UniFi AP Pro to the ath79 target. The device was previously supported on the now removed ar71xx target. SoC Atheros AR9344 WiFi Atheros AR9344 & Atheros AR9280 ETH Atheros AR8327 RAM 128M DDR2 FLASH 16M SPI-NOR Installation ------------ Follow the Ubiquiti TFTP recovery procedure for this device. 1. Hold down the reset button while connecting power for 10 seconds. 2. Transfer the factory image via TFTP to the AP (192.168.1.20) 3. Wait 2 minutes for the AP to write the firmware to flash. The device will automatically reboot to OpenWrt. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: fix button types for WZR-HP-AG300H and WZR-600DHPAdrian Schmutzler2020-09-161-0/+3
| | | | | | | | | | Router and Movie "keys" are actually switches for both devices according to the manual. This has been properly implemented in ar71xx, but overlooked when porting to ath79. Fixes: 480bf2827392 ("ath79: add support for Buffalo WZR-HP-AG300H") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Buffalo WZR-600DHPAdrian Schmutzler2020-09-166-267/+294
| | | | | | | | | | | | | | | | | | | | | The hardware of this device seems to be identical to WZR-HP-AG300H. It was already implemented as a clone in ar71xx. Specification: - 680 MHz CPU (Qualcomm Atheros AR7161) - 128 MiB RAM - 32 MiB Flash - WiFi 5 GHz a/n - WiFi 2.4 GHz b/g/n - 5x 1000Base-T Ethernet - 1x USB 2.0 Installation of OpenWRT from vendor firmware: - Connect to the Web-interface at http://192.168.11.1 - Go to “Administration” → “Firmware Upgrade” - Upload the OpenWrt factory image Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: use common device definition for Buffalo devicesAdrian Schmutzler2020-09-163-36/+27
| | | | | | | | | | The Buffalo devices in ath79 share their image generation code, so let's create a shared Device definition for them. Since most of them use BUFFALO_HWVER := 3, this is moved as default to the shared definition as well. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: consistently use "info" label for default-mac partitionAdrian Schmutzler2020-09-1619-56/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tp-link safeloader devices typically contain a partition "default-mac" which stores the MAC addresses. It is followed by other partitions containing device info, like {"default-mac", 0x610000, 0x00020}, {"pin", 0x610100, 0x00020}, {"product-info", 0x611100, 0x01000}, In DTS, we typically assign a 0x10000 sized partition for these, which is mostly labelled "mac" or "info". In rarer cases, the partitions have been enclosed in a larger "tplink" or "config" partition. However, when comparing different devices, the implementation appears relatively arbitrary at the moment. Thus, this PR aims at harmonizing these partitions by always using the name "info" for the DTS partition containing "default-mac". "info" is preferred over "mac" as we never just have "default-mac" alone, but always some other device-info partitions as well. While at it, this also establishes a similar partitioning for the few devices where the "info" partitions are part of a bigger unspecific "config" partition or similar. Besides the harmonization itself, this also allows to merge a few cases in 11-ath10k-caldata. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: support for TP-Link EAP225-Wall v2Sander Vanheule2020-09-124-1/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TP-Link EAP225-Wall v2 is an AC1200 (802.11ac Wave-2) wall plate access point. UART access and debricking require fine soldering. The device was kindly provided for porting by Stijn Segers. Device specifications: * SoC: QCA9561 @ 775MHz * RAM: 128MiB DDR2 * Flash: 16MiB SPI-NOR (GD25Q127CSIG) * Wireless 2.4GHz (SoC): b/g/n, 2x2 * Wireless 5Ghz (QCA9886): a/n/ac, 2x2 MU-MIMO * Ethernet (SoC): 4× 100Mbps * Eth0 (back): 802.3af/at PoE in * Eth1, Eth2 (bottom) * Eth3 (bottom): PoE out (can be toggled by GPIO) * One status LED * Two buttons (both work as failsafe) * LED button, implemented as KEY_BRIGHTNESS_TOGGLE * Reset button Flashing instructions, requires recent firmware (tested on 1.20.0): * ssh into target device and run `cliclientd stopcs` * Upgrade with factory image via web interface Debricking: * Serial port can be soldered on PCB J4 (1: TXD, 2: RXD, 3: GND, 4: VCC) * Bridge unpopulated resistors R162 (TXD) and R165 (RXD) Do NOT bridge R164 * Use 3.3V, 115200 baud, 8n1 * Interrupt bootloader by holding CTRL+B during boot * tftp initramfs to flash via sysupgrade or LuCI web interface MAC addresses: MAC address (as on device label) is stored in device info partition at an offset of 8 bytes. ath9k device has same address as ethernet, ath10k uses address incremented by 1. From OEM ifconfig: br0 Link encap:Ethernet HWaddr 50:...:04 eth0 Link encap:Ethernet HWaddr 50:...:04 wifi0 Link encap:UNSPEC HWaddr 50-...-04-... wifi1 Link encap:UNSPEC HWaddr 50-...-05-... Signed-off-by: Sander Vanheule <sander@svanheule.net> [fix IMAGE_SIZE] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Mercury MW4530R v1Zhong Jianxin2020-09-125-25/+50
| | | | | | | | | | | | | | | | | | | | | Mercury MW4530R is a TP-Link TL-WDR4310 clone. Specification: * SOC: Atheros AR9344 (560 MHz) * RAM: 128 MiB * Flash: 8192 KiB * Ethernet: 5 x 10/100/1000 (4 x LAN, 1 x WAN) (AR8327) * Wireless: - 2.4 GHz b/g/n (internal) - 5 GHz a/n (AR9580) * USB: yes, 1 x USB 2.0 Installation: Flash factory image via OEM web interface. Signed-off-by: Zhong Jianxin <azuwis@gmail.com>
* ath79: add support for TP-Link EAP245-v3Sander Vanheule2020-09-094-0/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TP-Link EAP245 v3 is an AC1750 (802.11ac Wave-2) ceiling mount access point. UART access (for debricking) requires non-trivial soldering. Specifications: * SoC: QCA9563 (CPU/DDR/AHB @ 775/650/258 MHz) * RAM: 128MiB * Flash: 16MiB SPI-NOR * Wireless 2.4GHz (SoC): b/g/n 3x3 * Wireless 5GHz (QCA9982): a/n/ac 3x3 with MU-MIMO * Ethernet (QCA8337N switch): 2× 1GbE, ETH1 (802.3at PoE) and ETH2 * Green and amber status LEDs * Reset switch (GPIO, available for failsafe) Flashing instructions: All recent firmware versions (latest is 2.20.0), can disable firmware signature verification and use a padded firmware file to flash OpenWrt: * ssh into target device and run `cliclientd stopcs` * upload factory image via web interface The stopcs-method is supported from firmware version 2.3.0. Earlier versions need to be upgraded to a newer stock version before flashing OpenWrt. Factory images for these devices are RSA signed by TP-Link. While the signature verification can be disabled, the factory image still needs to have a (fake) 1024 bit signature added to pass file checks. Debricking instructions: You can recover using u-boot via the serial port: * Serial port is available from J3 (1:TX, 2:RX, 3:GND, 4:3.3V) * Bridge R237 to connect RX, located next to J3 * Bridge R225 to connect TX, located inside can on back-side of board * Serial port is 115200 baud, 8n1, interrupt u-boot by holding ctrl+B * Upload initramfs with tftp and upgrade via OpenWrt Device mac addresses: Stock firmware has the same mac address for 2.4GHz wireless and ethernet, 5GHz is incremented by one. The base mac address is stored in the 'default-mac' partition (offset 0x90000) at an offset of 8 bytes. ART blobs contain no mac addresses. From OEM ifconfig: ath0 Link encap:Ethernet HWaddr 74:..:E2 ath10 Link encap:Ethernet HWaddr 74:..:E3 br0 Link encap:Ethernet HWaddr 74:..:E2 eth0 Link encap:Ethernet HWaddr 74:..:E2 Signed-off-by: Sander Vanheule <sander@svanheule.net> Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
* ath79: enable elf mtd splitterSander Vanheule2020-09-092-0/+2
| | | | | | | Enabled the ELF firmware partition splitter 4.19 and 5.4 in preparation for the TP-Link EAP245v3 device support. Signed-off-by: Sander Vanheule <sander@svanheule.net>
* ath79: drop Build/loader-kernel-cmdlineAdrian Schmutzler2020-09-061-5/+0
| | | | | | | | | | | | This is the same as loader-kernel since the KERNEL_CMDLINE parameter has been removed in [1] and not used at all anyway. Remove it. [1] f77db1a59036 ("ath79: cleanup image build code") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Acked-by: Paul Spooren <mail@aparcar.org>
* ath79: add support for Senao Engenius ENH202 v1Michael Pratt2020-08-315-13/+224
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FCC ID: U2M-ENH200 Engenius ENH202 is an outdoor wireless access point with 2 10/100 ports, built-in ethernet switch, internal antenna plates and proprietery PoE. Specification: - Qualcomm/Atheros AR7240 rev 2 - 40 MHz reference clock - 8 MB FLASH ST25P64V6P (aka ST M25P64) - 32 MB RAM - UART at J3 (populated) - 2x 10/100 Mbps Ethernet (built-in switch at gmac1) - 2.4 GHz, 2x2, 29dBm (Atheros AR9280 rev 2) - internal antenna plates (10 dbi, semi-directional) - 5 LEDs, 1 button (LAN, WAN, RSSI) (Reset) Known Issues: - Sysupgrade from ar71xx no longer possible - Power LED not controllable, or unknown gpio MAC addresses: eth0/eth1 *:11 art 0x0/0x6 wlan *:10 art 0x120c The device label lists both addresses, WLAN MAC and ETH MAC, in that order. Since 0x0 and 0x6 have the same content, it cannot be determined which is eth0 and eth1, so we chose 0x0 for both. Installation: 2 ways to flash factory.bin from OEM: - Connect ethernet directly to board (the non POE port) this is LAN for all images - if you get Failsafe Mode from failed flash: only use it to flash Original firmware from Engenius or risk kernel loop or halt which requires serial cable Method 1: Firmware upgrade page: OEM webpage at 192.168.1.1 username and password "admin" In upper right select Reset "Restore to factory default settings" Wait for reboot and login again Navigate to "Firmware Upgrade" page from left pane Click Browse and select the factory.bin image Upload and verify checksum Click Continue to confirm and wait 3 minutes Method 2: Serial to load Failsafe webpage: After connecting to serial console and rebooting... Interrupt boot with any key pressed rapidly execute `run failsafe_boot` OR `bootm 0x9f670000` wait a minute connect to ethernet and navigate to "192.168.1.1/index.htm" Select the factory.bin image and upload wait about 3 minutes Return to OEM: If you have a serial cable, see Serial Failsafe instructions *DISCLAIMER* The Failsafe image is unique to Engenius boards. If the failsafe image is missing or damaged this will not work DO NOT downgrade to ar71xx this way, can cause kernel loop or halt The easiest way to return to the OEM software is the Failsafe image If you dont have a serial cable, you can ssh into openwrt and run `mtd -r erase fakeroot` Wait 3 minutes connect to ethernet and navigate to 192.168.1.1/index.htm select OEM firmware image from Engenius and click upgrade Format of OEM firmware image: The OEM software of ENH202 is a heavily modified version of Openwrt Kamikaze bleeding-edge. One of the many modifications is to the sysupgrade program. Image verification is performed simply by the successful ungzip and untar of the supplied file and name check and header verification of the resulting contents. To form a factory.bin that is accepted by OEM Openwrt build, the kernel and rootfs must have specific names... openwrt-senao-enh202-uImage-lzma.bin openwrt-senao-enh202-root.squashfs and begin with the respective headers (uImage, squashfs). Then the files must be tarballed and gzipped. The resulting binary is actually a tar.gz file in disguise. This can be verified by using binwalk on the OEM firmware images, ungzipping then untaring, and by swapping headers to see what the OEM upgrade utility accepts and rejects. OKLI kernel loader is required because the OEM firmware expects the kernel to be no greater than 1024k and the factory.bin upgrade procedure would otherwise overwrite part of the kernel when writing rootfs. Note on built-in switch: ENH202 is originally configured to be an access point, but with two ethernet ports, both WAN and LAN is possible. the POE port is gmac0 which is preferred to be the port for WAN because it gives link status where swconfig does not. Signed-off-by: Michael Pratt <mpratt51@gmail.com> [assign label_mac in 02_network, use ucidef_set_interface_wan, use common device definition, some reordering] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Senao Engenius ENS202EXT v1Michael Pratt2020-08-314-2/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Engenius ENS202EXT v1 is an outdoor wireless access point with 2 10/100 ports, with built-in ethernet switch, detachable antennas and proprietery PoE. FCC ID: A8J-ENS202 Specification: - Qualcomm/Atheros AR9341 v1 - 535/400/200/40 MHz (CPU/DDR/AHB/REF) - 64 MB of RAM - 16 MB of FLASH MX25L12835F(MI-10G) - UART (J1) header on PCB (unpopulated) - 2x 10/100 Mbps Ethernet (built-in switch Atheros AR8229) - 2.4 GHz, up to 27dBm (Atheros AR9340) - 2x external, detachable antennas - 7x LED (5 programmable in ath79), 1x GPIO button (Reset) Known Issues: - Sysupgrade from ar71xx no longer possible - Ethernet LEDs stay on solid when connected, not programmable MAC addresses: eth0/eth1 *:7b art 0x0/0x6 wlan *:7a art 0x1002 The device label lists both addresses, WLAN MAC and ETH MAC, in that order. Since 0x0 and 0x6 have the same content, it cannot be determined which is eth0 and eth1, so we chose 0x0 for both. Installation: 2 ways to flash factory.bin from OEM: - Connect ethernet directly to board (the non POE port) this is LAN for all images - if you get Failsafe Mode from failed flash: only use it to flash Original firmware from Engenius or risk kernel loop which requires serial cable Method 1: Firmware upgrade page: OEM webpage at 192.168.1.1 username and password "admin" In upper right select Reset "Restore to factory default settings" Wait for reboot and login again Navigate to "Firmware Upgrade" page from left pane Click Browse and select the factory.bin image Upload and verify checksum Click Continue to confirm and wait 3 minutes Method 2: Serial to load Failsafe webpage: After connecting to serial console and rebooting... Interrupt boot with any key pressed rapidly execute `run failsafe_boot` OR `bootm 0x9fdf0000` wait a minute connect to ethernet and navigate to "192.168.1.1/index.htm" Select the factory.bin image and upload wait about 3 minutes *If you are unable to get network/LuCI after flashing* You must perform another factory reset: After waiting 3 minutes or when Power LED stop blinking: Hold Reset button for 15 seconds while powered on or until Power LED blinks very fast release and wait 2 minutes Return to OEM: If you have a serial cable, see Serial Failsafe instructions *DISCLAIMER* The Failsafe image is unique to this model. The following directions are unique to this model. DO NOT downgrade to ar71xx this way, can cause kernel loop The easiest way to return to the OEM software is the Failsafe image If you dont have a serial cable, you can ssh into openwrt and run `mtd -r erase fakeroot` Wait 3 minutes connect to ethernet and navigate to 192.168.1.1/index.htm select OEM firmware image from Engenius and click upgrade TFTP Recovery: For some reason, TFTP is not reliable on this board. Takes many attempts, many timeouts before it fully transfers. Starting with an initramfs.bin: Connect to ethernet set IP address and TFTP server to 192.168.1.101 set up infinite ping to 192.168.1.1 rename the initramfs.bin to "vmlinux-art-ramdisk" and host on TFTP server disconnect power to the board hold reset button while powering on board for 8 seconds Wait a minute, power LED should blink eventually if successful and a minute after that the pings should get replies You have now loaded a temporary Openwrt with default settings temporarily. You can use that image to sysupgrade another image to overwrite flash. Format of OEM firmware image: The OEM software of ENS202EXT is a heavily modified version of Openwrt Kamikaze bleeding-edge. One of the many modifications is to the sysupgrade program. Image verification is performed simply by the successful ungzip and untar of the supplied file and name check and header verification of the resulting contents. To form a factory.bin that is accepted by OEM Openwrt build, the kernel and rootfs must have specific names... openwrt-senao-ens202ext-uImage-lzma.bin openwrt-senao-ens202ext-root.squashfs and begin with the respective headers (uImage, squashfs). Then the files must be tarballed and gzipped. The resulting binary is actually a tar.gz file in disguise. This can be verified by using binwalk on the OEM firmware images, ungzipping then untaring, and by swapping headers to see what the OEM upgrade utility accepts and rejects. Note on the factory.bin: The newest kernel is too large to be in the kernel partition the new ath79 kernel is beyond 1592k Even ath79-tiny is 1580k Checksum fails at boot because the bootloader (modified uboot) expects kernel to be 1536k. If the kernel is larger, it gets overwritten when rootfs is flashed, causing a broken image. The mtdparts variable is part of the build and saving a new uboot environment will not persist after flashing. OEM version might interact with uboot or with the custom OEM partition at 0x9f050000. Failed checksums at boot cause failsafe image to launch, allowing any image to be flashed again. HOWEVER: one should not install older Openwrt from failsafe because it can cause rootfs to be unmountable, causing kernel loop after successful checksum. The only way to rescue after that is with a serial cable. For these reasons, a fake kernel (OKLI kernel loader) and fake squashfs rootfs is implemented to take care of the OEM firmware image verification and checksums at boot. The OEM only verifies the checksum of the first image of each partition respectively, which is the loader and the fake squashfs. This completely frees the "firmware" partition from all checks. virtual_flash is implemented to make use of the wasted space. this leaves only 2 erase blocks actually wasted. The loader and fakeroot partitions must remain intact, otherwise the next boot will fail, redirecting to the Failsafe image. Because the partition table required is so different than the OEM partition table and ar71xx partition table, sysupgrades are not possible until one switches to ath79 kernel. Note on sysupgrade.tgz: To make things even more complicated, another change is needed to fix an issue where network does not work after flashing from either OEM software or Failsafe image, which implants the OEM (Openwrt Kamikaze) configuration into the jffs2 /overlay when writing rootfs from factory.bin. The upgrade script has this: mtd -j "/tmp/_sys/sysupgrade.tgz" write "${rootfs}" "rootfs" However, it also accepts scripts before and after: before_local="/etc/before-upgradelocal.sh" after_local="/etc/after-upgradelocal.sh" before="before-upgrade.sh" after="after-upgrade.sh" Thus, we can solve the issue by making the .tgz an empty file by making a before-upgrade.sh in the factory.bin Note on built-in switch: There is two ports on the board, POE through the power supply brick, the other is on the board. For whatever reason, in the ar71xx target, both ports were on the built-in switch on eth1. In order to make use of a port for WAN or a different LAN, one has to set up VLANs. In ath79, eth0 and eth1 is defined in the DTS so that the built-in switch is seen as eth0, but only for 1 port the other port is on eth1 without a built-in switch. eth0: switch0 CPU is port 0 board port is port 1 eth1: POE port on the power brick Since there is two physical ports, it can be configured as a full router, with LAN for both wired and wireless. According to the Datasheet, the port that is not on the switch is connected to gmac0. It is preferred that gmac0 is chosen as WAN over a port on an internal switch, so that link status can pass to the kernel immediately which is more important for WAN connections. Signed-off-by: Michael Pratt <mpratt51@gmail.com> [apply sorting in 01_leds, make factory recipe more generic, create common device node, move label-mac to 02_network, add MAC addresses to commit message, remove kmod-leds-gpio, use gzip directly] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: mikrotik: fix network setup for lhg-hb platformRoger Pueyo Centelles2020-08-311-1/+10
| | | | | | | | | | | This network setup for MikroTik devices based on the LHG-HB platform avoids using the integrated switch and connects the single Ethernet port directly. This way, link speed (10/100 Mbps) is properly repor- ted by eth0. Fixes: FS#3309 Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
* ath79: use correct MAC address for TP-Link TL-WPA8630 v2Sven Wegener2020-08-311-2/+7
| | | | | | | | | The base address is used for the LAN and 2G WLAN interfaces. 5G WLAN interface is +1 and the PLC interface uses +2. Signed-off-by: Sven Wegener <sven.wegener@stealer.net> [improve commit title, fix assignment in 11-ath10k-caldata] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Meraki MR16Martin Kennedy2020-08-316-0/+211
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Port device support for Meraki MR16 from the ar71xx target to ath79. Specifications: * AR7161 CPU, 16 MiB Flash, 64 MiB RAM * One PoE-capable Gigabit Ethernet Port * AR9220 / AR9223 (2x2 11an / 11n) WLAN Installation: * Requires TFTP server at 192.168.1.101, w/ initramfs & sysupgrade .bins * Open shell case and connect a USB to TTL cable to upper serial headers * Power on the router; connect to U-boot over 115200-baud connection * Interrupt U-boot process to boot Openwrt by running: setenv bootcmd bootm 0xbf0a0000; saveenv; tftpboot 0c00000 <filename-of-initramfs-kernel>.bin; bootm 0c00000; * Copy sysupgrade image to /tmp on MR16 * sysupgrade /tmp/<filename-of-sysupgrade>.bin Notes: - There are two separate ARTs in the partition (offset 0x1000/0x5000 and 0x11000/0x15000) in the OEM device. I suspect this is an OEM artifact; possibly used to configure the radios for different regions, circumstances or RF frontends. Since the ar71xx target uses the second offsets, use that second set (0x11000 and 0x15000) for the ART. - kmod-owl-loader is still required to load the ART partition into the driver. - The manner of storing MAC addresses is updated from ar71xx; it is at 0x66 of the 'config' partition, where it was discovered that the OEM firmware stores it. This is set as read-only. If you are migrating from ar71xx and used the method mentioned above to upgrade, use kmod-mtd-rw or UCI to add the MAC back in. One more method for doing this is described below. - Migrating directly from ar71xx has not been thoroughly tested, but one method has been used a couple of times with good success, migrating 18.06.2 to a full image produced as of this commit. Please note that these instructions are only for experienced users, and/or those still able to open their device up to flash it via the serial headers should anything go wrong. 1) Install kmod-mtd-rw and uboot-envtools 2) Run `insmod mtd-rw.ko i_want_a_brick=1` 3) Modify /etc/fw_env.config to point to the u-boot-env partition. The file /etc/fw_env.config should contain: # MTD device env offset env size sector size /dev/mtd1 0x00000 0x10000 0x10000 See https://openwrt.org/docs/techref/bootloader/uboot.config for more details. 4) Run `fw_printenv` to verify everything is correct, as per the link above. 5) Run `fw_setenv bootcmd bootm 0xbf0a0000` to set a new boot address. 6) Manually modify /lib/upgrade/common.sh's get_image function: Change ... cat "$from" 2>/dev/null | $cmd ... into ... ( dd if=/dev/zero bs=1 count=$((0x66)) ; # Pad the first 102 bytes echo -ne '\x00\x18\x0a\x12\x34\x56' ; # Add in MAC address dd if=/dev/zero bs=1 count=$((0x20000-0x66-0x6)) ; # Pad the rest cat "$from" 2>/dev/null | $cmd ) ... which, during the upgrade process, will pad the image by 128K of zeroes-plus-MAC-address, in order for the ar71xx's firmware partition -- which starts at 0xbf080000 -- to be instead aligned with the ath79 firmware partition, which starts 128K later at 0xbf0a0000. 7) Copy the sysupgrade image into /tmp, as above 8) Run `sysupgrade -F /tmp/<sysupgrade>.bin`, then wait Again, this may BRICK YOUR DEVICE, so make *sure* to have your serial cable handy. Addenda: - The MR12 should be able to be migrated in a nearly identical manner as it shares much of its hardware with the MR16. - Thank-you Chris B for copious help with this port. Signed-off-by: Martin Kennedy <hurricos@gmail.com> [fix typo in compat message, drop art DT label, move 05_fix-compat-version to subtarget] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: increase kernel partition for ar9344 TP-Link CPE/WBSAdrian Schmutzler2020-08-301-3/+3
| | | | | | | | | | | | The kernel has become too big again for the ar9344-based TP-Link CPE/WBS devices which still have no firmware-partition splitter. Current buildbots produce a kernel size of about 2469 kiB, while the partition is only 2048 kiB (0x200000). Therefore, increase it to 0x300000 to provide enough room for this and, hopefully, the next kernel. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix ethernet setup for some qca953x devicesAdrian Schmutzler2020-08-252-17/+0
| | | | | | | | | | | | | | | | On Comfast CF-E130N v2 and Mikrotik LHG HB board, the config found in DTS appears to be strange: - eth0 has "syscon","simple-mfd" set although it's not enabled - eth1 is enabled redundantly (already "okay" in qca953x.dtsi) - phy-handle is set for eth1 in DTS although it has a fixed-link in qca953x.dtsi This seems like a copy-paste gone wrong. Remove the named options. Run-tested on MikroTik LHG 2. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: set WATCHDOG_CORE dependency in kmod-hwmon-sch5627Adrian Schmutzler2020-08-241-1/+0
| | | | | | | | | | | | | | | | | | For many target we have added CONFIG_WATCHDOG_CORE=y to the target config due to the following error: Package kmod-hwmon-sch5627 is missing dependencies for the following libraries: watchdog.ko However, actually the proper way appears to be setting the dependency for the kmod-hwmon-sch5627 package, as the error message demands. Do this in this patch and remove the target config entries added due to this issue. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix/improve LED control for TL-WPA8630 v1/v2Joe Mullally2020-08-222-10/+11
| | | | | | | | | | | | | | | | | | | | | The TL-WPA8630 v1 and v2 have the same LED Control GPIO configuration according to the TP-Link GPL sources. Set the GPIO to output to make it work and set to Active Low. It defaults to LEDs on at bootup. To turn all LEDs off: echo 0 > /sys/class/gpio/tp-link\:led\:control/value To turn all LEDs on: echo 1 > /sys/class/gpio/tp-link\:led\:control/value Change the "LED" button from BTN_0 to KEY_LIGHTS_TOGGLE to match other devices and the button guide, and to reduce the number of unintuitive "BTN_X" inputs. Fixes: ab74def0db93 ("ath79: add support for TP-Link TL-WPA8630P v2") Signed-off-by: Joe Mullally <jwmullally@gmail.com> [shorten commit title, minor commit message adjustments] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link TL-WR710N v2.1Adrian Schmutzler2020-08-215-117/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for the TP-Link TL-WR710N v2.1. It is basically a re-issue of the v1.2. Specifications: SoC: Atheros AR9331 CPU: 400 MHz Flash: 8 MiB RAM: 32 MiB WiFi: 2.4 GHz b/g/n Ethernet: 2x 100M ports USB: 1x 2.0 The only difference from the v1 is the TP-Link hardware ID/revision. Attention: The TL-WR710N v2.0 (!) has only 4 MB flash and cannot be flashed with this image. It has a different TPLINK_HWREV, so accidental flashing of the factory image should be impossible without additional measures. Unfortunately, the v2.0 in ar71xx has the same board name, so sysupgrade from ar71xx v2.0 into ath79 v1/v2.1 will not be prevented, but will brick the device. Flashing instruction: Upload the factory image via the OEM firmware GUI upgrade mechanism. Further notes: To make implementation easier if somebody desires to port the 4M v2.0, this already creates two DTSI files. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: Fabian Eppig <fabian@eppig.de>
* treewide: use wpad-basic-wolfssl as defaultPetr Štetiar2020-08-206-7/+7
| | | | | | | | | | | | | | | In order to support SAE/WPA3-Personal in default images. Replace almost all occurencies of wpad-basic and wpad-mini with wpad-basic-wolfssl for consistency. Keep out ar71xx from the list as it won't be in the next release and would only make backports harder. Build-tested (build-bot settings): ath79: generic, ramips: mt7620/mt76x8/rt305x, lantiq: xrx200/xway, sunxi: a53 Signed-off-by: Petr Štetiar <ynezz@true.cz> [rebase, extend commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.58John Audia2020-08-183-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR is a blend of several kernel bumps authored by ldir taken from his staging tree w/ some further adjustments made by me and update_kernel.sh Summary: Deleted upstreamed patches: generic: 742-v5.5-net-sfp-add-support-for-module-quirks.patch 743-v5.5-net-sfp-add-some-quirks-for-GPON-modules.patch bcm63xx: 022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch 024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch mediatek: 0402-net-ethernet-mtk_eth_soc-Always-call-mtk_gmac0_rgmii.patch Deleted patches applied differently upstream: generic: 641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch Manually merged patches: generic: 395-v5.8-net-sch_cake-Take-advantage-of-skb-hash-where-appropriate.patch bcm27xx: 950-0132-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch layerscape: 701-net-0231-enetc-Use-DT-protocol-information-to-set-up-the-port.patch Build system: x86_64 Build-tested: ath79/generic, bcm27xx/bcm2708, bcm27xx/bcm2711, imx6, mvebu/cortexa9, sunxi/a53 Run-tested: Netgear R7800 (ipq806x) No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-By: Lucian Cristian <Lucian.cristian@gmail.com> [mvebu] Tested-By: Curtis Deptuck <curtdept@me.com> [x86/64] [do not remove 395-v5.8-net-sch_cake-Take-advantage-... patch, adjust and refresh patches, adjust commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-By: John Audia <graysky@archlinux.us> [ipq806x]
* ath79: mikrotik: erase firmware on SPI NOR before installThibaut VARÈNE2020-08-181-0/+3
| | | | | | | | | | | | | | On Mikrotik SPI NOR devices, the firmware partition must be erased when flashing from stock firmware, otherwise leftover bits (in particular a kernel signature) can trigger a boot loop. When booted from initramfs (the only way to install OpenWRT on these devices), this patch unconditionally erases the firmware partition in the do_upgrade() stage for all supported SPI NOR devices. This is forward-ported from ed49d0876 and 20452a8db Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
* ath79: fix syntax error in ar7240_tplink_tl-wa.dtsiAdrian Schmutzler2020-08-171-1/+1
| | | | | | | | | The node needs to be terminated by a semicolon. Fixes: 8484a764df20 ("ath79: ar724x: make sure builtin-switch is enabled in DT") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: change WPS to Wifi button on TL-WPA8630P v2Adrian Schmutzler2020-08-173-19/+8
| | | | | | | | | | | | | | | | | | | Both TL-WPA8630(P) v1 and v2 feature a button labelled "WiFi". While this is implemented as KEY_RFKILL for v1 in ar71xx and ath79, the v2 sets it up as WPS button. According to the manual, the behavior in OEM firmware is: "Press and hold the button for 1 second to copy wireless settings from the main router to the extender. Go to Wi-Fi Clone for more information. Press and hold the button for at least 5 seconds to turn the wireless function on or off." Consequently, and since this is historic behavior on v1 in OpenWrt, we set this button to KEY_RFKILL on both revisions. Fixes: ab74def0db93 ("ath79: add support for TP-Link TL-WPA8630P v2") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: ar724x: make sure builtin-switch is enabled in DTAdrian Schmutzler2020-08-1713-22/+10
| | | | | | | | | | | | | | | | | | | On ar7240/ar7241 the mdioX node with the builtin-switch is enabled in the DTSI files, but the parent ethX node is left disabled. It only gets enabled per device or device family, and has not been enabled at all yet for the TP-Link WA devices with ar7240, making the switch unavailable there. This patch makes sure &eth0/&eth1 nodes are enabled together with the &mdio0/&mdio1 nodes containing the builtin-switch. For ar7240_tplink_tl-wa.dtsi, &eth0 is properly hidden again via compatible = "syscon", "simple-mfd"; This partially fixes FS#2887, however it seems dmesg still does not show cable (dis)connect in dmesg for ar7240 TP-Link WA devices. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for ALLNET ALL-WAP02860ACTomasz Maciej Nowak2020-08-154-4/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ALLNET ALL-WAP02860AC is a dual-band wireless access point. Specification SoC: Qualcomm Atheros QCA9558 RAM: 128 MB DDR2 Flash: 16 MB SPI NOR WIFI: 2.4 GHz 3T3R integrated 5 GHz 3T3R QCA9880 Mini PCIe card Ethernet: 1x 10/100/1000 Mbps AR8035-A, PoE capable (802.3at) LEDS: 5x, which four are GPIO controlled Buttons: 1x GPIO controlled UART: 4 pin header near Mini PCIe card, starting count from white triangle on PCB 1. VCC 3.3V, 2. GND, 3. TX, 4. RX baud: 115200, parity: none, flow control: none MAC addresses Calibration data does not contain valid MAC addresses. The calculated MAC addresses are chosen in accordance with OEM firmware. Because of: a) constrained environment (SNMP) when connecting through Telnet or SSH, b) hard-coded kernel and rootfs sizes, c) checksum verification of kerenel and rootfs images in bootloder, creating factory image accepted by OEM web interface is difficult, therefore, to install OpenWrt on this device UART connection is needed. The teardown is simple, unscrew four screws to disassemble the casing, plus two screws to separate mainboard from the casing. Before flashing, be sure to have a copy of factory firmware, in case You wish to revert to original firmware. Installation 1. Prepare TFTP server with OpenWrt initramfs-kernel image. 2. Connect to LAN port. 3. Connect to UART port. 4. Power on the device and when prompted to stop autoboot, hit any key. 5. Alter U-Boot environment with following commands: setenv failsafe_boot bootm 0x9f0a0000 saveenv 6. Adjust "ipaddr" and "serverip" addresses in U-Boot environment, use 'setenv' to do that, then run following commands: tftpboot 0x81000000 <openwrt_initramfs-kernel_image_name> bootm 0x81000000 7. Wait about 1 minute for OpenWrt to boot. 8. Transfer OpenWrt sysupgrade image to /tmp directory and flash it with: sysupgrade -n /tmp/<openwrt_sysupgrade_image_name> 9. After flashing, the access point will reboot to OpenWrt. Wait few minutes, until the Power LED stops blinking, then it's ready for configuration. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl> [add MAC address comment to commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link TL-WPA8630 v1Adrian Schmutzler2020-08-138-131/+226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This ports the TP-Link TL-WPA8630 v1 from ar71xx to ath79. Specifications: SoC: QCA9563 CPU: 750 MHz Flash/RAM: 8 / 128 MiB Ethernet: 3x 1G ports (QCA8337 switch) WLAN: 2.4 GHz b/g/n, 5 GHz a/n/ac (ath10k) Buttons, LEDs and network setup appear to be almost identical to the v2 revision. Powerline interface is connected to switch port 5 (Label LAN4). Installation: No "fresh" device was available for testing the factory image. It is not known whether flashing via OEM firmware GUI is possible or not. A discussion from 2018 [1] about that indicates a few adjustments are necessary, but it is not clear whether those are already implemented with the TPLINK_HEADER_VERSION = 2 or not. Note that for the TL-WPA8630P v1, the TPLINK_HWID needs to be changed to 0x86310001 to allow factory flashing. [1] https://forum.openwrt.org/t/solved-tl-wpa8630p-lede-does-not-install/8161/27 Recovery: Recovery is only possible via serial. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79/mikrotik: add function for loading ath9k caldataAdrian Schmutzler2020-08-131-8/+13
| | | | | | | | | | | | | The commands to read ath9k caldata on mikrotik subtarget are mostly repetitive, so let's put them into a function to make writing and reading them easier. This function will only be required when patching the MAC address. For cases where it is put correctly into the calibration data by the vendor, caldata_sysfsload_from_file can be used directly as done for ath10k at the moment. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: routerboard-92x: ensure explicit bios size in DTSIAdrian Schmutzler2020-08-121-0/+1
| | | | | | | | | | | | | | The missing "size" property was acceptable in the context of a single DTS as the underlying device is known to have a 64KB flash, and thus the bios partition fit exactly between the preceding and following ones. However as this block has moved in a DTSI, for the sake of clarity and explicitness the size property is added to ensure that if the flash happens to be larger than expected, the bios partition remains properly sized. Suggested-by: Thibaut VARÈNE <hacks@slashdirt.org> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: harmonize appearance of ethX nodes in qca953x DTSesAdrian Schmutzler2020-08-1224-81/+90
| | | | | | | | | | | This harmonizes the appearance of ethX nodes in qca953x DTSes by: - having the same order of nodes and properties - removing redundant status property on eth1 (set in qca953x.dtsi) This is meant to help both copy-pasters and reviewers, since deviations and errors can be spotted easier. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for MikroTik SXT 5nD r2 (SXT Lite5)Roger Pueyo Centelles2020-08-127-2/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MikroTik SXT Lite5 (product code RBSXT5nDr2, also SXT 5nD r2) is an outdoor 5GHz CPE with a 16 dBi integrated antenna built around the Atheros AR9344 SoC. It is based on the "sxt5n" board platform. Specifications: - SoC: Atheros AR9344 - RAM: 64 MB - Storage: 128 MB NAND - Wireless: Atheros AR9340 (SoC) 802.11a/n 2x2:2 - Ethernet: Atheros AR8229 switch (SoC), 1x 10/100 port, 8-32 Vdc PoE in - 6 user-controllable LEDs: · 1x power (blue) · 1x wlan (green) · 4x rssi (green) - 1 GPIO-controlled buzzer See https://mikrotik.com/product/RBSXT5nDr2 for more details. Notes: The device was already supported in the ar71xx target. There, the Ethernet port was handled by GMAC1. Here in ath79 it is handled by GMAC0, which allows to get link information (loss, speed, duplex) on the eth0 interface. Flashing: TFTP boot initramfs image and then perform sysupgrade. Follow common MikroTik procedure as in https://openwrt.org/toh/mikrotik/common. Acknowledgments: Michael Pratt (@mpratt14) for helping on the network settings. Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> [rebase, use mikrotik LED label prefix, make names consistent, add reg for bootloader2, use led_user for boot indication etc., minor cosmetic changes] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for MikroTik RouterBOARD 921GS-5HPacD-15sSven Roederer2020-08-127-125/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MikroTik RouterBOARD 921GS-5HPacD-15s (mANTBox 15s) is an outdoor antenna for 5 GHz with an built-in router. This ports the board from ar71xx. See https://mikrotik.com/product/RB921GS-5HPacD-15S for more info. Specifications: - SoC: Qualcomm Atheros QCA9558 (720 MHz) - RAM: 128 MB - Storage: 128 MB NAND - Wireless: external QCA9892 802.11a/ac 2x2:2 - Ethernet: 1x 1000/100/10 Mbps, integrated, via AR8031 PHY, passive PoE in - SFP: 1x host Working: - NAND storage detection - Ethernet - Wireless - 1x user LED (blinks during boot, sysupgrade) - Reset button - Sysupgrade Untested: - SFP cage (probably not working) Installation (untested): - Boot initramfs image via TFTP and then flash sysupgrade image As the embedded RB921-pcb is a stripped down version of the RB922 this patch adds a common dtsi for this series and includes this to the final dts-files. Signed-off-by: Sven Roederer <devel-sven@geroedel.de> [move ath10k-leds closer to ath10k definition in DTS files] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for MikroTik RouterBOARD LHG 2nDRoger Pueyo Centelles2020-08-127-0/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MikroTik RouterBOARD LHG 2nD (sold as LHG 2) is a 2.4 GHz 802.11b/g/n outdoor device with a feed and an integrated dual polarization grid dish antenna based on the LHG-HB platform. See https://mikrotik.com/product/lhg_2 for more info. Specifications: - SoC: Qualcomm Atheros QCA9533 - RAM: 64 MB - Storage: 16 MB NOR - Wireless: Atheros AR9531 (SoC) 802.11b/g/n 2x2:2, 18 dBi antenna - Ethernet: Atheros AR8229 (SoC), 1x 10/100 port, 12-28 Vdc PoE in - 8 user-controllable LEDs: · 1x power (blue) · 1x user (green) · 1x lan (green) · 1x wlan (green) · 4x rssi (green) Note: The rssihigh LED is disabled, as it shares GPIO 16 with the reset button. Flashing: TFTP boot initramfs image and then perform sysupgrade. Follow common MikroTik procedure as in https://openwrt.org/toh/mikrotik/common. Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> [rebase, remove rssiled setup, adjust commit message, add DTSIs] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: Update kernel 4.19 to version 4.19.138Hauke Mehrtens2020-08-101-2/+2
| | | | | | Compile and run tested on lantiq/xrx200 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ath79: add support for ZyXEL NBG6616Christoph Krapp2020-08-108-145/+313
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: SoC: Qualcomm Atheros QCA9557 RAM: 128 MB (Nanya NT5TU32M16EG-AC) Flash: 16 MB (Macronix MX25L12845EMI-10G) Ethernet: 5x 10/100/1000 (1x WAN, 4x LAN) Wireless: QCA9557 2.4GHz (nbg), QCA9882 5GHz (ac) USB: 2x USB 2.0 port Buttons: 1x Reset Switches: 1x Wifi LEDs: 11 (Pwr, WAN, 4x LAN, 2x Wifi, 2x USB, WPS) MAC addresses: WAN *:3f uboot-env ethaddr + 3 LAN *:3e uboot-env ethaddr + 2 2.4GHz *:3c uboot-env ethaddr 5GHz *:3d uboot-env ethaddr + 1 The label contains all four MAC addresses, however the one without increment is first, so this one is taken for label MAC address. Notes: The Wifi is controlled by an on/off button, i.e. has to be implemented by a switch (EV_SW). Despite, it appears that GPIO_ACTIVE_HIGH needs to be used, just like recently fixed for the NBG6716. Both parameters have been wrong at ar71xx. Flash Instructions: At first the U-Boot variables need to be changed in order to boot the new combined image format. ZyXEL uses a split kernel + root setup and the current kernel is too large to fit into the partition. As resizing didnt do the trick, I've decided to use the prefered combined image approach to be future-kernel-enlargement-proof (thanks to blocktrron for the assistance). First add a new variable called boot_openwrt: setenv boot_openwrt bootm 0x9F120000 After that overwrite the bootcmd and save the environment: setenv bootcmd run boot_openwrt saveenv After that you can flash the openwrt factory image via TFTP. The servers IP has to be 192.168.1.33. Connect to one of the LAN ports and hold the WPS Button while booting. After a few seconds the NBG6616 will look for a image file called 'ras.bin' and flash it. Return to vendor firmware is possible by resetting the bootcmd: setenv bootcmd run boot_flash saveenv and flashing the vendor image via the TFTP method as described above. Accessing the U-Boot Shell: ZyXEL uses a proprietary loader/shell on top of u-boot: "ZyXEL zloader v2.02" When the device is starting up, the user can enter the the loader shell by simply pressing a key within the 3 seconds once the following string appears on the serial console: | Hit any key to stop autoboot: 3 The user is then dropped to a locked shell. | NBG6616> ? | ATEN x,(y) set BootExtension Debug Flag (y=password) | ATSE x show the seed of password generator | ATSH dump manufacturer related data in ROM | ATRT (x,y,z,u) ATRT RAM read/write test (x=level, y=start addr, z=end addr, u=iterations | ATGO boot up whole system | ATUR x upgrade RAS image (filename) In order to escape/unlock a password challenge has to be passed. Note: the value is dynamic! you have to calculate your own! First use ATSE $MODELNAME (MODELNAME is the hostname in u-boot env) to get the challange value/seed. | NBG6616> ATSE NBG6616 | 00C91D7EAC3C This seed/value can be converted to the password with the help of this bash script (Thanks to http://www.adslayuda.com/Zyxel650-9.html authors): - tool.sh - ror32() { echo $(( ($1 >> $2) | (($1 << (32 - $2) & (2**32-1)) ) )) } v="0x$1" a="0x${v:2:6}" b=$(( $a + 0x10F0A563)) c=$(( 0x${v:12:14} & 7 )) p=$(( $(ror32 $b $c) ^ $a )) printf "ATEN 1,%X\n" $p - end of tool.sh - | # bash ./tool.sh 00C91D7EAC3C | ATEN 1,10FDFF5 Copy and paste the result into the shell to unlock zloader. | NBG6616> ATEN 1,10FDFF5 If the entered code was correct the shell will change to use the ATGU command to enter the real u-boot shell. | NBG6616> ATGU | NBG6616# Signed-off-by: Christoph Krapp <achterin@googlemail.com> [move keys to DTSI, adjust usb_power DT label, remove kernel config change, extend commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: make dependency on kmod-usb-net selectiveAdrian Schmutzler2020-08-102-3/+3
| | | | | | | | A bunch of kernel modules depends on kmod-usb-net, but does not select it. Make AddDepends/usb-net selective, so we can drop some redundant +kmod-usb-net definitions for DEVICE_PACKAGES. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Telco T1Nicholas Smith2020-08-104-2/+159
| | | | | | | | | | | | | | | | | | | | | | Description: 2x 100Mbps Etherent ports 24V passive PoE 64MB RAM 16MB Flash 2.4GHz WiFi 1x WiFi antenna (RP-SMA connector) 1x LTE antenna (SMA connector) Sierra Wireless MC7430 LTE modem Flash instructions: Original firmware is based on OpenWrt. Flash using sysupgrade -n SUPPORTED_DEVICES is added to support factory firmware. Signed-off-by: Nicholas Smith <nicholas.smith@telcoantennas.com.au> [add missing led_rssi0 DT label, add SUPPORTED_DEVICES] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: increase spi frequency on TL-WDR3500/3600/4300/4310Aleksander Jan Bajkowski2020-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SPI Flash chip supports up to 33 MHz wihout fast read opcode. Available frequencies are 112.5, 56.25, 37.5, 28.125, 22.5 etc. This patch increases the nominal maximum frequency to 33 MHz, reaching an effective increase from 22.5 to 28.125 MHz. Formula to calculate SPI frequency: Freq = 225 MHz / 2 / div Before: $ time dd if=/dev/mtd1 of=/dev/null bs=8M 0+1 records in 0+1 records out real 0m 3.58s user 0m 0.00s sys 0m 3.57s After: $ time dd if=/dev/mtd1 of=/dev/null bs=8M 0+1 records in 0+1 records out real 0m 2.95s user 0m 0.00s sys 0m 2.93s Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl> [minor commit message adjustments] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link TL-WPA8630P v2Andreas Böhler2020-08-107-1/+258
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The TL-WPA8630P v2 is a HomePlug AV2 compatible device with a QCA9563 SoC and 2.4GHz and 5GHz WiFi modules. Specifications -------------- - QCA9563 750MHz, 2.4GHz WiFi - QCA9888 5GHz WiFi - 8MiB SPI Flash - 128MiB RAM - 3 GBit Ports (QCA8337) - PLC (QCA7550) MAC address assignment ---------------------- WiFi 2.4GHz and LAN share the same MAC address as printed on the label. 5GHz WiFi uses LAN-1, based on assumptions from similar devices. LAN Port assignment ------------------- While there are 3 physical LAN ports on the device, there will be 4 visible ports in OpenWrt. The fourth port (internal port 5) is used by the PowerLine Communication SoC and thus treated like a regular LAN port. Versions -------- Note that both TL-WPA8630 and TL-WPA8630P, as well as the different country-versions, differ in partitioning, and therefore shouldn't be cross-flashed. This adds support for the two known partitioning variants of the TL-WPA8630P, where the variants can be safely distinguished via the tplink-safeloader SupportList. For the non-P variants (TL-WPA8630), at least two additional partitioning schemes exist, and the same SupportList entry can have different partitioning. Thus, we don't support those officially (yet). Also note that the P version for Germany (DE) requires the international image version, but is properly protected by SupportList. In any case, please check the OpenWrt Wiki pages for the device before flashing anything! Installation ------------ Installation is possible from the OEM web interface. Make sure to install the latest OEM firmware first, so that the PLC firmware is at the latest version. However, please also check the Wiki page for hints according to altered partitioning between OEM firmware revisions. Additional thanks to Jon Davies and Joe Mullally for bringing order into the partitioning mess. Signed-off-by: Andreas Böhler <dev@aboehler.at> [minor DTS adjustments, add label-mac-device, drop chosen, move common partitions to DTSI, rename de to int, add AU support strings, adjust TPLINK_BOARD_ID, create common node in generic-tp-link.mk, adjust commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link TL-WA901ND v3Adrian Schmutzler2020-08-084-0/+64
| | | | | | | | | | | | | | | | | | | | | This ports support for the TL-WA901ND v3 from ar71xx to ath79. Most of the hardware is shared with the TL-WA850/860RE v1 range extenders. It completes the TL-WA901ND series in ath79. Specifications: Board: AP123 / AR9341 Flash/RAM: 4/32 MiB CPU: 535 MHz WiFi: 2.4 GHz b/g/n Ethernet: 1 port (100M) Flashing instructions: Upload the factory image via the vendor firmware upgrade option. This has not been tested on device, but port from ar71xx is straightforward and the device will be disabled by default anyway. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: drop redundant kmods-leds-gpioAdrian Schmutzler2020-08-081-7/+6
| | | | | | | The ath79 target has CONFIG_LEDS_GPIO=y set in kernel config, so no need to pull the kmod-leds-gpio module for specific devices. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79/nand: add support for Netgear WNDR4300TNDavy Hollevoet2020-08-0610-40/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the WNDR4300TN, marketed by Belgian ISP Telenet. The hardware is the same as the WNDR4300 v1, without the fifth ethernet port (WAN) and the USB port. The circuit board has the traces, but the components are missing. Specifications: * SoC: Atheros AR9344 * RAM: 128 MB * Flash: 128 MB NAND flash * WiFi: Atheros AR9580 (5 GHz) and AR9344 (2.4 GHz) * Ethernet: 4x 1000Base-T * LED: Power, LAN, WiFi 2.4GHz, WiFi 5GHz, WPS * UART: on board, to the right of the RF shield at the top of the board Installation: * Flashing through the OEM web interface: + Connect your computer to the router with an ethernet cable and browse to http://192.168.0.51/ + Log in with the default credentials are admin:password + Browse to Advanced > Administration > Firmware Upgrade in the Telenet interface + Upload the Openwrt firmware: openwrt-ath79-nand-netgear_wndr4300tn-squashfs-factory.img + Proceed with the firmware installation and give the device a few minutes to finish and reboot. * Flashing through TFTP: + Configure your wired client with a static IP in the 192.168.1.x range, e.g. 192.168.1.10 and netmask 255.255.255.0. + Power off the router. + Press and hold the RESET button (the factory reset button on the bottom of the device, with the gray circle around it, next to the Telenet logo) and turn the router on while keeping the button pressed. + The power LED will start flashing orange. You can release the button once it switches to flashing green. + Transfer the image over TFTP: $ tftp 192.168.1.1 -m binary -c put openwrt-ath79-nand-netgear_wndr4300tn-squashfs-factory.img Signed-off-by: Davy Hollevoet <github@natox.be> [use DT label reference for adding LEDs in DTSI files] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: unify CONFIG_GPIO_SYSFS in kernel configsFelix Fietkau2020-08-062-2/+0
| | | | | | Enable it for all platforms Signed-off-by: Felix Fietkau <nbd@nbd.name>