openwrt/staging/chunkeey.git
2 months agoRevert "mpc85xx: tl-wdr4900 simpleImage"
Christian Lamparter [Sat, 13 Apr 2019 16:34:36 +0000 (18:34 +0200)]
Revert "mpc85xx: tl-wdr4900 simpleImage"

This reverts commit 20b1bb8b554f0562e9e2d404fa5cd6e094be6515.

2 months agoipq40xx: RT-AC58U: "easy install" factory.trx
Christian Lamparter [Sat, 30 Mar 2019 20:07:40 +0000 (21:07 +0100)]
ipq40xx: RT-AC58U: "easy install" factory.trx

This patch adds a image-builder compatible factory install
image that can be flashed directly through both the WebUI or u-boot.

Installation Instructions for the -factory.trx image:
- For the web-console you just upload the .trx file.
  1. login into your router
  2. Select "Administration" under "Advanced Settings".
  3. Select the "Firmware Upgrade" tab
  4. Click on the "Choose File" button and select the
     firmware file.
     (If the web-interface doesn't accept the file try
      renaming it to: FW_RT-AC58U_3.1.1.1.trx)

  5. Hit "Upload" Button

- Place the -factory.trx file into your TFTP-server's
  root-directory and rename it to RT-AC58U.trx. Connect the serial
  cable and power up the router. In the serial console boot menu prompt
  you have to press the 2-key to choose:
   "2: Load System code then write to Flash via TFTP."
  and then follow the instruction on the serial console.

After the image is written to the NAND, the router will automatically
reboot into a modified u-boot that flashes the packed image before
it reboots one more time into the new OpenWrt installation.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoscripts: add SPDX-License-Identifier check to checkpatch.pl
Christian Lamparter [Sat, 30 Mar 2019 10:05:30 +0000 (11:05 +0100)]
scripts: add SPDX-License-Identifier check to checkpatch.pl

This patch backports the current Linux kernel's SPDX-License-Identifier
check routines from the checkpatch.pl script to OpenWrt's current
checkpatch.pl.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agobuild: import LICENSES from linux
Christian Lamparter [Sat, 30 Mar 2019 09:59:25 +0000 (10:59 +0100)]
build: import LICENSES from linux

This patch copies the LICENSES directory from the
linux kernel source. The directory name and content
will be used for checkpatch.pl to verify the license
of new submissions.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: remove redundant PHY_POLL set code
Christian Lamparter [Wed, 13 Mar 2019 16:22:27 +0000 (17:22 +0100)]
ipq40xx: remove redundant PHY_POLL set code

The [devm_]mdiobus_alloc[_size()] functions already create the
array of interrupt numbers, and initialize it to POLLING.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: convert Cisco Meraki MR33 to DSA
Christian Lamparter [Sat, 9 Mar 2019 10:08:27 +0000 (11:08 +0100)]
ipq40xx: convert Cisco Meraki MR33 to DSA

This patch converts the Cisco Meraki MR33 to use ipqess + qca8k's DSA.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: convert ASUS RT-AC58U to DSA
Christian Lamparter [Sat, 9 Mar 2019 17:08:27 +0000 (18:08 +0100)]
ipq40xx: convert ASUS RT-AC58U to DSA

This patch converts the ASUS RT-AC58U to ipqess ethernet + qca8k's DSA.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: include ipq40xx-ized qca8k version
Christian Lamparter [Fri, 8 Mar 2019 20:17:19 +0000 (21:17 +0100)]
ipq40xx: include ipq40xx-ized qca8k version

There are still several todos left. Chief amongst which:
 - integrating into qca8k_mmio
 - split out whatever could be sent upstream
 - implement some sort of "mdio offset"?
 - testing and performance evaluations

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: fix NPE related to bogus use of fixed phy
Christian Lamparter [Sat, 9 Mar 2019 19:13:17 +0000 (20:13 +0100)]
ipq40xx: fix NPE related to bogus use of fixed phy

This patch fixes a not-fully-debugged NPE that occures because
a fixed-phy is told to resume, which it obviously can't.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: extend DT mdio node to be more accessible
Christian Lamparter [Fri, 8 Mar 2019 18:11:28 +0000 (19:11 +0100)]
ipq40xx: extend DT mdio node to be more accessible

The MDIO node will become more important in the future.
Hence, this patch adds DT labels to make the properties
inside the various subnodes more accessible.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: add ipqess ethernet driver
Christian Lamparter [Sat, 9 Mar 2019 18:33:57 +0000 (19:33 +0100)]
ipq40xx: add ipqess ethernet driver

This driver from John Crispin is poised to replace the current
essedma driver that drives the ethernet MAC on the IPQ40XX platform.
<https://forum.openwrt.org/t/ipq40xx-target-single-nic-devices/7292/16>

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: add resets for individual MAC1-5 and PSGMII
Christian Lamparter [Fri, 8 Mar 2019 16:11:28 +0000 (17:11 +0100)]
ipq40xx: add resets for individual MAC1-5 and PSGMII

This patch is based on a patch by:
Ram Chandra Jangir <rjangir@codeaurora.org>
<http://lists.openwrt.org/pipermail/openwrt-devel/2017-April/007106.html>

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: decouple mdio-ipq40xx and ar40xx
Christian Lamparter [Sat, 9 Mar 2019 15:19:26 +0000 (16:19 +0100)]
ipq40xx: decouple mdio-ipq40xx and ar40xx

This makes it possible to delete the ar40xx driver in the
future by just removing the file.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agophytool: add phytool utility
Christian Lamparter [Sun, 3 Mar 2019 17:33:25 +0000 (18:33 +0100)]
phytool: add phytool utility

From the README.md:

phytool is a Linux MDIO register access utility.

Usage:

phytool read  IFACE/ADDR/REG
phytool write IFACE/ADDR/REG <0-0xffff>
phytool print IFACE/ADDR[/REG]

where

ADDR := C22 | C45
C22  := <0-0x1f>
C45  := <0-0x1f>:<0-0x1f>
REG  := <0-0x1f>

Note: Not all MDIO drivers support the port:device
      Clause 45 address format.

The read and write commands are simple register level accessors.
The print command will pretty-print a register. When using the
print command, the register is optional. If left out, the most
common registers will be shown.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agotools: libtool: update to 2.4.2
Christian Lamparter [Fri, 1 Mar 2019 15:48:27 +0000 (16:48 +0100)]
tools: libtool: update to 2.4.2

This patch fixes a error message generated by compiling the
host version of libjson-c:

|libtool: Version mismatch error.  This is libtool 2.4.2, but the
|libtool: definition of this LT_INIT comes from libtool 2.4.
|libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2
|libtool: and run autoconf again.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agobuild: add UBOOT_PATH to DEFAULT_DEVICE_VARS and set a default
Christian Lamparter [Mon, 11 Feb 2019 17:55:32 +0000 (18:55 +0100)]
build: add UBOOT_PATH to DEFAULT_DEVICE_VARS and set a default

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoapm821xx: MBL: MR24: fetch IP address over dhcp by default
Christian Lamparter [Mon, 11 Feb 2019 16:30:07 +0000 (17:30 +0100)]
apm821xx: MBL: MR24: fetch IP address over dhcp by default

This patch changes the default network configuration
to fetch the IP addresses over dhcp instead of being
statically assigned.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agobrcm2708: fetch IP address over dhcp by default
Christian Lamparter [Mon, 11 Feb 2019 16:26:36 +0000 (17:26 +0100)]
brcm2708: fetch IP address over dhcp by default

This patch changes the default network configuration
to fetch the IP addresses over dhcp instead of being
statically assigned.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agogemini: generate squashfs hdd image for DNS313
Christian Lamparter [Sun, 10 Feb 2019 13:57:31 +0000 (14:57 +0100)]
gemini: generate squashfs hdd image for DNS313

This patch adds a squashfs + overlay (f2fs / ext4)
option for the DNS313.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agompc85xx: tl-wdr4900 simpleImage
Christian Lamparter [Wed, 6 Feb 2019 13:52:12 +0000 (14:52 +0100)]
mpc85xx: tl-wdr4900 simpleImage

 - ethernet macs might be wrong
 - uses the raw dts with u-boot changes
 - but it boots

