aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79
Commit message (Collapse)AuthorAgeFilesLines
* ath79: fix remaining IMAGE_SIZE issuesAdrian Schmutzler2019-10-272-1/+2
| | | | | | | | This fixes the remaining IMAGE_SIZE issues in ath79 target. All devices in target have been checked, so together with previous patches this target should be "clean" afterwards. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix IMAGE_SIZE for common TP-Link definitionsAdrian Schmutzler2019-10-271-3/+3
| | | | | | | | | | | | | | | | | | | So far, IMAGE_SIZE is set as follows: tplink-4m* 3904k 0x3d0000 tplink-8m* 7936k 0x7c0000 tplink-16m* 15872k 0xf80000 However, based on the size of firmware partitions in DTS it should be: tplink-4m* 3904k 0x3d0000 tplink-8m* 8000k 0x7d0000 tplink-16m* 16192k 0xfd0000 All (!) 8m*/16m* devices actually follow the latter scheme, which is also consistent in terms of left free space for other partitions. Thus, fix it. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: tidy up and fix IMAGE_SIZE for Ubiquiti devicesAdrian Schmutzler2019-10-271-5/+4
| | | | | | | | | | | | This addresses IMAGE_SIZE inconsistencies in generic_ubnt.mk by: 1. (cosmetical) Move IMAGE_SIZE out of top definition ("ubnt"), since despite two all subdefinition have different values. 2. (change) Fix IMAGE_SIZE for ubnt-xm and ubnt-bz (7552k->7488k). 3. (cosmetical) Move IMAGE_SIZE of ubnt-wa devices to parent node since all have same size (it is defined in parent DTSI ...). Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: wnr1000v2: fix image header informationMichal Cieslakiewicz2019-10-271-0/+2
| | | | | | | | Factory image generated for Netgear WNR1000 v2 has incorrect device and hardware ID information in header due to missing makefile variables. This fix adds them to device section. Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
* ath79: add support for ZyXEL NBG6716André Valentin2019-10-278-1/+387
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attention: Kernel partition size has been enlarged to 4MB. To switch, you must update to latest ar71xx-nand snapshort and flash the sysupgrade-4M-Kernel.bin: zcat openwrt-ath79-nand-zyxel_nbg6716-squashfs-sysupgrade-4M-Kernel.bin | mtd -r -e ubi write - firmware; reboot -f You will end up with a fresh config if you do not inject config into the image. The NBG6716 may come with 128MB or 256MB NAND. ar71xx was able to use all, but ath79 can only use the first 128MB. Therefore the complete NAND needs to be overwritten. If not, the old UBI may make problems and lead to reboot loop. Access the real 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. |NBG6716> HELP |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] 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) |NBG6716> 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. |NBG6716> ATSE NBG6716 |012345678901 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 012345678901 | |ATEN 1,879C711 copy and paste the result into the shell to unlock zloader. |NBG6716> ATEN 1,0046B0017430 If the entered code was correct the shell will change to use the ATGU command to enter the real u-boot shell. |NBG6716> ATGU |NBG6716# Signed-off-by: André Valentin <avalentin@marcant.net>
* ath79: Refactor GL.iNet GL-AR300M-series generic.mkJeff Kletsky2019-10-241-3/+3
| | | | | | | | | | Rework DEVICE_VENDOR, DEVICE_MODEL, and DEVICE_VARIANT for the GL-AR300M series on the ath79-generic target. Changes GL-AR300M-Lite to the current form with DEVICE_VARIANT := Lite (board name is unchanged) Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
* ath79: GL-AR750S: Add I2C SupportJeff Kletsky2019-10-241-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | The GL-AR750S has an internal header for I2C. Provide DTS definitions for the i2c-gpio driver. The I2C drivers; kmod-i2c-core, kmod-i2c-gpio consume ~20 kB of flash and can be loaded as modules, Default clock measured ~11.2 ms period, ~89 kHz The board has well-labeled (unpopulated) headers for serial and I2C along the front edge of the board (the edge with the LEDs). Looking from the top, rear of the unit (behind Ethernet jacks) ------------------------------------------- 5G_LED 2G_LED PWR_LED O O O O O O O 3 S S G T R G V C D N X X N 3 L A D D Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
* ath79: GL-AR300M series: Add I2C SupportJeff Kletsky2019-10-241-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GL-AR300M series have an internal header for I2C. Provide DTS definitions for the i2c-gpio driver. The I2C drivers; kmod-i2c-core, kmod-i2c-gpio consume ~20 kB of flash and can be loaded as modules, Default clock measured ~11.4 ms period, ~88 kHz The board has two sets of (unpopulated) headers. While facing the back of the board (looking into the Ethernet jacks), and looking from the top, the one on the left edge of the baord with four holes is the I2C header. It appears to be labeled J8 on "GL-AR300M-V1.4.0" boards. | (Patch antenna) | | | O GND | O SDA / GPIO 17 | O SCL / GPIO 16 | ⊡ 3V3 (square land) | | (Ethernet jacks) https://docs.gl-inet.com/en/3/hardware/ar300m/#pcb-pinout states "Note: I2C is not working in some early version of the router." Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
* ath79: base-files: disable sysupgrade for routerstations and ja76pf2Tomasz Maciej Nowak2019-10-211-2/+2
| | | | | | | | | | Previous commit 0cc87b3 "ath79: image: disable sysupgrade images for routerstations and ja76pf2" doesn't remedy completely the posibility of bricking the device, since user could try to downgrade with an older image. Therefore disable sysupgrade code for these boards with a small note. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* ath79: apply alphabetical sorting to entries in 10_fix_wifi_macAdrian Schmutzler2019-10-211-4/+4
| | | | Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: remove empty default case in 10_fix_wifi_macAdrian Schmutzler2019-10-211-2/+0
| | | | | | This removes a useless empty default case. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix whitespaces in 10_fix_wifi_macAdrian Schmutzler2019-10-211-8/+7
| | | | | | | This converts leading whitespaces to tabs and removes a double newline at the end of the file. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add LED migration for several Archer Cxx devicesAdrian Schmutzler2019-10-211-3/+9
| | | | | | | | | Several Archer Cxx devices were using board-specific LED names in ar71xx, which were changed to "tp-link:*" in ath79. This patch adds migration for them. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: use board name in LED migrationsAdrian Schmutzler2019-10-211-4/+3
| | | | | | | | | | | | | Several devices added to LED migration script will just have their (old) board name converted to tp-link. By using a variable for this, the amount of code in the migration script can be reduced and the chance for typos is reduced. This patch also introduces the marker for beginning of a pattern "^" to the regex, so the match is more specific. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix SUPPORTED_DEVICES for ubnt_nanostation-mAdrian Schmutzler2019-10-211-1/+1
| | | | | | | | | | | | | The ar71xx images for the Ubiquiti NanoStation M (XM) devices use "nanostation-m" as board name, but the ath79 images are only compatible with the "nano-m" board name, so sysupgrade complains. By changing this additional supported device, sysupgrade smoothly upgrades from ar71xx to ath79. Ref: openwrt#2418 Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix patching ath9k MAC address for MyNet WiFi Range ExtenderAdrian Schmutzler2019-10-211-1/+1
| | | | | | | | | | | | | | | | | The code line patching ath9k MAC address for this device contains a wrong number of arguments including an unset "$mac", which looks like a typo or copy/paste mistake. This has been introduced already in the device support commit 745dee11ac78 ("ath79: add support for WD My Net Wi-Fi Range Extender"). This patch just removes the "$mac" argument, leaving a formally valid line. (No on-device test has been performed.) Cc: Christian Lamparter <chunkeey@gmail.com> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Netgear WNR1000 v2Michal Cieslakiewicz2019-10-215-0/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds ath79 support for Netgear WNR1000v2. Router was previously supported by ar71xx target only. Note: this is a 4_32 device with limited upgrade capabilities. Specification ============= * Description: Netgear WNR1000 v2 * Loader: U-boot * SOC: Atheros AR7240 (340 MHz) * RAM: 32 MiB * Flash: 4 MiB (SPI NOR) - U-boot binary: 256 KiB - U-boot environment: 64 KiB - Firmware: 3712 KiB - ART: 64 KiB * Ethernet: 4 x 10/100 LAN + 1 x 10/100 WAN * Wireless: 2.4 GHz b/g/n (Atheros AR9285) * USB: no * Buttons: - Reset - WiFi (rfkill) - WPS * LEDs: - Power (amber/green) - WAN (amber/green) - WLAN (blue) - 4 x LAN (amber/green) - WPS (green) * UART: 4-pin connector JP2, 3.3V (Vcc, TX, RX, GND), 115200 8N1 * Power supply: DC 12V 1A * MAC addresses: LAN on case label, WAN +1, WLAN +2 Installation ============ * TFTP recovery * TFTP via U-boot prompt * sysupgrade * Web interface Test build configuration ======================== CONFIG_TARGET_ath79=y CONFIG_TARGET_ath79_tiny=y CONFIG_TARGET_ath79_tiny_DEVICE_netgear_wnr1000-v2=y CONFIG_ALL_KMODS=y CONFIG_DEVEL=y CONFIG_CCACHE=y CONFIG_COLLECT_KERNEL_DEBUG=y CONFIG_IMAGEOPT=y CONFIG_KERNEL_DEBUG_INFO=y CONFIG_KERNEL_DEBUG_KERNEL=y Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
* ath79: add support for Netgear WNR2000 v3Michal Cieslakiewicz2019-10-215-0/+236
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds ath79 support for Netgear WNR2000v3. Router was previously supported by ar71xx target only. Note: this is a 4_32 device with limited upgrade capabilities. Specification ============= * Description: Netgear WNR2000 v3 * Loader: U-boot * SOC: Atheros AR7241 (360 MHz) * RAM: 32 MiB * Flash: 4 MiB (SPI NOR) - U-boot binary: 256 KiB - U-boot environment: 64 KiB - Firmware: 3712 KiB - ART: 64 KiB * Ethernet: 4 x 10/100 LAN + 1 x 10/100 WAN * Wireless: 2.4 GHz b/g/n (Atheros AR9287) * USB: no * Buttons: - Reset - WiFi (rfkill) - WPS * LEDs: - Power (amber/green) - WAN (amber/green) - WLAN (blue) - 4 x LAN (amber/green) - WPS (green) * UART: 4-pin connector JP1, 3.3V (Vcc, TX, RX, GND), 115200 8N1 * Power supply: DC 12V 1A * MAC addresses: LAN on case label, WAN +1, WLAN +2 Installation ============ * TFTP recovery * TFTP via U-boot prompt * sysupgrade * Web interface Test build configuration ======================== CONFIG_TARGET_ath79=y CONFIG_TARGET_ath79_tiny=y CONFIG_TARGET_ath79_tiny_DEVICE_netgear_wnr2000-v3=y CONFIG_ALL_KMODS=y CONFIG_DEVEL=y CONFIG_CCACHE=y CONFIG_COLLECT_KERNEL_DEBUG=y CONFIG_IMAGEOPT=y CONFIG_KERNEL_DEBUG_INFO=y CONFIG_KERNEL_DEBUG_KERNEL=y Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
* ath79: WNR612v2: improve device supportMichal Cieslakiewicz2019-10-214-10/+19
| | | | | | | | | | | | | | | This patch improves ath79 support for Netgear WNR612v2. Router functionality becomes identical to ar71xx version. Changes include: * software control over LAN LEDs via sysfs * correct MAC addresses for network interfaces * correct image size in device definition * dts: 'keys' renamed to 'ath9k-keys' * dts: 'label-mac-device' set to eth1 (LAN) * dts: formatting adjustments Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
* ath79: add LAN LEDs control bits for AR724x GPIO function pinmuxMichal Cieslakiewicz2019-10-211-1/+9
| | | | | | | | | | | | | | | Currently AR724x pinmux for register 0x18040028 controls only JTAG disable bit. This patch adds new DTS settings to control LAN LEDs and CLKs that allow full software control over these diodes - exactly the same is done by ar71xx target in device setup phase for many routers (WNR2000v3 for example). 'switch_led_disable_pins' clears AR724X_GPIO_FUNC_ETH_SWITCH_LED[0-4]_EN bits. 'clks_disable_pins' clears AR724X_GPIO_FUNC_CLK_OBS[1-5]_EN and AR724X_GPIO_FUNC_GE0_MII_CLK_EN bits. These all should be used together, along with 'jtag_disable_pins', to allow OS to control all GPIO-connected LEDs and buttons on device. Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
* ath79: add support for Sitecom WLR-7100Tomasz Maciej Nowak2019-10-215-2/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sitecom WLR-7100 v1 002 (marketed as X7 AC1200) is a dual band wireless router. Specification SoC: Atheros AR1022 RAM: 64 MB DDR2 Flash: 8 MB SPI NOR WIFI: 2.4 GHz 2T2R integrated 5 GHz 2T2R QCA9882 integrated (connected to PCIe lane) Ethernet: 5x 10/100/1000 Mbps QCA8337N USB: 1x 2.0 LEDS: 4x GPIO controlled, 5x switch Buttons: 2x GPIO controlled UART: row of 4 unpopulated holes near USB port, starting count from white triangle on PCB 1. VCC 3.3V, 2. GND, 3. TX, 4. RX baud: 115200, parity: none, flow control: none Installation 1. Connect to one of LAN (yellow) ethernet ports, 2. Open router configuration interface, 3. Go to Toolbox > Firmware, 4. Browse for OpenWrt factory image with dlf extension and hit Apply, 5. Wait few minutes, after the Power LED will stop blinking, the router is ready for configuration. Known issues 5GHz LED doesn't work Additional information When TX line on UART is connected, and board is switched on from power off state, the DDR memory training may fail. If connected to UART, when prompted for number on boot, one can enter number 4 to open bootloader (U-Boot) command line. OEM firmware shell password is: SitecomSenao useful for creating backup of original firmware. There is also another revision of this device (v1 001), which may or may not work with introduced images. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* ath79: fix gigabit link pll-data for EX7300Daniel Gimpelevich2019-10-211-2/+2
| | | | | | | | | | | | | The device did not appear to be reachable unless the connection were forced to 100Mb or lower. Revert to previously working pll-data. Also fix the phy-mode to represent the actual state needed for ethernet to function. Reported-by: Moritz Schreiber <moritz@mosos.de> Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us> [add remark about phy-mode property] Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add AR934x NAND Flash Controller driverMichal Cieslakiewicz2019-10-204-0/+1525
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains updated driver for Atheros NAND Flash Controller written originally by Gabor Juhos for ar71xx (aka 'ar934x-nfc'). ath79 version has adapted to work with kernel 4.19 and Device Tree. It has also been renamed to 'ar934x-nand' to avoid confusion with Near-Field Communication technology. Controller is present on Atheros AR934x SoCs and required for accessing internal flash storage on routers like Netgear WNDR4300. This port preserves all NAND programming code while moving platform configuration to Device Tree and replacing some kernel functions marked for retirement by 4.19. Suitable definition is included in 'ar934x.dtsi' ('nand@1b000200' section). Most important changes to ar71xx version are: * old kernel sections of code removed * 'bool swap_dma' provided by platform data is now set by boolean DT property 'qca,nand-swap-dma' * board-supplied (mach-*.c code) platform data removed - its elements become either unused, redundant or replaced by DT methods (like reset) * IRQ is reserved by devm_request_irq() so free_irq() is not needed anymore * calls to deprecated nand_scan_ident() + nand_scan_tail() function pair replaced by using recommended nand_scan() with attach_chip() callback * ECC is set to hardware by default, can be overriden by standard DT 'nand-ecc-*' properties (software Hamming or BCH are other options) This driver has been successfully tested on Netgear WNDR4300 running experimental ath79 OpenWrt master branch. Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl> [add reset control] Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: Clean up GL-AR300M DTS/DTSI inclusionsJeff Kletsky2019-10-202-4/+1
| | | | | | | | | | | | Modify GL-AR300M-Lite and GL-AR300M (NOR): * Include qca9531_glinet_gl-ar300m.dtsi directly rather than qca9531_glinet_gl-ar300m-nor.dts * Remove redundant inclusion of gpio.h and input.h Signed-off-by: Jeff Kletsky <git-commits@allycomm.com> Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: use a single ath10k MAC patching function with checksumAdrian Schmutzler2019-10-151-22/+22
| | | | | | | | | | | | | | | | While all ath10k eeproms have a checksum field, so far two functions for patching ath10k MAC address have been present (and been used). This merges code to provide a single function ath10k_patch_mac in caldata.sh, having its name in accordance with ath9k functions. By doing so, correct MAC patching for current and future ath10k devices should be ensured. This patch adds checksum adjustments for several targets on ath79 and lantiq. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: correct ar71xx boardname for UniFi AC LiteDavid Bauer2019-10-151-1/+1
| | | | | | | | | This corrects the additional boardname for the image metadata to the one used in ar71xx. The previously present additional entry was never used on a running system. Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add support for UniFi AC-LRAndreas Ziegler2019-10-155-1/+19
| | | | | | | | | | | | | | The Unifi AC-LR has identical hardware to the Unifi AC-Lite. The antenna setup is different according to the vendor, which explains the thicker enclosure. Therefore, it is helpful to know the exact device variant, instead of having "Ubiquiti UniFi-AC-LITE/LR". Signed-off-by: Andreas Ziegler <dev@andreas-ziegler.de> [fix legacy name in commit message; add old boardname to SUPPORTED_DEVICES] Signed-off-by: David Bauer <mail@david-bauer.net>
* treewide: move MAC address patch functions to common libraryAdrian Schmutzler2019-10-142-77/+11
| | | | | | | | | This unifies MAC address patch functions and moves them to a common script. While those were implemented differently for different targets, they all seem to do the same. The number of different variants is significantly reduced by this patch. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: move calibration data extraction function to libraryAdrian Schmutzler2019-10-132-122/+54
| | | | | | | | | | | | | | | | | This moves the almost identical calibration data extraction functions present multiple times in several targets to a single library file /lib/functions/caldata.sh. Functions are renamed with more generic names to merge different variants that only differ in their names. Most of the targets used find_mtd_chardev, while some used find_mtd_part inside the extraction code. To merge them, the more abundant version with find_mtd_chardev is used in the common code. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> [rebase on latest master; add mpc85xx] Signed-off-by: David Bauer <mail@david-bauer.net>
* base-files: move xor() from caldata extraction to functions.shAdrian Schmutzler2019-10-132-32/+1
| | | | | | | | The xor() function is defined in each of the caldata extraction scripts for several targets. Move it to functions.sh to reduce duplicate code. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for COMFAST CF-E313ACRoger Pueyo Centelles2019-10-134-0/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the COMFAST CF-E313AC, an outdoor wireless CPE with two Ethernet ports and a 802.11ac radio. Specifications: - QCA9531 SoC - 650/400/216 MHz (CPU/DDR/AHB) - 1x 10/100 Mbps WAN Ethernet, 48V PoE-in - 1x 10/100 Mbps LAN Ethernet, pass-through 48V PoE-out - 1x manual pass-through PoE switch - 64 MB RAM (DDR2) - 16 MB FLASH - QCA9886 2T2R 5 GHz 802.11ac, 23 dBm - 12 dBi built-in antenna - POWER/LAN/WAN/WLAN green LEDs - 4x RSSI LEDs (2x red, 2x green) - UART (115200 8N1) Flashing instructions: The original firmware is based on OpenWrt so a sysupgrade image can be installed via the stock web GUI. Settings from the original firmware will be saved and restored on the new one, so a factory reset will be needed. To do so, once the new firmware is flashed, enter into failsafe mode by pressing the reset button several times during the boot process, while the WAN LED flashes, until it starts flashing faster. Once in failsafe mode, perform a factory reset as usual. Alternatively, the U-boot bootloader contains a recovery HTTP server to upload the firmware. Push the reset button while powering the device on and keep it pressed for >10 seconds. The device's LEDs will blink several times and the recovery page will be at http://192.168.1.1; use it to upload the sysupgrade image. Note: Four MAC addresses are stored in the "art" partition (read-only): - 0x0000: 40:A5:EF:AA:AA:A0 - 0x0006: 40:A5:EF:AA:AA:A2 - 0x1002: 40:A5:EF:AA:AA:A1 - 0x5006: 40:A5:EF:AA.AA:A3 (inside the 5 GHz calibration data) The stock firmware assigns MAC addresses to physical and virtual interfaces in a very particular way: - eth0 corresponds to the physical Ethernet port labeled as WAN - eth1 corresponds to the physical Ethernet port labeled as LAN - eth0 belongs to the bridge interface br-wan - eth1 belongs to the bridge interface br-lan - eth0 is assigned the MAC from 0x0 (*:A0) - eth1 is assigned the MAC from 0x1002 (*:A1) - br-wan is forced to use the MAC from 0x1002 (*:A1) - br-lan is forced to use the MAC from 0x0 (*:A0) - radio0 uses the calibration data from 0x5000 (which contains a valid MAC address, *:A3). However, it is overwritten by the one at 0x6 (*:A2) This commit preserves the LAN/WAN roles of the physical Ethernet ports (as labeled on the router) and the MAC addresses they expose by default (i.e., *:A0 on LAN, *:A1 on WAN), but swaps the position of the eth0/eth1 compared to the stock firmware: - eth0 corresponds to the physical Ethernet port labeled as LAN - eth1 corresponds to the physical Ethernet port labeled as WAN - eth0 belongs to the bridge interface br-lan - eth1 is the interface at @wan - eth0 is assigned the MAC from 0x0 (*:A0) - eth1 is assigned the MAC from 0x1002 (*:A1) - br-lan inherits the MAC from eth0 (*:A0) - @wan inherits the MAC from eth1 (*:A1) - radio0's MAC is overwritten to the one at 0x6 This way, eth0/eth1's positions differ from the stock firmware, but the weird MAC ressignations in br-lan/br-wan are avoided while the external behaviour of the router is maintained. Additionally, WAN port is connected to the PHY gmac, allowing to monitor the link status (e.g., to restart DHCP negotiation when plugging a cable). Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
* kernel: bump 4.14 to 4.14.147Koen Vandeputte2019-10-081-12/+10
| | | | | | | | | | | | | Refreshed all patches. Altered patches: - 403-mtd_fix_cfi_cmdset_0002_status_check.patch (ar71xx) - 403-mtd_fix_cfi_cmdset_0002_status_check.patch (ath79) Compile-tested on: cns3xxx, imx6 Runtime-tested on: cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ath79: improve DTS for TP-Link Archer D50 v1Adrian Schmutzler2019-10-061-6/+10
| | | | | | | | | This addresses several issues in the DTS file: - add diag LED support - remove unused node names - fix whitespace issues Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix whitespace issues in DTS filesAdrian Schmutzler2019-10-0628-39/+2
| | | | | | | | | This is the result of grepping/searching for several common whitespace issues like double empty lines, leading spaces, etc. This patch fixes them for the ath79 target. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: remove kmod-usb-core from DEVICE_PACKAGESAdrian Schmutzler2019-10-067-52/+52
| | | | | | | | | | | | | | | | | | | This removes _all_ occurrences of kmod-usb-core from DEVICE_PACKAGES and similar variables. This package is pulled as dependency by one of the following packages in any case: - kmod-usb-chipidea - kmod-usb-dwc2 - kmod-usb-ledtrig-usbport - kmod-usb-ohci - kmod-usb2 - kmod-usb2-pci - kmod-usb3 Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> [remove kmod-usb-core from EnGenius ESR600] Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: bump 4.19 to 4.19.76Koen Vandeputte2019-10-041-12/+10
| | | | | | | | | | | | Refreshed all patches. Altered patches: - 403-mtd_fix_cfi_cmdset_0002_status_check.patch Compile-tested on: ath79, cns3xxx, imx6 Runtime-tested on: cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ath79: Restore GL.iNet GL-AR300M-Lite first-boot connectivityJeff Kletsky2019-09-291-1/+5
| | | | | | | | | | | | | | | | | | The relationship between GMAC0 and GMAC1 and the kernel devices eth0 and eth1 was reversed for many ath79 devices by commit 8dde11d521 ath79: dts: drop "simple-mfd" for gmacs in SoC dtsi The GL-AR300M-Lite is a single-port device, with the "LAN" port of the GL-AR300M board unpopulated and its sole port now referenced as eth1, as a result of commit 8dde11d521. The device was unreachable on first boot or fresh config. By changing &eth1 (GMAC1) to an MFD, GMAC0 is able to associate with the phy and is known by the kernel as "eth0". Thanks to Chuanhong Guo for the suggestion of "simple-mfd" Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
* ath79: Correct glinet, gl-ar300m-lite in 02_networkJeff Kletsky2019-09-291-1/+1
| | | | | | | | | | | | | | Previously, the board name for the GL-AR300M-Lite was incorrect in 02_network, resulting in an unintended, fall-through condition when initializing the network configuration. While builds prior to commit 8dde11d521 (merged June 5, 2019) ath79: dts: drop "simple-mfd" for gmacs in SoC dtsi functioned properly, the error was noted in resolving first-boot connectivity issues related to the single-phy nature of the device and the "swap" of eth0 and eth1 related to that commit. Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
* treewide: fix hex2dec conversion for MAC address checksum offsetAdrian Schmutzler2019-09-291-2/+2
| | | | | | | | | | | | | | | | If chksum_offset is converted by $(($...)) at the beginning, the check [ -n "$chksum_offset" ] will always return true, as the conversion yields "0" for an empty argument, and [ -n "0" ] is true. With this patch, the variable is not converted before the check, but only when it's used in dd. No conversion is done for use in hexdump, as this can deal with hex value offsets. Fixes: b133e466b08e ("treewide: convert WiFi caldata size and offset to hexadecimal") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: remove redundant ucidef_set_interfaces_* calls in 02_networkAdrian Schmutzler2019-09-251-2/+1
| | | | | | | | | | If already included in ucidef_add_switch, you do not have to additionally set the interface mode in ucidef_set_interfaces_* functions. This patch removes/adjusts such redundant cases. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 4.19 to 4.19.75Koen Vandeputte2019-09-241-2/+2
| | | | | | | | | | | | | | | Refreshed all patches. Fixes: - CVE-2019-14814 - CVE-2019-14815 - CVE-2019-14816 - CVE-2019-14821 Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ath79: convert devices to interrupt-driven gpio-keysAdrian Schmutzler2019-09-2247-94/+51
| | | | | | | | | | | | | This converts all remaining devices to use interrupt-driven gpio-keys compatible instead of gpio-keys-polled. The poll-interval is removed. Only ar7240_netgear_wnr612-v2 is kept at gpio-keys-polled, as this one is using ath9k keys. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: Karl Palsson <karlp@etactica.com> Tested-by: Dmitry Tunin <hanipouspilot@gmail.com>
* ath79: add support of Netgear WNDR3800CHDmitry Tunin2019-09-214-3/+53
| | | | | | | | Add support for the ar71xx supported Netgear WNDR3800CH to ath79. The device is identical to WNDR3800 except NETGEAR_BOARD_ID. Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com> Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: DIR825B1 switch to gpio-keysDmitry Tunin2019-09-211-4/+1
| | | | Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
* ath79: remove invalid uses of ath9k_patch_fw_mac_crcAdrian Schmutzler2019-09-211-3/+3
| | | | | | | | | | | | Some ar9344-based devices are using ath9k_patch_fw_mac_crc, which is meant to generate a checksum, for fixing their ath9k MAC addresses. However, those do not have a checksum field, and the calculated checksum offset would be negative. This patch will use ath9k_patch_fw_mac function for those devices. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: image: pad kernel for Adtran/Bluesocket devicesTomasz Maciej Nowak2019-09-211-2/+2
| | | | | | | | | | | | | | | | It has been reported that using the sysupgrade-tar image will trigger "lzma_decode failed error". The RedBoot bootloader always loads data from flash till block size boundary, so if there's no padding it'll also load the beginning of rootfs, and it seems that lzma_decoder can't handle that garbage data. Previously the script creating combined-image silently padded the kernel and rootfs, but since sysupgrade-tar doesn't, pad the default kernel image. Fixes: 900330f ("ath79: image: retire combined-image for Adtran/Bluesocket devices") 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: sort device definitions in image/*Adrian Schmutzler2019-09-216-303/+301
| | | | | | | | | | | This applies alphabetic sorting to devices in image/* files. For certain cases, this patch deviates from strict sorting, e.g. to ensure that v10 comes after v9. While at it, fix an indent and remove some useless empty lines. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add SUPPORTED_DEVICES to ubnt_nanostation-m-xwRoger Pueyo Centelles2019-09-191-1/+1
| | | | | | | | | | | | | | | | The ar71xx images for the Ubiquiti NanoStation M (XW) devices use "nanostation-m-xw" as the board name, but the ath79 images are only compatible with the "nano-m-xw" board name, so sysupgrade complains. By adding this additional supported device, sysuspgrade smoothly upgrades from ar71xx to ath79. Tested on a NanoStation M (XW) running OpenWrt ar71xx r10250-016d1eb. Ref: https://github.com/openwrt/openwrt/pull/2418 Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> [removed duplicate DEVICE_VARIANT, removed uneeded nano-m-xw support] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ath79: add XM device variant for Ubiquiti devicesAdrian Schmutzler2019-09-191-2/+2
| | | | | | | | | | So far, XW devices have DEVICE_VARIANT defined and XM devices have no DEVICE_VARIANT set. This adds DEVICE_VARIANT for XM devices, and moves definitions for both XM and XW to the common definitions. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: provide label MAC addressAdrian Schmutzler2019-09-1954-12/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the label MAC address for several devices in ath79. Some devices require setting the MAC address in 02_network: For the following devices, the netif device can be linked in device tree, but the MAC address cannot be read: - alfa-network,ap121f - avm,fritz300e - ubnt-xm devices For the following devices, label MAC address is tied to lan or wan, so no node to link to exists in device tree: - adtran,bsap1800-v2 - adtran,bsap1840 - dlink,dir-842-c1/-c2/-c3 - engenius,ecb1750 - iodata,etg3-r - iodata,wn-ac1167dgr - iodata,wn-ac1600dgr - iodata,wn-ac1600dgr2 - iodata,wn-ag300dgr - nec,wg800hp - nec,wg1200cr - trendnet,tew-823dru Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>