aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79
Commit message (Collapse)AuthorAgeFilesLines
* ath79: fix UniFi AC LED mappingDavid Bauer2019-09-121-4/+9
| | | | | | | | | | | The UniFi AC LED mapping is currently off. The blue/white LED are used as WiFi indicators, while the vendor firmware does not feature WiFI LEDs. Instead, the LEDs are used to indicate the devices status. Align the LED mapping to match the vendor firmware as good as possible. Signed-off-by: David Bauer <mail@david-bauer.net>
* treewide: sysupgrade: use $UPGRADE_BACKUP to check for backupRafał Miłecki2019-09-111-2/+2
| | | | | | | Now that $UPGRADE_BACKUP is set conditionally there is no need to check the $UPGRADE_OPT_SAVE_CONFIG anymore. All conditions can be simplified. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: use new procd sysupgrade $UPGRADE_BACKUP variableRafał Miłecki2019-09-051-2/+2
| | | | | | | | | | It's a variable set by procd that should replace hardcoded /tmp/sysupgrade.tgz. This change requires the most recent procd with the commit 0f3c136 ("sysupgrade: set UPGRADE_BACKUP env variable"). Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: fix invalid UPGRADE_OPT_SAVE_CONFIG spellingsRafał Miłecki2019-09-051-2/+2
| | | | | | | That was a result of accidentally running "sed" twice on some files. Fixes: 5797fe84a3b5 ("treewide: replace remaining (not working now) $SAVE_CONFIG uses") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: replace remaining (not working now) $SAVE_CONFIG usesRafał Miłecki2019-09-051-2/+2
| | | | | | | This var has been replaced by the $UPGRADE_OPT_UPGRADE_OPT_SAVE_CONFIG Fixes: b534ba961100 ("base-files: pass "save_config" option to the "sysupgrade" method") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* ath79: add support for TP-Link WDR3500 v1Adrian Schmutzler2019-09-036-131/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware: SoC: AR9344 CPU: 560 MHz Flash: 8 MiB RAM: 128 MiB WiFi: Atheros AR9340 2.4GHz 802.11bgn Atheros AR9300 5GHz 802.11an Ethernet: AR934X built-in switch, WAN on separate physical interface USB: 1x 2.0 Flash instruction (WebUI): Download *-factory.bin image and upload it via the firmwary upgrade function of the stock firmware WebUI. Flash instruction (TFTP): 1. Set PC to fixed ip address 192.168.0.66 2. Download *-factory.bin image and rename it to wdr3500v1_tp_recovery.bin 3. Start a tftp server with the image file 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. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> [removed stray newline] Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: image: disable sysupgrade images for routerstations and ja76pf2Tomasz Maciej Nowak2019-09-012-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because a bug in handling partial erase blocks in 4.19 kernel, using sysupgrade images will hard brick devices that use RedBoot bootloader and have "FIS directory" with "RedBoot config" on the same erase block. Since flashing the devices from bootloader is safe, and to not cause a situation where external chip programmer or JTAG is needed, disable sysupgrade images for affected boards while creating kernel.bin and rootfs.bin for jjPlus JA76PF2 board, which doesn't have factory image. To set up the JA76PF2 board follow "Installation" instructions in b3a0c97 ("ath79: add support for jjPlus JA76PF2") except the part of loading initramfs image and using sysupgrade image for flashing (point 6 and 7). Enter following commands to flash the board from bootloader: fis init load -r -b 0x80060000 <openwrt_kernel_image_name> fis create linux load -r -b %{FREEMEMLO} <openwrt_rootfs_image_name> fis create rootfs fis load -l linux exec -c "" For RouterStations use TFTP recovery procedure. Ref: FS#2428 Cc: Matt Merhar <mattmerhar@protonmail.com> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* ath79: fix FIS partition detection for 4.19 kernelTomasz Maciej Nowak2019-09-011-0/+44
| | | | | | | | | When bumping to 4.19 the patch responsible for scaning flash for FIS partition got left out. Without it devices with RedBoot bootloader using automatic partitions detection in dts won't boot with the new kernel. Fixes: 3771176 ("ath79: add support for linux 4.19") Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* ath79: image: add supported string for routerstations and ja76pf2Tomasz Maciej Nowak2019-09-012-0/+3
| | | | | | | | | Now that the md5 check is fixed and metadata present, sysupgrade on ar71xx will complain about device not being supported by the image. Since the cause is not matching strings for supported devices add them accordingly. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* ath79: image: append metadata to routerstations and ja76pf2 imagesTomasz Maciej Nowak2019-09-012-2/+2
| | | | | | | | This target enforces metadata check so add the necessary information. It was previously removed because md5 sum check. When using these sysupgrade images on ar71xx target the check would complain about them not matching. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* ath79: image: retire combined-image for Adtran/Bluesocket devicesTomasz Maciej Nowak2019-09-011-1/+1
| | | | | | | | | | | | During review it slipped by that these devices use combined-image which should never be used for newly added ones. Therefore switch to sysupgrade-tar generated images introduced in 8f6f260 ("ath79: routerstation: prepare to use sysupgrade-tar format image"). The sysupgrade accepts both images for now so no reression should occur. Cc: Brian Gonyer <bgonyer@gmail.com> Cc: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* ath79: dts: fix ja76pf2 spi frequencyTomasz Maciej Nowak2019-09-011-1/+1
| | | | | | | | | | | The frequency was filled acording the information from datasheet for particular chip (Winbond 25Q128BVFG). Unfortunately this led to coruption and introduced bad blocks on the chip. Reducing the frequency to commonly used in ath79, made the board more stable and no new bad blocks were spoted. Fixes: b3a0c97 ("ath79: add support for jjPlus JA76PF2") Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* ath79: correct OCEDO Ursus phy-mode propertyDavid Bauer2019-08-311-1/+3
| | | | | | | | | This fixes the previously incorrect phy-mode for the OCEDO Ursus GMAC0. See 62abbd587dc9 ("ath79: correct various phy-mode properties") for more details. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: etactica-eg200: fix restore buttonKarl Pálsson2019-08-311-1/+1
| | | | | | | | | The button is labelled reboot/restore in documentation, and has always been used for that. Naming it WPS has always been wrong. Signed-off-by: Karl Pálsson <karlp@etactica.com> [matched author to SoB] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ar71xx/ath79: ag71xx: dont fetch the same var againKoen Vandeputte2019-08-271-1/+1
| | | | | | | tx_size was just declared above and set to BIT(tx->order) Use the declaration instead, which could avoid a pointer deref Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ar71xx/ath79: ag71xx: get ring_mask consistentKoen Vandeputte2019-08-271-1/+1
| | | | | | | | | All other instances of this identical declaration fetch the value directly from the ring_order. Also do it here. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ath79: add support for gl-ar750Luochongjun2019-08-244-0/+158
| | | | | | | | | | | | | | | | | | | | This patch supports gl-ar750, which was previously supported by ar71xx. Specification: - SOC: QCA9531 (650MHz) - Flash: 16 MiB (W25Q128FVSG) - RAM: 128 MiB DDR2 - Ethernet: 10/100: 2xLAN + 10/100: 1xWAN - Wireless: 2.4GHz (bgn) and 5GHz (ac) - USB: 1x USB 2.0 port - Switch: 1x switch - Button: 1x reset button - LED: 3x LEDS (white) Flash instruction: Support for sysupgrade directive upgrades, as well as luci upgrades. Signed-off-by: Luochongjun <luochongjun@gl-inet.com>
* ath79: create DTSI for ar9341 TP-Link devicesAdrian Schmutzler2019-08-174-356/+152
| | | | | | | | | | This patch creates a shared DTSI for the TP-Link devices based on ar9341 as those share a lot of definitions. While at it, change from gpio-keys-polled to gpio-keys, remove unused pll-data and remove some inherited stuff, too. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: migrate TP-Link TL-MR3420v2 to ath79Lim Guo Wei2019-08-174-18/+221
| | | | | | | | | | | | | | | | | | | | | Specifications: - SoC: ar9341 - RAM: 32M - Flash: 4M - Ethernet: 5x FE ports - WiFi: ar9341-wmac Flash instruction: Upload generated factory firmware on vendor's web interface. This changes the key assignment compared to ar71xx support of this device, since of the two keys on the device one is used as combined Reset/WPS and the second one as WiFi on/off button. Despite, the reset button required GPIO_ACTIVE_HIGH to work correctly. Signed-off-by: Lim Guo Wei <limguowei@gmail.com> [redo commit message] Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: add support for PISEN TS-D084xixiao zheng2019-08-173-0/+127
| | | | | | | | | | | | | | | | | | | | | PISEN TS-D084 is an wireless router with a battery and integrated power supply based on Atheros AR9331. Specification: - 400/400/200 MHz (CPU/DDR/AHB) - 64 MB of RAM (DDR2) - 8 MB of FLASH (SPI NOR) - 1x 10/100 Mbps Ethernet - 1T1R 2.4 GHz (AR9331) - 1x USB 2.0 Flash instruction: Upload generated factory image through web interface. Signed-off-by: xixiao zheng <xixiaozheng64@gmail.com> [wrap commit message, add flash instruction] Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: adtran,bsap1840/bsap1800-v2: move bootcount out of 02_networkChuanhong Guo2019-08-172-1/+4
| | | | | | | | | These device supports were introduced before /etc/init.d/bootcount and they had a bootcount reset done in /etc/board.d/02_network. Move it into /etc/init.d/bootcount instead. Suggested-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us> Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* treewide: sync bootcount scripts across targetsChuanhong Guo2019-08-171-0/+1
| | | | | | | | | | | | | | | This commit made the following changes to sync all bootcount scripts: 1. use boot() instead of start() This script only needs to be executed once when boot is complete. use boot() to make this explicit. 2. drop sourcing of /lib/functions.sh This is aready done in /etc/rc.common. 3. ramips: replace board name checking with a case Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: remove SUPPORTED_DEVICES for TP-Link Archer D50 v1Adrian Schmutzler2019-08-151-1/+0
| | | | | | | This device has not been supported in ar71xx, so there is no need for an explicit SUPPORTED_DEVICES entry. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: use Power LED as System LED for TL-WR842Nv3David Bauer2019-08-151-6/+6
| | | | | | | | | | | The TP-Link TL-WR842N v3 has a software-controllable Power LED. The WPS LED is normally only used as a System LED, when the Power LED can't be controlled by software. Additionally, the Power LED is also the System LED for this board in ar71xx. Signed-off-by: David Bauer <mail@david-bauer.net>
* treewide: convert WiFi caldata size and offset to hexadecimalAdrian Schmutzler2019-08-142-65/+65
| | | | | | | | | | | | | | This changes size and offset set for WiFi caldata extraction and MAC address adjustment to hexadecimal notation. This will be much clearer for the reader when numbers are big, and will also match the style used for mtd-cal-data in DTS files. Since dd cannot deal with hexadecimal notation, one has to convert back to decimal by simple $(($hexnum)). Acked-by: Alexander Couzens <lynxis@fe80.eu> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: convert MAC address location offsets to hexadecimalAdrian Schmutzler2019-08-144-29/+29
| | | | | | | | | | | | | This changes the offsets for the MAC address location in mtd_get_mac_binary* and mtd_get_mac_text to hexadecimal notation. This will be much clearer for the reader when numbers are big, and will also match the style used for mtd-mac-address in DTS files. (e.g. 0x1006 and 0x5006 are much more useful than 4102 and 20486) Acked-by: Alexander Couzens <lynxis@fe80.eu> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: update DTS for TP-Link WDR3600/WDR4300 v1Adrian Schmutzler2019-08-131-30/+29
| | | | | | | This replaces gpio-export by gpio-hogs and switches buttons to interrupt-driven gpio-keys. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add missing IMAGE_SIZE for Comfast WR650AC v1/v2Adrian Schmutzler2019-08-091-0/+2
| | | | | | | | When adding support in 9ed272fe9500 ("ath79: add support for Comfast WR650AC v1/v2"), IMAGE_SIZE has not been added to device definition. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ar71xx/ath79: ag71xx: init rings with GFP_KERNELKoen Vandeputte2019-08-091-1/+1
| | | | | | | | | | | | | | | Upstream commit 246902bdf562d45ea3475fac64c93048a7a39f01 Which contains following explanation: -- There is no need to use GFP_ATOMIC here, GFP_KERNEL should be enough. The 'kcalloc()' just a few lines above, already uses GFP_KERNEL. -- Looking at the code, all other descriptors also use plain GFP_KERNEL Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ar71xx/ath79: ag71xx: fix sleep in atomicKoen Vandeputte2019-08-091-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When enabling atomic-sleep-debugging options in the kernel, following splat is seen when disabling the interface (which happens on boot): [ 10.892878] eth0: link down [ 10.896788] BUG: sleeping function called from invalid context at net/core/dev.c:5563 [ 10.904730] in_atomic(): 1, irqs_disabled(): 1, pid: 425, name: ip [ 10.911004] 2 locks held by ip/425: [ 10.914539] #0: (rtnl_mutex){....}, at: [<80377474>] rtnetlink_rcv_msg+0x2d8/0x380 [ 10.922441] #1: (&(&ag->lock)->rlock){....}, at: [<80330158>] ag71xx_hw_disable+0x24/0x94 [ 10.930976] CPU: 0 PID: 425 Comm: ip Not tainted 4.14.136 #0 [ 10.936716] Stack : 805e0000 80589228 80557404 876998ec 80610000 80610000 87cdcafc 805b5327 [ 10.945233] 80551534 000001a9 8061386c 87699ccc 87cfb180 00000001 876998a0 84f70903 [ 10.953751] 00000000 00000000 80b00000 8769979c 6a7407fa 00000000 00000007 00000000 [ 10.962270] 000000b7 16d0954a 000000b6 00000000 80000000 87cb658c 87cb65b0 00000001 [ 10.970787] 8046f97c 87699ccc 87cfb180 87ff2810 00000003 802ce724 0806e098 80610000 [ 10.979306] ... [ 10.981797] Call Trace: [ 10.984287] [<8006cb0c>] show_stack+0x58/0x100 [ 10.988814] [<800aab34>] ___might_sleep+0x100/0x120 [ 10.993774] [<8035c434>] napi_disable+0x30/0xd8 [ 10.998377] [<80330198>] ag71xx_hw_disable+0x64/0x94 [ 11.003418] [<8033069c>] ag71xx_stop+0x24/0x38 [ 11.007959] [<80359e30>] __dev_close_many+0xcc/0x104 [ 11.013009] [<80362eac>] __dev_change_flags+0xc8/0x1ac [ 11.018227] [<80362fb8>] dev_change_flags+0x28/0x70 [ 11.023182] [<80376890>] do_setlink+0x31c/0x91c [ 11.027786] [<80379360>] rtnl_newlink+0x3ec/0x7f8 [ 11.032563] [<80377498>] rtnetlink_rcv_msg+0x2fc/0x380 [ 11.037799] [<8039a734>] netlink_rcv_skb+0xd4/0x178 [ 11.042754] [<80399d10>] netlink_unicast+0x168/0x250 [ 11.047796] [<8039a2d4>] netlink_sendmsg+0x3d8/0x434 [ 11.052841] [<8033f0e4>] ___sys_sendmsg+0x1dc/0x290 [ 11.057794] [<80340140>] __sys_sendmsg+0x54/0x84 [ 11.062495] [<8007212c>] syscall_common+0x34/0x58 This is caused by calling napi_disable() while holding the spinlock. Fix it by omitting the spinlock, which is not required here Extensively tested on GL-MiFi, RB-912 and RB-922 hardware Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ath79: fix identation errors in 01_ledsDavid Bauer2019-08-091-7/+7
| | | | | | Fix the identation of 01_leds to keep the style of the file consistent. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add missing IMAGE_SIZE for Comfast E314N-v2Adrian Schmutzler2019-08-091-0/+1
| | | | | | | | When adding support in abbbecaa73dc ("ath79: add support for Comfast E314N-v2"), IMAGE_SIZE has not been added to device definition. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix whitespace errors from adding D-Link DIR-842 C3Adrian Schmutzler2019-08-094-13/+13
| | | | | | | | | We completely overlooked whitespace errors when reviewing 796ad2f7ef6f ("ath79: add support for D-Link DIR-842 C3"). Fix them and and also fix Makefile indent for C1/C2. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Comfast WR650AC v1/v2Joan Moreau2019-08-096-3/+287
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a dual band 11a/11n router with 1x wan and 4x gig lan ports. There are two versions of this router which can be identified through the factory web interface, v1 has 128mb ram and a uboot size of 128k, v2 has 256mb ram and a uboot size of 256k, the remaining hardware and PCB markings are the same. Short specification: SoC: Qualcomm Atheros QCA9558 - 720 MHz Switch: Atheros AR8327 Second radio : Qualcomm Atheros QCA9880 802.11ac 4 LAN/1 WAN 1000Mps Ethernet 256 MB of RAM (DDR2) 16 MB of FLASH 3x2.4 GHz, 3x5GHz antennas Steps to install : Option A : Use vendor UI Option B (if A is not working) : (a) Download 'backup' from vendor UI and rename it backup.tar.gz (b) Open the archive, and update the root password in /etc/shadow by '$1$9wX3HGfB$X5Sb3kqzzBLdKRUR2kfFd0' (c) 'Restore' from the archive using the vendor UI. Root password is now 'aaa' (d) Scp the firwmware to the device: $ scp <openwrt-sysupgrade>.bin root@192.168.1.1:/ (d) ssh to the device and flash the firmware: $ cd / $ mtd -e firmware -r write <openwrt-sysupgrade>.bin firmware Signed-off-by: Gareth Parker <gareth41@orcon.net.nz> Signed-off-by: Ding Tengfei <dtf@comfast.cn> Signed-off-by: Joan Moreau <jom@grosjo.net> [reformatted commit message] Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add support for Comfast E314N-v2Joan Moreau2019-08-094-0/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Taken code from https://patchwork.ozlabs.org/patch/884850/ that was never pushed by the author, and adapted to ath79. The Comfast E314N-V2 is a 2.4 GHz 2x2 radio with a built-in directional antenna and a second Ethernet port - very similar to the Ubiquiti NanoStation M2. The Ethernet port features a pass-through PoE capability, enabled or disabled with a slide switch. Specifications : - System-On-Chip: Qualcomm/Atheros QCA9531 - CPU/Speed: 650 MHz - Flash size: 8 MiB - RAM: 64 MiB - 2 Ethernet 1Gbp - 1 reset button - 1 switch to choose PoE from LAN or Wan. 48Vdc - Wifi 2.4 Ghz (b/g/n) - UART inside the box (3.3V, pins marked on the PCB) Firmware can be flashed on these units by the following method: 1.) Apply power to the unit 2.) Immediately AFTER applying power, hold down the reset button 3.) The WAN, LAN, and wireless lights will flash - wait three seconds (three flashes) and then release the button. 4.) After a second, the lights will flutter quickly and the unit will be visible at 192.168.1.1. A web page will be available to enable quick and simple uploading and flashing of firmware. During the boot process, these units also look for a tftp server at 192.168.1.10. If one is present, the firmware can be uploaded as a file called firmware-auto.bin Signed-off-by: Joan Moreau <jom@grosjo.net> [wrapped commit message - fix commit title capitalization] Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add support for PISEN WMB001NChuanhong Guo2019-08-085-0/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: - SoC: AR9341 - RAM: 64M - Flash: 16M - Ethernet: 1 * FE port - WiFi: ar934x-wmac - Sound: WM8918 DAC 1 * 3.5mm headphone jack 2 * RCA connectors for speakers 1 * SPDIF out - USB: 1 * USB2.0 port Flash instruction: Upload generated factory image via vendor's web interface. Notes: A. Audio stuff: 1. Since AR934x, all pins for peripheral blocks can be mapped to any available GPIOs. We currently don't have a PCM/I2S driver for AR934x so pinmux for i2s and SPDIF are bound to i2c gpio node. This should be moved into I2S node when a PCM/I2S driver is available. 2. The i2c-gpio node is for WM8918. DT binding for it can't be added currently due to a missing clock from I2S PLL. B. Factory image: Image contains a image header and a tar.gz archive. 1. Header: A 288 byte header that has nothing to do with appended tarball. Format: 0x0-0x7 and 0x18-0x1F: magic values 0x20: Model number string 0xFC: Action string. It's either "update" or "backup" 0x11C: A 1 byte checksum. It's XOR result of 0x8-0x11B Firmware doesn't care about the rest of the header as long as checksum result is correct. The same header is used for backup and update routines so the magic values and model number can be obtained by generating a backup bin and grab values from it. 2. Tarball: It contains two files named uImage and rootfs, which will be flashed into corresponding mtd partition. Writing a special utility that can only output a fixed binary blob is overkill so factory image header is placed under image/bin instead. C. LED The wifi led has "Wi-Fi" marked on the case but vendor's firmware used it as system status indicator. I did the same in this device support patch. D. Firmware Factory u-boot is built without 'savenv' support so it's impossible to change kernel offset. A 2MB kernel partition won't be enough in the future. OKLI loader is used here to migrate this problem: 1. add OKLI image magic support into uImage parser. 2. build an OKLI loader, compress it with lzma and add a normal uImage header. 3. flash the loader to where the original kernel supposed to be. 4. create a uImage firmware using OKLI loader. 5. flash the created firmware to where rootfs supposed to be. By doing so, u-boot will start OKLI loader, which will then load the actual kernel at 0x20000. The kernel partition is 2MB, which is too much for our loader. To save this space, "mtd-concat" is used here: 1. create a 64K (1 erase block) partition for OKLI loader and create another partition with the left space. 2. concatenate rootfs and this partition into a virtual flash. 3. use the virtual flash for firmware partition. Currently OKLI loader is flashed with factory image only. sysupgrade won't replace it. Since it only has one function and it works for several years, its unlikely to have some bugs that requires a replacement. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: add support for D-Link DIR-842 C3Perry Melange2019-08-076-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware spec of DIR-842 C3: SoC: QCA9563 DRAM: 128MB DDR2 Flash: 16MB SPI-NOR Switch: QCA8337N WiFi 5.8GHz: QCA9888 WiFi 2.4Ghz: QCA9563 USB: circuit onboard, but components are not soldered Flash instructions: 1. Upgrade the factory.bin through the factory web interface or the u-boot failsafe interface. The firmware will boot up correctly for the first time. Do not power off the device after OpenWrt has booted. Otherwise the u-boot will enter failsafe mode as the checksum of the firmware has been changed. 2. Upgrade the sysupgrade.bin in OpenWrt. After upgrading completes the u-boot won't complain about the firmware checksum and it's OK to use now. 3. If you powered off the device before upgrading the sysupgrade.bin, just upgrade the factory.bin through the u-boot failsafe interface and then goto step 2. Signed-off-by: Perry Melange <isprotejesvalkata@gmail.com>
* ath79: fix vendor capitalization of TP-LinkAdrian Schmutzler2019-08-072-2/+2
| | | | | | | According to detective grep, with this patch all devices should be labelled "TP-Link" consistently. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link CPE220 v2Adrian Schmutzler2019-08-075-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | This seems to be identical to CPE210 v1 despite having removable antennas. Specifications: * SoC: Qualcomm Atheros AR9344 (560 MHz) * RAM: 64MB * Storage: 8 MB * Wireless: 2.4GHz N based built into SoC 2x2 * Ethernet: 2x 100/10 Mbps, integrated into SoC, 24V POE IN Installation: Flash factory image through stock firmware WEB UI or through TFTP: To get to TFTP recovery just hold reset button while powering on for around 4-5 seconds and release. Rename factory image to recovery.bin Stock TFTP server IP:192.168.0.100 Stock device TFTP address:192.168.0.254 Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link CPE510 v1Adrian Schmutzler2019-08-075-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | TP-Link CPE510-v1 is an outdoor wireless CPE for 5 GHz with two Ethernet ports based on Atheros AR9334 Specifications: - 560/450/225 MHz (CPU/DDR/AHB) - 2x 10/100 Mbps Ethernet, 1x PoE-in, 1x PoE-out - 64 MB of DDR2 RAM - 8 MB of SPI-NOR Flash - 2T2R 5 GHz - 13 dBi built-in antenna - Power, LAN0, LAN1 green LEDs - 4x green RSSI LEDs Flash factory image through stock firmware WEB UI or through TFTP: To get to TFTP recovery just hold reset button while powering on for around 4-5 seconds and release. Rename factory image to recovery.bin Stock TFTP server IP:192.168.0.100 Stock device TFTP address:192.168.0.254 Based on the work of Paul Wassi <p.wassi@gmx.at> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link CPE210 v1Adrian Schmutzler2019-08-076-0/+117
| | | | | | | | | | | | | | | | | | | | | | Specifications: * SoC: Qualcomm Atheros AR9344 (560 MHz) * RAM: 64MB * Storage: 8 MB * Wireless: 2.4GHz N based built into SoC 2x2 * Ethernet: 2x 100/10 Mbps, integrated into SoC, 24V POE IN Installation: Flash factory image through stock firmware WEB UI or through TFTP: To get to TFTP recovery just hold reset button while powering on for around 4-5 seconds and release. Rename factory image to recovery.bin Stock TFTP server IP:192.168.0.100 Stock device TFTP address:192.168.0.254 Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: create common definition tplink-loader-okliAdrian Schmutzler2019-08-072-18/+12
| | | | | | | The loader-okli is shared by several TP-Link CPExxx devices, so give it its own definition to prevent too much code duplication. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: provide common DTSI for CPE510 v2/v3 and CPE610Adrian Schmutzler2019-08-073-194/+103
| | | | | | | This puts some common code into a new shared DTSI. Common nodes are chosen so that the new DTSI can be used for CPE210 v1, too. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP9343-based TP-Link TL-WR94x devicesAdrian Schmutzler2019-08-058-0/+297
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for several TP-Link devices based on TP9343 ("a QCA9561 without PCIe and USB"): - TL-WR940N v3 - TL-WR940N v4 - TL-WR941ND v6 The devices are only different concerning LEDs and MAC address assignment. All TL-WR940 are with non-detachable antennas (N), all TL-WR941 devices are with detachable antennas (ND). Specification: - 750 MHz CPU - 32 MB of RAM - 4 MB of FLASH - 2.4 GHz WiFi - 4x 10/100 Mbps Ethernet Flash instruction (WebUI): Download *-factory.bin image and upload it via the firmwary upgrade function of the stock firmware WebUI. Flash instruction (TFTP): 1. Set PC to fixed ip address 192.168.0.66 2. Download *-factory.bin image and rename it to * (see below) 3. Start a tftp server with the image file 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. * TFTP image names: 940 v3: wr941ndv6_tp_recovery.bin 940 v4: wr940nv4_tp_recovery.bin 941 v6: wr941ndv6_tp_recovery.bin Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for D-Link DIR-842 C1Jackson Lim2019-08-058-144/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware spec of DIR-842 C1: SoC: QCA9563 DRAM: 128MB DDR2 Flash: 16MB SPI-NOR Switch: QCA8337N WiFi 5.8GHz: QCA9888 WiFi 2.4Ghz: QCA9563 USB: circuit onboard, but components are not soldered Flash instructions: 1. Upgrade the factory.bin through the factory web interface or the u-boot failsafe interface. The firmware will boot up correctly for the first time. Do not power off the device after OpenWrt has booted. Otherwise the u-boot will enter failsafe mode as the checksum of the firmware has been changed. 2. Upgrade the sysupgrade.bin in OpenWrt. After upgrading completes the u-boot won't complain about the firmware checksum and it's OK to use now. 3. If you powered off the device before upgrading the sysupgrade.bin, just upgrade the factory.bin through the u-boot failsafe interface and then goto step 2. Signed-off-by: Jackson Lim <jackcolentern@gmail.com> [fix whitespace issues] Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add SUPPORTED_DEVICES for TP-Link TL-WR841N/ND v9 to v12Adrian Schmutzler2019-08-051-0/+4
| | | | | | In ar71xx, v10 and v12 did not have separate board_name. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link TL-WR841N/ND v12Adrian Schmutzler2019-08-056-23/+49
| | | | | | | | | | | | | | | | | | | | | | | This router has the same hardware as TP-LINK TL-WR841N/ND v11 (same FCC ID, same TFTP image name...). Flash instruction (WebUI): Download *-factory.bin image and upload it via the firmwary upgrade function of the stock firmware WebUI. Flash instruction (TFTP): 1. Set PC to fixed ip address 192.168.0.66 2. Download *-factory.bin image and rename it to wr841nv11_tp_recovery.bin (it's really v11, not v12) 3. Start a tftp server with the image file 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. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for TP-Link TL-WR841N/ND v10Adrian Schmutzler2019-08-055-3/+27
| | | | | | | | | | | | | | | | | | | | | | | The TL-WR841N/ND v10 is mostly identical to the v9. Apart from some minor changes, it contains a newer revision of the QCA9533 SoC and the CPU clock is significantly higher. Flash instruction (WebUI): Download *-factory.bin image and upload it via the firmwary upgrade function of the stock firmware WebUI. Flash instruction (TFTP): 1. Set PC to fixed ip address 192.168.0.66 2. Download *-factory.bin image and rename it to wr841nv10_tp_recovery.bin 3. Start a tftp server with the image file 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. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix SOC version in compat string for A770Piotr Dymacz2019-07-311-1/+1
| | | | | | YunCore A770 is based on QCA9531, not QCA9533. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* ath79: add support for ALFA Network AP121FRoger Pueyo Centelles2019-07-314-0/+148
| | | | | | | | | | | | | This commit ports support for the ALFA Network AP121F, a pocket-size router with 1 Ethernet and 2.4 GHz WiFi based on the AR9331 SoC, to the ath79 target (it was already supported in ar71xx; see commit 0c6165d2 for more details). Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> [pepe2k@gmail.com: fixed GPIO polarity, included USB support, changed DTS nodes order, moved WLAN LED trigger define to DTS, made U-Boot env partition writable] Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>