2 months agompc85xx: convert TL-WDR4900 v1 to dtbImage
Christian Lamparter [Tue, 29 Jan 2019 22:52:27 +0000 (23:52 +0100)]
mpc85xx: convert TL-WDR4900 v1 to dtbImage

Converts the TP-Link WDR4900 v1 to use the dtbImage in the
hopes of prolonging the life of the device. While at it,
the patch makes the fdt.bin an ARTIFACT and sets the KERNEL_SIZE
to 2684 KiB as a precaution since the stock u-boot is using a
fixed kernel size.

Note: Give the image some time, it will take much longer to
extract and boot.

[compiled tested for 4.14]

2 months agoipq8064: ipq8064-mdio + dsa test
Christian Lamparter [Sun, 3 Feb 2019 23:05:20 +0000 (00:05 +0100)]
ipq8064: ipq8064-mdio + dsa test

2 months agoipq806x: 4.19
Christian Lamparter [Sat, 2 Feb 2019 20:43:12 +0000 (21:43 +0100)]
ipq806x: 4.19

 - USB 3.0 is 20 MiB/s slower
 - iperf3 is faster?!

2 months agoapm821xx: wndr4700: mx60: convert to DSA
Christian Lamparter [Mon, 14 Jan 2019 19:16:36 +0000 (20:16 +0100)]
apm821xx: wndr4700: mx60: convert to DSA

This patch converts both the wndr4700 and mx60 to use a patched
qca8k driver to drive DSA.

Both have to be converted since the old AR8216 phy/swconfig
driver had to be disabled as otherwise it would conflict with
the dsa driver since swconfig utilizes the phy framework.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoipq40xx: 4.14 port of upstream MX25L25635[E|F] fix
Christian Lamparter [Sun, 13 Jan 2019 18:18:37 +0000 (19:18 +0100)]
ipq40xx: 4.14 port of upstream MX25L25635[E|F] fix

Untested

2 months agoipq40xx: use upstream MX25L25635[E|F] fix
Christian Lamparter [Fri, 11 Jan 2019 22:52:54 +0000 (23:52 +0100)]
ipq40xx: use upstream MX25L25635[E|F] fix

This patch removes the previous hack that was necessary
for the ZyXEL NBG6617:
303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch

And replaces it with the 5.0-rc1 solution. This will
likely also enable Compex WPJ428's that still use the
original SPL1/u-boot will now sucessfully reboot.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoath10k-ct: reduce memory pressure
Christian Lamparter [Sat, 12 Jan 2019 13:10:59 +0000 (14:10 +0100)]
ath10k-ct: reduce memory pressure

No-Signed-Off

2 months agomtd: Fail when verify fails
Michal Hrusecky [Thu, 25 Oct 2018 10:53:02 +0000 (12:53 +0200)]
mtd: Fail when verify fails

Return non-zero exit code when mtd verify fails.

Signed-off-by: Michal Hrusecky <michal.hrusecky@nic.cz>
2 months agobusybox: enable swapon/off by default to make it consistent with mkswap
Emil Muratov [Thu, 1 Nov 2018 18:53:43 +0000 (21:53 +0300)]
busybox: enable swapon/off by default to make it consistent with mkswap

  No size increase on busybox binary.
  Since busybox mkswap is already enabled by default it seems reasonable
  to enable swapon/off too. For ex. this obsoletes installing block-mount
  dependency for zram-swap.

Signed-off-by: Emil Muratov <gpm@hotplug.ru>
2 months agozram-swap: Add zram compaction and statistics info output
Emil Muratov [Wed, 31 Oct 2018 21:16:58 +0000 (00:16 +0300)]
zram-swap: Add zram compaction and statistics info output

Executing '/etc/init.d/zram start' during runtime (with a swap being already
mounted) triggers zram device compaction and prints out nice stats info about
zram memory usage

Signed-off-by: Emil Muratov <gpm@hotplug.ru>
2 months agozram-swap: Fix busybox dependency check
Emil Muratov [Wed, 31 Oct 2018 08:43:49 +0000 (11:43 +0300)]
zram-swap: Fix busybox dependency check

   - fix dependency on BUSYBOX_CONFIG_SWAPONOFF (removed in 84da2a6)
   - add busybox defaults checking (fix zram-swap always installs swap-utils
     and libblkid as dependency, even if busybox includes mkswap by default)

Signed-off-by: Emil Muratov <gpm@hotplug.ru>
2 months agowireless-regdb: update to 2018-10-24
Zachary Riedlshah [Sun, 4 Nov 2018 10:47:05 +0000 (23:47 +1300)]
wireless-regdb: update to 2018-10-24

Fixes build issues on a python3 host (issues with the print statement
formatting in the current build).

Includes 100-regdb-write-firmware-file-format-version-code-20.patch and
other fixes.

Closes bugs.openwrt.org/index.php?do=details&task_id=1605.

Uses snapshot as requested.

Signed-off-by: Zachary Riedlshah <git@zacharyrs.me>
2 months agokernel: dm: add dm-raid for LVM raid
Chris Koying Browet [Thu, 27 Dec 2018 12:07:40 +0000 (13:07 +0100)]
kernel: dm: add dm-raid for LVM raid

This adds the dm-raid kmod, which is needed for
LVM builtin raid configurations, aka "MD-over-LVM"

Signed-off-by: Chris "Koying" Browet <cbro@semperpax.com>
2 months agoipq806x: R7800: mtd-mac-address test
Christian Lamparter [Sat, 15 Dec 2018 09:56:14 +0000 (10:56 +0100)]
ipq806x: R7800: mtd-mac-address test

2 months agohostapd: remove stale WPA_SUPPLICANT_NO_TIMESTAMP_CHECK option
Christian Lamparter [Tue, 11 Dec 2018 17:40:04 +0000 (18:40 +0100)]
hostapd: remove stale WPA_SUPPLICANT_NO_TIMESTAMP_CHECK option

Support to disable the timestamp check for certificates in
wpa_supplicant (Useful for devices without RTC that cannot
reliably get the real date/time) has been accepted in the
upstream hostapd. It's implemented in wpa_supplicant as a
per-AP flag tls_disable_time_checks=[0|1].

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agompc85xx: disable BUGVERBOSE + LEGACY_PTYS to save space
Christian Lamparter [Sat, 13 Apr 2019 13:38:47 +0000 (15:38 +0200)]
mpc85xx: disable BUGVERBOSE + LEGACY_PTYS to save space

According to the kernel config help text, disabling this
option supposedly saves 70-100K of space at the cost of
debugging:
"This aids debugging but costs about 70-100K of memory."

This "saving" turns to around 7 KiB when gzip compressed.

Disabling CONFIG_LEGACY_PTYS just saves around 512 Bytes

Maybe by re-packaging the crypto engine in a separate
package (but this needs Felix' approval) a lot more
savings could be had.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoramips: add support for GL.iNet VIXMINI
David Bauer [Fri, 12 Apr 2019 22:05:47 +0000 (00:05 +0200)]
ramips: add support for GL.iNet VIXMINI

Hardware
--------
SoC:   MediaTek MT7628NN
RAM:   64M DDR2 (Etron EM68B16CWQD-25H)
FLASH: 8M (Winbond W25Q64JVSIQ)
LED:   Power - WLAN
BTN:   Reset
UART:  115200 8N1
       TX and RX are labled on the board as pads next to the SoC

Installation via web-interface
------------------------------
1. Visit the web-interface at 192.168.8.1
   Note: The ethernet port is by default WAN. So you need to connect to
   the router via WiFi

2. Navigate to the Update tab on the left side.

3. Select "Local Update"

4. Upload the OpenWrt sysupgrade image.
   Note: Make sure you select not to preserve the configuration.

Installation via U-Boot
-----------------------
1. Hold down the reset button while powering on the device.
   Wait for the LED to flash 5 times.

2. Assign yourself a static IPv4 in 192.168.1.0/24

3. Upload the OpenWrt sysupgrade image at 192.168.1.1.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 months agompc85xx: generic: Check kernel size for the TL-WDR4900
Pawel Dembicki [Tue, 29 Jan 2019 18:26:28 +0000 (18:26 +0000)]
mpc85xx: generic: Check kernel size for the TL-WDR4900

TP-Link TL-WDR 4900 have u-boot with read-only env.
Boot command read only 0x29F000 data from flash.
Bigger images causes crc error. It can't be changed.

This patch add kernel size checking.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [utilize KERNEL_SIZE]
2 months agompc85xx: clean up device package selection
David Bauer [Mon, 8 Apr 2019 18:09:35 +0000 (20:09 +0200)]
mpc85xx: clean up device package selection

Remove wireless and USB packages from the device-specific package
selection as they are already selected by the target itself.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 months agompc85xx: remove USB support from kernel
David Bauer [Mon, 8 Apr 2019 18:09:34 +0000 (20:09 +0200)]
mpc85xx: remove USB support from kernel

This removes USB support from the compiled kernel. Because of this, the
kernel is just small enough for the TP-Link WDR4900 to boot the
resulting kernel.

This is necessary to support the WDR4900 in the upcoming 19.xx release.
In the long run, this should be fixed with a second stage bootloader, as
the vendor bootloader only loads the first 2684k bytes.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 months agokernel: usb: add FSL EHCI package
David Bauer [Mon, 8 Apr 2019 18:09:33 +0000 (20:09 +0200)]
kernel: usb: add FSL EHCI package

Add kernel module package for the Freescale USB2 EHCI used on the
mpc85xx platform.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 months agoath79: remove unnecessary packages from I-O DATA ETG3-R
INAGAKI Hiroshi [Sat, 13 Apr 2019 03:21:02 +0000 (12:21 +0900)]
ath79: remove unnecessary packages from I-O DATA ETG3-R

I-O DATA ETG3-R is a wired router. So wireless-related packages are
unnecessary and remove those packages from default configuration to
reduce flash usage.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2 months agoath79: add TP-Link WR842N v3
Sven Roederer [Sun, 24 Mar 2019 23:03:19 +0000 (00:03 +0100)]
ath79: add TP-Link WR842N v3

This adds support for the TP-Link WR842N v3 which is already supported on ar71xx
target (0b45bec22c59cc6e6b2fa71dc9a88386c5587132).

Specification:
* SoC: QCA9533 ver 2 rev 0
* 16 MB Flash (gd25q128)
* 64 MB RAM
* 1 WAN 10/100 MBit/s (blue connector)
* 4 LAN 10/100 MBit/s (AR8229; 4 ports; yellow connectors)
* Atheros AR9531 (2,4GHz, two fixed antennas)
* USB
* Reset / WPS button
* WiFi button (rf kill)
* 8 green leds; 1 red/green led
* serial console (115200 8N1, according to the OpenWrt-wiki some soldering is needed)

Installation:
* flash via vendor WebUI (the filename must not exceed certain length)
* sysupgrade from installed OpenWrt (also ar71xx)

Thanks to Holger Drefs for providing the hardware

Tested-by: @kofec (github)
Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
2 months agomac80211: rt2x00: replace patch with upstream version
Daniel Golle [Fri, 12 Apr 2019 20:07:29 +0000 (22:07 +0200)]
mac80211: rt2x00: replace patch with upstream version

Replace the patch introduced by commit d0b969eee8 ("mac80211: rt2x00:
do not increment sequence number while re-transmitting") was merged
into wireless-drivers.git. Replace our version with the merged version.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 months agoramips: fix pinctrl to allow hardware i2c on WRTNODE2R
Daniel Golle [Thu, 11 Apr 2019 20:26:28 +0000 (22:26 +0200)]
ramips: fix pinctrl to allow hardware i2c on WRTNODE2R

Instead of assigning I2C pins as GPIOs by default, leave it up to the
user whether to install kmod-i2c-mt7621 and use them for hardware I2C
instead.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 months agokernel: move and replace accepted patch
Daniel Golle [Thu, 11 Apr 2019 17:19:49 +0000 (19:19 +0200)]
kernel: move and replace accepted patch

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 months agouboot-envtools: fix fw_env.config for ox820/stg-212
Daniel Golle [Tue, 9 Apr 2019 19:09:02 +0000 (21:09 +0200)]
uboot-envtools: fix fw_env.config for ox820/stg-212

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 months agobuild: switch default target from ar71xx to ath79
Kevin Darbyshire-Bryant [Thu, 11 Apr 2019 15:38:01 +0000 (16:38 +0100)]
build: switch default target from ar71xx to ath79

ar71xx is in the process of being deprecated as a target accepting new
devices.  The replacement target for the same hardware is DTS
based ath79.

Switch the default build target selection from ar71xx to ath79.

This is intended to encourage DTS takeup & support for ath79 and longer
term will also aid kernel upstream support.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2 months agohostapd: fix CVE-2019-9497, CVE-2019-9498, CVE-2019-9499
Stefan Lippers-Hollmann [Thu, 11 Apr 2019 00:57:09 +0000 (02:57 +0200)]
hostapd: fix CVE-2019-9497, CVE-2019-9498, CVE-2019-9499

EAP-pwd missing commit validation

Published: April 10, 2019
Identifiers:
- CVE-2019-9497 (EAP-pwd server not checking for reflection attack)
- CVE-2019-9498 (EAP-pwd server missing commit validation for
  scalar/element)
- CVE-2019-9499 (EAP-pwd peer missing commit validation for
  scalar/element)

Latest version available from: https://w1.fi/security/2019-4/

Vulnerability

EAP-pwd implementation in hostapd (EAP server) and wpa_supplicant (EAP
peer) was discovered not to validate the received scalar and element
values in EAP-pwd-Commit messages properly. This could result in attacks
that would be able to complete EAP-pwd authentication exchange without
the attacker having to know the used password.

A reflection attack is possible against the EAP-pwd server since the
hostapd EAP server did not verify that the EAP-pwd-Commit contains
scalar/element values that differ from the ones the server sent out
itself. This allows the attacker to complete EAP-pwd authentication
without knowing the password, but this does not result in the attacker
being able to derive the session key (MSK), i.e., the attacker would not
be able to complete the following key exchange (e.g., 4-way handshake in
RSN/WPA).

An attack using invalid scalar/element values is possible against both
the EAP-pwd server and peer since hostapd and wpa_supplicant did not
validate these values in the received EAP-pwd-Commit messages. If the
used crypto library does not implement additional checks for the element
(EC point), this could result in attacks where the attacker could use a
specially crafted commit message values to manipulate the exchange to
result in deriving a session key value from a very small set of possible
values. This could further be used to attack the EAP-pwd server in a
practical manner. An attack against the EAP-pwd peer is slightly more
complex, but still consider practical. These invalid scalar/element
attacks could result in the attacker being able to complete
authentication and learn the session key and MSK to allow the key
exchange to be completed as well, i.e., the attacker gaining access to
the network in case of the attack against the EAP server or the attacker
being able to operate a rogue AP in case of the attack against the EAP
peer.

While similar attacks might be applicable against SAE, it should be
noted that the SAE implementation in hostapd and wpa_supplicant does
have the validation steps that were missing from the EAP-pwd
implementation and as such, these attacks do not apply to the current
SAE implementation. Old versions of wpa_supplicant/hostapd did not
include the reflection attack check in the SAE implementation, though,
since that was added in June 2015 for v2.5 (commit 6a58444d27fd 'SAE:
Verify that own/peer commit-scalar and COMMIT-ELEMENT are different').

Vulnerable versions/configurations

All hostapd versions with EAP-pwd support (CONFIG_EAP_PWD=y in the build
configuration and EAP-pwd being enabled in the runtime configuration)
are vulnerable against the reflection attack.

All wpa_supplicant and hostapd versions with EAP-pwd support
(CONFIG_EAP_PWD=y in the build configuration and EAP-pwd being enabled
in the runtime configuration) are vulnerable against the invalid
scalar/element attack when built against a crypto library that does not
have an explicit validation step on imported EC points. The following
list indicates which cases are vulnerable/not vulnerable:
- OpenSSL v1.0.2 or older: vulnerable
- OpenSSL v1.1.0 or newer: not vulnerable
- BoringSSL with commit 38feb990a183 ('Require that EC points are on the
  curve.') from September 2015: not vulnerable
- BoringSSL without commit 38feb990a183: vulnerable
- LibreSSL: vulnerable
- wolfssl: vulnerable

Acknowledgments

Thanks to Mathy Vanhoef (New York University Abu Dhabi) for discovering
and reporting the issues and for proposing changes to address them in
the implementation.

Possible mitigation steps

- Merge the following commits to wpa_supplicant/hostapd and rebuild:

  CVE-2019-9497:
  EAP-pwd server: Detect reflection attacks

  CVE-2019-9498:
  EAP-pwd server: Verify received scalar and element
  EAP-pwd: Check element x,y coordinates explicitly

  CVE-2019-9499:
  EAP-pwd client: Verify received scalar and element
  EAP-pwd: Check element x,y coordinates explicitly

  These patches are available from https://w1.fi/security/2019-4/

- Update to wpa_supplicant/hostapd v2.8 or newer, once available

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
[bump PKG_RELEASE]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2 months agohostapd: fix CVE-2019-9496
Stefan Lippers-Hollmann [Thu, 11 Apr 2019 00:56:37 +0000 (02:56 +0200)]
hostapd: fix CVE-2019-9496

hostapd: fix SAE confirm missing state validation

Published: April 10, 2019
Identifiers:
- CVE-2019-9496 (SAE confirm missing state validation in hostapd/AP)
Latest version available from: https://w1.fi/security/2019-3/

Vulnerability

When hostapd is used to operate an access point with SAE (Simultaneous
Authentication of Equals; also known as WPA3-Personal), an invalid
authentication sequence could result in the hostapd process terminating
due to a NULL pointer dereference when processing SAE confirm
message. This was caused by missing state validation steps when
processing the SAE confirm message in hostapd/AP mode.

Similar cases against the wpa_supplicant SAE station implementation had
already been tested by the hwsim test cases, but those sequences did not
trigger this specific code path in AP mode which is why the issue was
not discovered earlier.

An attacker in radio range of an access point using hostapd in SAE
configuration could use this issue to perform a denial of service attack
by forcing the hostapd process to terminate.

Vulnerable versions/configurations

All hostapd versions with SAE support (CONFIG_SAE=y in the build
configuration and SAE being enabled in the runtime configuration).

Possible mitigation steps

- Merge the following commit to hostapd and rebuild:

  SAE: Fix confirm message validation in error cases

  These patches are available from https://w1.fi/security/2019-3/

- Update to hostapd v2.8 or newer, once available

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
[bump PKG_RELEASE]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2 months agohostapd: fix CVE-2019-9495
Stefan Lippers-Hollmann [Thu, 11 Apr 2019 00:55:12 +0000 (02:55 +0200)]
hostapd: fix CVE-2019-9495

EAP-pwd side-channel attack

Published: April 10, 2019
Identifiers:
- CVE-2019-9495 (cache attack against EAP-pwd)
Latest version available from: https://w1.fi/security/2019-2/

Vulnerability

Number of potential side channel attacks were recently discovered in the
SAE implementations used by both hostapd and wpa_supplicant (see
security advisory 2019-1 and VU#871675). EAP-pwd uses a similar design
for deriving PWE from the password and while a specific attack against
EAP-pwd is not yet known to be tested, there is no reason to believe
that the EAP-pwd implementation would be immune against the type of
cache attack that was identified for the SAE implementation. Since the
EAP-pwd implementation in hostapd (EAP server) and wpa_supplicant (EAP
peer) does not support MODP groups, the timing attack described against
SAE is not applicable for the EAP-pwd implementation.

A novel cache-based attack against SAE handshake would likely be
applicable against the EAP-pwd implementation. Even though the
wpa_supplicant/hostapd PWE derivation iteration for EAP-pwd has
protections against timing attacks, this new cache-based attack might
enable an attacker to determine which code branch is taken in the
iteration if the attacker is able to run unprivileged code on the victim
machine (e.g., an app installed on a smart phone or potentially a
JavaScript code on a web site loaded by a web browser). This depends on
the used CPU not providing sufficient protection to prevent unprivileged
applications from observing memory access patterns through the shared
cache (which is the most likely case with today's designs).

The attacker could use information about the selected branch to learn
information about the password and combine this information from number
of handshake instances with an offline dictionary attack. With
sufficient number of handshakes and sufficiently weak password, this
might result in full recovery of the used password if that password is
not strong enough to protect against dictionary attacks.

This attack requires the attacker to be able to run a program on the
target device. This is not commonly the case on an authentication server
(EAP server), so the most likely target for this would be a client
device using EAP-pwd.

The commits listed in the end of this advisory change the EAP-pwd
implementation shared by hostapd and wpa_supplicant to perform the PWE
derivation loop using operations that use constant time and memory
access pattern to minimize the externally observable differences from
operations that depend on the password even for the case where the
attacker might be able to run unprivileged code on the same device.

Vulnerable versions/configurations

All wpa_supplicant and hostapd versions with EAP-pwd support
(CONFIG_EAP_PWD=y in the build configuration and EAP-pwd being enabled
in the runtime configuration).

It should also be noted that older versions of wpa_supplicant/hostapd
prior to v2.7 did not include additional protection against certain
timing differences. The definition of the EAP-pwd (RFC 5931) does not
describe such protection, but the same issue that was addressed in SAE
earlier can be applicable against EAP-pwd as well and as such, that
implementation specific extra protection (commit 22ac3dfebf7b, "EAP-pwd:
Mask timing of PWE derivation") is needed to avoid showing externally
visible timing differences that could leak information about the
password. Any uses of older wpa_supplicant/hostapd versions with EAP-pwd
are recommended to update to v2.7 or newer in addition to the mitigation
steps listed below for the more recently discovered issue.

Possible mitigation steps

- Merge the following commits to wpa_supplicant/hostapd and rebuild:

  OpenSSL: Use constant time operations for private bignums
  Add helper functions for constant time operations
  OpenSSL: Use constant time selection for crypto_bignum_legendre()
  EAP-pwd: Use constant time and memory access for finding the PWE

  These patches are available from https://w1.fi/security/2019-2/

- Update to wpa_supplicant/hostapd v2.8 or newer, once available

- Use strong passwords to prevent dictionary attacks

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
[bump PKG_RELEASE]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2 months agohostapd: fix CVE-2019-9494
Stefan Lippers-Hollmann [Thu, 11 Apr 2019 00:53:10 +0000 (02:53 +0200)]
hostapd: fix CVE-2019-9494

SAE side-channel attacks

Published: April 10, 2019
Identifiers:
- VU#871675
- CVE-2019-9494 (cache attack against SAE)
Latest version available from: https://w1.fi/security/2019-1/

Vulnerability

Number of potential side channel attacks were discovered in the SAE
implementations used by both hostapd (AP) and wpa_supplicant
(infrastructure BSS station/mesh station). SAE (Simultaneous
Authentication of Equals) is also known as WPA3-Personal. The discovered
side channel attacks may be able to leak information about the used
password based on observable timing differences and cache access
patterns. This might result in full password recovery when combined with
an offline dictionary attack and if the password is not strong enough to
protect against dictionary attacks.

Cache attack

A novel cache-based attack against SAE handshake was discovered. This
attack targets SAE with ECC groups. ECC group 19 being the mandatory
group to support and the most likely used group for SAE today, so this
attack applies to the most common SAE use case. Even though the PWE
derivation iteration in SAE has protections against timing attacks, this
new cache-based attack enables an attacker to determine which code
branch is taken in the iteration if the attacker is able to run
unprivileged code on the victim machine (e.g., an app installed on a
smart phone or potentially a JavaScript code on a web site loaded by a
web browser). This depends on the used CPU not providing sufficient
protection to prevent unprivileged applications from observing memory
access patterns through the shared cache (which is the most likely case
with today's designs).

The attacker can use information about the selected branch to learn
information about the password and combine this information from number
of handshake instances with an offline dictionary attack. With
sufficient number of handshakes and sufficiently weak password, this
might result in full discovery of the used password.

This attack requires the attacker to be able to run a program on the
target device. This is not commonly the case on access points, so the
most likely target for this would be a client device using SAE in an
infrastructure BSS or mesh BSS.

The commits listed in the end of this advisory change the SAE
implementation shared by hostapd and wpa_supplicant to perform the PWE
derivation loop using operations that use constant time and memory
access pattern to minimize the externally observable differences from
operations that depend on the password even for the case where the
attacker might be able to run unprivileged code on the same device.

Timing attack

The timing attack applies to the MODP groups 22, 23, and 24 where the
PWE generation algorithm defined for SAE can have sufficient timing
differences for an attacker to be able to determine how many rounds were
needed to find the PWE based on the used password and MAC
addresses. When the attack is repeated with multiple times, the attacker
may be able to gather enough information about the password to be able
to recover it fully using an offline dictionary attack if the password
is not strong enough to protect against dictionary attacks. This attack
could be performed by an attacker in radio range of an access point or a
station enabling the specific MODP groups.

This timing attack requires the applicable MODP groups to be enabled
explicitly in hostapd/wpa_supplicant configuration (sae_groups
parameter). All versions of hostapd/wpa_supplicant have disabled these
groups by default.

While this security advisory lists couple of commits introducing
additional protection for MODP groups in SAE, it should be noted that
the groups 22, 23, and 24 are not considered strong enough to meet the
current expectation for a secure system. As such, their use is
discouraged even if the additional protection mechanisms in the
implementation are included.

Vulnerable versions/configurations

All wpa_supplicant and hostapd versions with SAE support (CONFIG_SAE=y
in the build configuration and SAE being enabled in the runtime
configuration).

Acknowledgments

Thanks to Mathy Vanhoef (New York University Abu Dhabi) and Eyal Ronen
(Tel Aviv University) for discovering the issues and for discussions on
how to address them.

Possible mitigation steps

- Merge the following commits to wpa_supplicant/hostapd and rebuild:

  OpenSSL: Use constant time operations for private bignums
  Add helper functions for constant time operations
  OpenSSL: Use constant time selection for crypto_bignum_legendre()
  SAE: Minimize timing differences in PWE derivation
  SAE: Avoid branches in is_quadratic_residue_blind()
  SAE: Mask timing of MODP groups 22, 23, 24
  SAE: Use const_time selection for PWE in FFC
  SAE: Use constant time operations in sae_test_pwd_seed_ffc()

  These patches are available from https://w1.fi/security/2019-1/

- Update to wpa_supplicant/hostapd v2.8 or newer, once available

- In addition to either of the above alternatives, disable MODP groups
  1, 2, 5, 22, 23, and 24 by removing them from hostapd/wpa_supplicant
  sae_groups runtime configuration parameter, if they were explicitly
  enabled since those groups are not considered strong enough to meet
  current security expectations. The groups 22, 23, and 24 are related
  to the discovered side channel (timing) attack. The other groups in
  the list are consider too weak to provide sufficient security. Note
  that all these groups have been disabled by default in all
  hostapd/wpa_supplicant versions and these would be used only if
  explicitly enabled in the configuration.

- Use strong passwords to prevent dictionary attacks

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
[bump PKG_RELEASE]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2 months agoprocd: update to latest git HEAD
Hans Dedecker [Wed, 10 Apr 2019 11:40:43 +0000 (13:40 +0200)]
procd: update to latest git HEAD

baaf38c procd: instance: Support deleting stopped instances

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2 months agowireguard: remove obvious comments
Florian Eckert [Tue, 9 Apr 2019 09:00:37 +0000 (11:00 +0200)]
wireguard: remove obvious comments

Remove obvious comments to save disk space.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2 months agowireguard: converted whitespaces from space to tab
Florian Eckert [Tue, 9 Apr 2019 08:52:03 +0000 (10:52 +0200)]
wireguard: converted whitespaces from space to tab

With this change, the file is reduced from 5186 bytes to 4649 bytes that
its approximately 10.5 percent less memory consumption. For small
devices, sometimes every byte counts.
Also, all other protocol handler use tabs instead of spaces.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2 months agoethtool: bump to 5.0
Hans Dedecker [Mon, 8 Apr 2019 08:06:46 +0000 (10:06 +0200)]
ethtool: bump to 5.0

170d821 Release version 5.0.
909f8c0 Revert "ethtool: change to new sane powerpc64 kernel headers"
a484274 ethtool: dsa: mv88e6xxx: add pretty dump for others
034a17b ethtool: dsa: mv88e6xxx: add pretty dump for 88E6390
7f1cc44 ethtool: dsa: mv88e6xxx: add pretty dump for 88E6352
a13a053 ethtool: dsa: mv88e6xxx: add pretty dump for 88E6161
4e98029 ethtool: dsa: mv88e6xxx: add pretty dump for 88E6185
ff99e46 ethtool: dsa: mv88e6xxx: add pretty dump
cb8e980 ethtool: dsa: add pretty dump
4df55c8 ethtool: change to new sane powerpc64 kernel headers
0cb963e ethtool: zero initialize coalesce struct
8f05538 ethtool: don't report UFO on kernels v4.14 and above

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2 months agoimx6: bump sdma firmware to 3.4
Koen Vandeputte [Mon, 8 Apr 2019 16:06:38 +0000 (18:06 +0200)]
imx6: bump sdma firmware to 3.4

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2 months agoath79: add support for Netgear EX6400 and EX7300
Daniel Gimpelevich [Fri, 14 Sep 2018 04:08:51 +0000 (21:08 -0700)]
ath79: add support for Netgear EX6400 and EX7300

This is sold as a dual-band 802.11ac range extender. It has a sliding
switch for Extender mode or Access Point mode, a WPS button, a recessed
Reset button, a hard-power button, and a multitude of LED's, some
multiplexed via an NXP 74AHC164D chip. The internal serial header pinout is
Vcc, Tx, Rx, GND, with GND closest to the corner of the board. You may
connect at 115200 bps, 8 data bits, no parity, 1 stop bit.

Specification:
- System-On-Chip: QCA9558
- CPU/Speed: 720 MHz
- Flash-Chip: Winbond 25Q128FVSG
- Flash size: 16 MiB
- RAM: 128 MiB
- Wireless No1: QCA9558 on-chip 2.4GHz 802.11bgn, 3x3
- Wireless No2: QCA99x0 chip 5GHz 802.11an+ac, 4x4
- PHY: Atheros AR8035-A

Installation:
If you can get to the stock firmware's firmware upgrade option, just feed
it the factory.img and boot as usual. As an alternative, TFTP the
factory.img to the bootloader.

Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
[whitespace fix in DTS and reorder of make variables]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoath79: remove more duplicate image build variables
Daniel Gimpelevich [Wed, 2 Jan 2019 22:19:04 +0000 (14:19 -0800)]
ath79: remove more duplicate image build variables

Remove Netgear-specific image build variables which are set to the same
value.

Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
[reordering of variables, removed stray newline]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agosunxi: Remove already applied patch
Hauke Mehrtens [Mon, 8 Apr 2019 18:18:37 +0000 (20:18 +0200)]
sunxi: Remove already applied patch

This patch is already included in kernel v4.19.31.

Fixes: 8df12d76c642 ("kernel: bump 4.19 to 4.19.34")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 months agoscripts/qemustart: Allow specifying custom rootfs for malta
Petr Štetiar [Thu, 28 Mar 2019 21:13:26 +0000 (21:13 +0000)]
scripts/qemustart: Allow specifying custom rootfs for malta

Currently it's not possible to test boot squashfs root images, so this
patch now allows this use case as well.

Cc: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoscripts/qemustart: Allow specifying custom kernel for x86
Petr Štetiar [Thu, 28 Mar 2019 20:51:34 +0000 (20:51 +0000)]
scripts/qemustart: Allow specifying custom kernel for x86

Currently it's not possible to test boot squashfs root images, so this
patch now allows this use case as well.

Cc: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoscripts/qemustart: Allow usage without networking
Petr Štetiar [Thu, 28 Mar 2019 16:44:17 +0000 (16:44 +0000)]
scripts/qemustart: Allow usage without networking

For basic tests it's not necessary to have the networking setup and this
allows testing as a normal user as well, without root privileges.

So this patch adds `--no-network` long option or `-n` short option,
which allows starting QEMU without network.

Cc: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoar71xx: Correct MAC address for WAN interface of Archer C7 v5
Adrian Schmutzler [Wed, 3 Apr 2019 17:05:19 +0000 (19:05 +0200)]
ar71xx: Correct MAC address for WAN interface of Archer C7 v5

This device shares the network config with v4, thus the WAN MAC
also needs to be fixed the same way. However, the partition
where the MAC address resides has been changed.

Based on: https://github.com/openwrt/openwrt/pull/1726

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 months agoar71xx: Add "info" partition for TP-Link Archer C7 v5
Adrian Schmutzler [Thu, 4 Apr 2019 12:16:19 +0000 (14:16 +0200)]
ar71xx: Add "info" partition for TP-Link Archer C7 v5

This adds the "info" MTD partition, as it is specified in the
ath79 DTS:
https://github.com/openwrt/openwrt/blob/master/target/linux/ath79/dts/qca9563_tplink_archer-c7-v5.dts#L35

This is required to set the WAN MAC address, as it is build based
on the LAN MAC address, which in turn has to be read from the
"info" partition:
https://github.com/openwrt/openwrt/blob/master/target/linux/ath79/dts/qca9563_tplink_archer-c7-v5.dts#L35

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 months agoath79: Add WPS button to TP-Link Archer C7v5
Petr Štetiar [Mon, 8 Apr 2019 16:30:11 +0000 (18:30 +0200)]
ath79: Add WPS button to TP-Link Archer C7v5

This patch adds currently missing support for the WPS button on TP-Link
Archer C7v5.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoath79: Correct MAC address for WAN interface of Archer A7/C7 v5
Adrian Schmutzler [Wed, 3 Apr 2019 17:07:52 +0000 (19:07 +0200)]
ath79: Correct MAC address for WAN interface of Archer A7/C7 v5

These devices share the network config with C7v4, thus the WAN MAC
also needs to be fixed the same way. However, the partition
where the MAC address resides has been changed.

Based on: https://github.com/openwrt/openwrt/pull/1726

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 months agoath79: Fix GPIO reset button on TP-Link Archer C7v5
Adrian Schmutzler [Thu, 4 Apr 2019 08:50:17 +0000 (10:50 +0200)]
ath79: Fix GPIO reset button on TP-Link Archer C7v5

The GPIO for the reset button for the Archer C7v5 changed from
ar71xx to ath79. An investigation based on tests revealed
that the A7v5 responds on "11", while the C7v5 responds on
"5" as set for ar71xx.

Thus, we just define this in the DTS files instead of in the
common DTSI.

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 months agoath79: Utilize new LED modes from diag.sh for Archer A7/C7 v5
Adrian Schmutzler [Tue, 2 Apr 2019 15:02:43 +0000 (17:02 +0200)]
ath79: Utilize new LED modes from diag.sh for Archer A7/C7 v5

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 months agoath79: Consolidate LEDs in Archer A7/C7 v5 DTSI
Adrian Schmutzler [Tue, 2 Apr 2019 15:01:13 +0000 (17:01 +0200)]
ath79: Consolidate LEDs in Archer A7/C7 v5 DTSI

Definition is split here without obvious reason. Just merge it
(and align order to that from C7 v4).

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2 months agoath79: add support for Ubiquiti airCube ISP
Christian Mauderer [Fri, 15 Mar 2019 20:02:54 +0000 (21:02 +0100)]
ath79: add support for Ubiquiti airCube ISP

The Ubiquiti Network airCube ISP is a cube shaped 2.4 GHz with internal
2x2 MIMO antennas. It can be supplied via a USB connector or via PoE.
There are for 10/100 Mbps ports (1 * WAN + 3 * LAN). There is an
optional PoE passthrough from the first LAN port to the WAN port.

SoC:       Qualcomm / Atheros QCA9533-BL3A
RAM:       64 MB DDR2
Flash:     16 MB SPI NOR
Ethernet:  4x 10/100 Mbps (1 WAN + 3 LAN)
LEDS:      1x via a SPI controller (not yet supported)
Buttons:   1x Reset
Serial:    1x (only RX and TX); 115200 baud, 8N1

Missing points:
- LED not yet supported
- Factory upgrade via web IF or TFTP recovery not yet supported
  (Needs RSA signed images, for details see PR#1958)

The serial port is on a four pin connextor labeled J1 and located
between Ethernet and USB connector. The pinout is:
1. 3V3 (out)
2. Rx (in)
3. Tx (out)
4. GND

Upgrading via serial port / U-Boot:
- Connect the serial port via a level converter
- Power the system and stop U-Boot with pressing any key when `Hit any
  key to stop autoboot` is displayed. Note: Pressing space multiple
  times untill U-Boot reaches that location works well.
- Connect a PC with the IP 192.168.1.100 (or some other in that net)
  running a TFTP-Server to one of the LAN ports. Copy the sysupgrade
  image to the server.
- Set the U-Boot server IP with
    setenv serverip 192.168.1.100
- Load the flash image to RAM with
    tftpboot 0x81000000 sysupgrade.bin
- Erase the flash with
    erase 0x9f050000 0x9ffaffff
- Write the new flash content with
    cp 0x81000000 0x9f050000 ${filesize}
- Reset the device with
    reset

Signed-off-by: Christian Mauderer <oss@c-mauderer.de>
[removed full stop in subject and added lockdown note to commit message]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoath79: add support for OCEDO Ursus
Markus Scheck [Thu, 21 Mar 2019 15:43:27 +0000 (16:43 +0100)]
ath79: add support for OCEDO Ursus

SOC:   Qualcomm Atheros QCA9558
RAM:   128MB
FLASH: 16MB (Macronix MX25L12845EMI-10G)
WLAN1: QCA9558 2.4GHz 802.11bgn 3SS
WLAN2: QCA9880 5GHz 802.11ac 3SS
LED:   Power, LAN1, LAN2, 2.4GHz, 5GHz
Serial:Next to SPI Flash,
       Pinout is 3V3 - GND - TX - RX (Square Pin is 3V3)
       The Serial setting is 115200-8-N-1

INSTALLATION:

1. Serve an OpenWrt ramdisk image named "ursus.bin".
   Set your IP-address to 192.168.100.8/24.
2. Connect to the serial. Power up the device and interrupt
   the boot process.
3. Set the correct bootcmd with
   > setenv bootcmd run bootcmd_1
   > saveenv
4. Run
   > tftpboot 0x81000000 ursus.bin
   > bootm 0x81000000
5. Wait for OpenWrt to boot up.
6. Transfer OpenWrt sysupdate image and flash via sysupgrade.

Signed-off-by: Markus Scheck <markus.scheck1@gmail.com>
Tested-by: David Bauer <mail@david-bauer.net>
[whitespace fix, renamed LED labels and SoC type fix]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoath79: ag71xx: Enable tx hang workaround for the rest of ar724x SoCs
Petr Štetiar [Fri, 4 Jan 2019 14:57:07 +0000 (15:57 +0100)]
ath79: ag71xx: Enable tx hang workaround for the rest of ar724x SoCs

In ar71xx we check for stuck DMA on devices which fall in the is_ar724x
SoC group (ar724x, ar933x, ar934x, qca9533, tp9343, qca955x, qca956x).

In ath79 we're currently performing this check only for devices with
ar7240 SoC, so this patch tries to sync the dma stuck checking behavior
with what is being done in ar71xx.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoar71xx: ag71xx: Fix broken networking on some devices (FS#2177)
Petr Štetiar [Wed, 3 Apr 2019 08:05:26 +0000 (10:05 +0200)]
ar71xx: ag71xx: Fix broken networking on some devices (FS#2177)

It was reported, that latest ar71xx builds have broken networking on
TP-Link TL-WPA8630 and Nanostation M5 XW devices and that by reverting
the offending commit, everything is back to normal.

Fixes: d3506d1 ("ar71xx: ag71xx: fix compile error when enabling debug")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoar71xx: Add support for Ubiquity Bullet M (XW)
Petr Štetiar [Sat, 17 Nov 2018 07:01:55 +0000 (08:01 +0100)]
ar71xx: Add support for Ubiquity Bullet M (XW)

CPU: AR9342 SoC
RAM:     64 MB DDR2
Flash:    8 MB NOR SPI
Ports:  100 MBit (24V PoE in)
WLAN: 2.4/5 GHz
UART:     1 UART on PCB marked as J1 with 115200 8N1 config
LEDs:       Power, Ethernet, 4x RSSI LEDs (orange, red, 2x green)
Buttons:    Reset

UART connection details

  .---------------------------------.
  |                                 |
[ETH]          J1                 [ANT]
  |    o VCC o RX o TX o GND        |
  `---------------------------------'

Flashing instructions using recovery method over TFTP

 1. Unplug the ethernet cable from the router.
 2. Using paper clip press and hold the router's reset button. Make sure
    you can feel it depressed by the paper clip. Do not release the button
    until step 4.
 3. While keeping the reset button pressed in, plug the ethernet cable
    back into the AP. Keep the reset button depressed until you see the
    device's LEDs flashing in upgrade mode (alternating LED1/LED3 and
    LED2/LED4), this may take up to 25 seconds.
 4. You may release the reset button, now the device should be in TFTP
    transfer mode.
 5. Set a static IP on your Computer's NIC. A static IP of 192.168.1.25/24
    should work.
 6. Plug the PoE injector's LAN cable directly to your computer.
 7. Start tftp client and issue following commands:
     tftp> binary
     tftp> connect 192.168.1.20
     tftp> put openwrt-ar71xx-generic-ubnt-bullet-m-xw-squashfs-factory.bin

Tested only on Bullet M2HP.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoar71xx: ubnt-m-xw: Fix factory image flashing using TFTP recovery
Petr Štetiar [Mon, 19 Nov 2018 20:44:50 +0000 (21:44 +0100)]
ar71xx: ubnt-m-xw: Fix factory image flashing using TFTP recovery

This is backport of the same functionality in ath79, from commit
 d42a7c469 ("ath79: ubnt-m-xw: Fix factory image flashing using TFTP
             recovery method")

Ubiquity allows flashing of unsigned factory images via TFTP recovery
method[1]. They claim in airOS v6.0.7 release changelog[2] following:

 All future airOS versions will be signed in this way and not allow
 unsigned firmware to be loaded except via TFTP.

U-boot bootloader on M-XW devices expects factory image revision
version in specific format. On airOS v6.1.7 with `U-Boot 1.1.4-s1039
(May 24 2017 - 15:58:18)` bootloader checks if the revision major(?)
number is actually a number, but in currently generated images there's
OpenWrt text and so the check fails:

 Hit any key to stop autoboot:  0
 Setting default IP 192.168.1.20
 Starting TFTP server...
 Receiving file from 192.168.1.25:38438
 Received 4981148 bytes
 Firmware check failed! (1)

By placing arbitrary correct number first in major version, we make the
bootloader happy and we can flash factory images over TFTP again:

 Received 3801500 bytes
 Firmware Version: XW.ar934x.v6.0.4-42.OpenWrt-r9766+2-be42e44
 Setting U-Boot environment variables
 Un-Protected 1 sectors
 Erasing Flash.... done

Patch provided by AREDN[3] project, tested on Bullet M2 XW.

1. https://help.ubnt.com/hc/en-us/articles/204910124-UniFi-TFTP-Recovery-for-Bricked-Access-Points
2. https://dl.ubnt.com/firmwares/XW-fw/v6.0.7/changelog.txt
3. https://github.com/aredn

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoimx6: Add support for Toradex Apalis family of CoMs
Petr Štetiar [Fri, 23 Nov 2018 09:33:24 +0000 (10:33 +0100)]
imx6: Add support for Toradex Apalis family of CoMs

This patch adds support for the following computer on modules (CoM) from
Toradex[A]:

 Apalis iMX6 Quad 2GB IT - i.MX 6Quad 800MHz, 2GB DDR3, 4GB eMMC
                                             -40° to +85° C Temp
 Apalis iMX6 Quad 1GB    - i.MX 6Quad 1GHz,   1GB DDR3, 4GB eMMC
                                               0° to +70° C Temp
 Apalis iMX6 Dual 1GB IT - i.MX 6Dual 800MHz, 1GB DDR3, 4GB eMMC
                                             -40° to +85° C Temp
 Apalis iMX6 Dual 512MB  - i.MX 6Dual 1GHz, 512MB DDR3, 4GB eMMC
                                               0° to +70° C Temp

I've developed and tested it on Quad 2GB IT v1.1A and Dual 512MB v1.1A
CoMs, using Ixora[B] carrier board v1.0A, but it should hopefuly work on
Eval[C] board as well.

A. https://www.toradex.com/computer-on-modules/apalis-arm-family/nxp-freescale-imx-6
B. https://www.toradex.com/products/carrier-board/ixora-carrier-board
C. https://www.toradex.com/products/carrier-board/apalis-evaluation-board

Flashing/recovery instructions:

 1. Download and compile imx_loader for OpenWrt from
    https://github.com/ynezz/imx_loader

 2. Enter recovery mode as desribed in
    https://developer.toradex.com/knowledge-base/imx-recovery-mode

 3. Connect board via USB to the host computer, check that it's connected
    by lsusb:

    15a2:0054 Freescale Semiconductor, Inc. i.MX 6Dual/6Quad SystemOnChip
              in RecoveryMode

 4. Copy following OpenWrt images to imx_loader directory:
         SPL
         u-boot.img
         u-boot-with-spl.imx
         openwrt-imx6-apalis-recovery.scr
         openwrt-imx6-apalis-squashfs.combined.bin

 5. Run imx_usb in imx_loader directory

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoimx6: image: Split imx6-sdcard image for reusability
Petr Štetiar [Fri, 23 Nov 2018 08:25:13 +0000 (09:25 +0100)]
imx6: image: Split imx6-sdcard image for reusability

I'm going to reuse the imx6-sdcard image commands for building of Apalis
eMMC images.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agouboot-envtools: imx6: Add support for Toradex Apalis board family
Petr Štetiar [Tue, 27 Nov 2018 20:22:41 +0000 (21:22 +0100)]
uboot-envtools: imx6: Add support for Toradex Apalis board family

This patch is needed in order to be able to use fw_{set,print}env
commands.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agouboot-imx6: Add support for Toradex Apalis board family
Petr Štetiar [Mon, 26 Nov 2018 22:31:53 +0000 (23:31 +0100)]
uboot-imx6: Add support for Toradex Apalis board family

This patch is needed in order to properly boot OpenWrt bootscript.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 months agoglibc: update to latest 2.27 commit [BZ #22964]
Hans Dedecker [Mon, 8 Apr 2019 07:53:25 +0000 (09:53 +0200)]
glibc: update to latest 2.27 commit [BZ #22964]

de9d4aa353 ja_JP locale: Add entry for the new Japanese era [BZ #22964]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2 months agokernel: bump 4.19 to 4.19.34
Koen Vandeputte [Mon, 8 Apr 2019 12:15:26 +0000 (14:15 +0200)]
kernel: bump 4.19 to 4.19.34

Refreshed all patches.

Removed:
- 030-PCI-dwc-skip-MSI-init-if-MSIs-have-been-explicitly-d.patch

Altered:
- 366-netfilter-nf_flow_table-clean-up-and-fix-dst-handlin.patch
- 650-netfilter-add-xt_OFFLOAD-target.patch
- 662-remove_pfifo_fast.patch
- 332-arc-add-OWRTDTB-section.patch
- 100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch
- 702-phy_add_aneg_done_function.patch

New symbols:
- ARC_IRQ_NO_AUTOSAVE
- SUN50I_ERRATUM_UNKNOWN1

Compile-tested: cns3xxx, imx6, sunxi
Runtime-tested: cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2 months agokernel: bump 4.14 to 4.14.111
Koen Vandeputte [Mon, 8 Apr 2019 11:39:00 +0000 (13:39 +0200)]
kernel: bump 4.14 to 4.14.111

Refreshed all patches.

Compile-tested on: ar71xx, cns3xxx, imx6, x86_64
Runtime-tested on: ar71xx, cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2 months agokernel: bump 4.9 to 4.9.168
Koen Vandeputte [Mon, 8 Apr 2019 11:37:02 +0000 (13:37 +0200)]
kernel: bump 4.9 to 4.9.168

Refreshed all patches.

Compile-tested on: ar7
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2 months agokernel: bump 4.14 to 4.14.110
Koen Vandeputte [Fri, 5 Apr 2019 08:58:45 +0000 (10:58 +0200)]
kernel: bump 4.14 to 4.14.110

Refreshed all patches.

Compile-tested on: ar71xx, cns3xxx, imx6, x86_64
Runtime-tested on: ar71xx, cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2 months agokernel: bump 4.9 to 4.9.167
Koen Vandeputte [Fri, 5 Apr 2019 08:55:56 +0000 (10:55 +0200)]
kernel: bump 4.9 to 4.9.167

Refreshed all patches.

Compile-tested on: ar7
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2 months agodropbear: bump to 2019.78
Hans Dedecker [Sun, 7 Apr 2019 18:22:19 +0000 (20:22 +0200)]
dropbear: bump to 2019.78

Fix dbclient regression in 2019.77. After exiting the terminal would be left
in a bad state. Reported by Ryan Woodsmall

drop patch applied upstream:
010-tty-modes-werent-reset-for-client.patch

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2 months agoubox: bump to git HEAD
Stijn Tintel [Sun, 7 Apr 2019 16:36:30 +0000 (19:36 +0300)]
ubox: bump to git HEAD

5130fa4 kmodloader: fix and optimize loading of failed modules

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 months agotools: cbootimage: depend on automake
Tomasz Maciej Nowak [Sun, 7 Apr 2019 13:15:36 +0000 (15:15 +0200)]
tools: cbootimage: depend on automake

Fix missing aclocal reported by buildbot.

Fixes: 8595bb0 ("tools: add cbootimage for tegra")
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
2 months agofirmware-utils: fix nec-enc build on older architectures
Christian Lamparter [Sat, 6 Apr 2019 18:29:35 +0000 (20:29 +0200)]
firmware-utils: fix nec-enc build on older architectures

This patch enable gnu99 mode for the nec-enc utility which
fixes the following build-breaking errors on some older
architectures.

nec-enc.c: In function ‘xor_data’:
nec-enc.c:34:2: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
  for (int i = 0; i < len; i++) {
  ^~~
nec-enc.c:34:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
nec-enc.c: In function ‘main’:
nec-enc.c:101:3: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
   for (int i = 0; i < n; i++) {
   ^~~

Spotted-By: Buildbot
Fixes: fac27643f057 ("firmware-utils: add nec-enc")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 months agoramips: correct DTS for Belkin F9K1109v1 to include switch definition
Kip Porterfield [Fri, 5 Apr 2019 23:46:33 +0000 (19:46 -0400)]
ramips: correct DTS for Belkin F9K1109v1 to include switch definition

Add switch definition for the rtl8367b switch to the DTS/DTSi for
the Belkin F9K1109v1 that was mistakenly omitted from the initial
commit.

Fixes: 017ec068e3df (ramips: add support for Belkin F9K1109v1)
Signed-off-by: Kip Porterfield <kip.porterfield@gmail.com>
2 months agoath79: add support for NEC Aterm WG1200CR
INAGAKI Hiroshi [Sat, 16 Mar 2019 04:27:32 +0000 (13:27 +0900)]
ath79: add support for NEC Aterm WG1200CR

NEC Aterm WG1200CR is a 2.4/5 GHz band 11ac router,
based on Qualcomm Atheros QCA9563.

Specification:

- SoC : Qualcomm Atheros QCA9563
- RAM : DDR2 128 MiB
- Flash : SPI-NOR 8 MiB
- WLAN : 2.4/5 GHz 2T2R
  - 2.4 GHz : QCA9563 (SoC)
  - 5 GHz : QCA9888
- Ethernet : 2x 10/100/1000 Mbps
  - Switch : QCA8334
- LEDs/Input : 12x/4x (2x buttons, 1x slide-switch)
- UART : through-hole on PCB
  - JP1: Vcc, GND, NC, TX, RX from power connector side
  - 115200 bps

Flash instruction using factory image:

1. Boot WG1200CR normaly
2. Access to "http://192.168.10.1/" and open firmware update page
("ファームウェア更新")
3. Select the OpenWrt factory image and click update ("更新") button
to perform firmware update
4. Wait ~150 seconds to complete flashing

Known issues:

- cannot be controlled LEDs other than Power (Green/Red)
  - only Power LEDs are connected to SoC GPIO; other LEDs
    connected to the gpiochip on ath10k chip (QCA9888)

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [commit
message formatting]

2 months agofirmware-utils: add nec-enc
INAGAKI Hiroshi [Sat, 16 Mar 2019 04:19:24 +0000 (13:19 +0900)]
firmware-utils: add nec-enc

nec-enc provides firmware encoding/decoding with model specific key
for NEC devices.

known devices:

  - Aterm WF1200CR
  - Aterm WG1200CR
  - Aterm WG2600HS

usage:

  nec-enc -i infile -o outfile -k key

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[checkpatch fixes, marked usage as noreturn, added static function,
moved buf* from stack to the global data segment]

2 months agoramips: backport mt7621-spi from linux-next-20190329
Chuanhong Guo [Fri, 29 Mar 2019 09:46:36 +0000 (17:46 +0800)]
ramips: backport mt7621-spi from linux-next-20190329

Upstream driver has gone through a series of cleanup and was moved
from drivers/staging into drivers/spi. Backport it to replace our
messy driver.

Tested-by: Jörg Schüler-Maroldt <joerg-linux@arcor.de>
[LinkIt Smart 7688, AcSIP AI7688H Wi-Fi module]
Tested-by: Rosen Penev <rosenp@gmail.com>
Tested-by: Tian Xiao bo <peterwillcn@gmail.com>
[Newifi-D2 MediaTek MT7621 ver:1 eco:3]
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2 months agobuild: remove sgid permission from tar
Eneas U de Queiroz [Thu, 28 Mar 2019 16:58:07 +0000 (16:58 +0000)]
build: remove sgid permission from tar

Otherwise tar will keep the sgid bit when running
from a sgid-set directory, resulting in a different
file being generated.

Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[reworked commit message, removed DMARC]

2 months agowpan-tools: clean up Makefile
Michael Heimpold [Tue, 26 Mar 2019 21:09:14 +0000 (22:09 +0100)]
wpan-tools: clean up Makefile

When we only call the default, we do not need to define it explicitly.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2 months agofconfig: cleanup Makefile
Michael Heimpold [Tue, 26 Mar 2019 21:09:24 +0000 (22:09 +0100)]
fconfig: cleanup Makefile

We do not need to define an empty Build/Configure since
the default checks for existing ./configure and does nothing
in case nothing is found.

Similar for Build/Compile: we can remove the definition
when we only call the default.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2 months agotools/xz: Compile with PIC to fix linking errors
Rosen Penev [Wed, 27 Mar 2019 07:50:16 +0000 (00:50 -0700)]
tools/xz: Compile with PIC to fix linking errors

I made a similar change to this here:
https://github.com/openwrt/packages/pull/8159

However, it turns out this did not fix the problem as the problem has to
do with tools/xz and not the xz package. The error is the same and causes
linking errors as can be seen above.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 months agoath79: Utilize tplink-safeloader definition
Adrian Schmutzler [Wed, 27 Mar 2019 18:14:34 +0000 (19:14 +0100)]
ath79: Utilize tplink-safeloader definition

Currently, tplink-safeloader definition is only used a base for
another common definition.

This patch adjusts tplink-safeloader so it can be actually used
for some targets in generic-tp-link.mk.

This patch is cosmetic except for the order of
"check-size $$$$(IMAGE_SIZE)" and "append-metadata" exchanged
for the tplink_re350k-v1 .

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [dealed with
tplink_cpe210-v2 and tplink_cpe210-v3, removed tplink-safeloader-uimage's
extra IMAGE/sysupgrade.bin rule]

2 months agokernel: Add RIPEMD160 module
Rosen Penev [Wed, 27 Mar 2019 20:39:49 +0000 (13:39 -0700)]
kernel: Add RIPEMD160 module

After getting rid of cryptsetup's heavy openssl dependency, there is now
the problem of missing RIPEMD160 support. RIPEMD160 is used for True/Vera
crypt volumes as well as old LUKS1 ones.

Signed-off-by: Rosen Penev <rosenp@gmail.com>