22 months agotoolchain: Use GCC 8.3.0 by default for ARC
Daniel Engberg [Wed, 27 Feb 2019 10:21:03 +0000 (10:21 +0000)]
toolchain: Use GCC 8.3.0 by default for ARC

Use GCC 8.3.0 by default for ARC targets
Includes a fix by Evgeniy Didin which fixes GCC version selection if
DEVEL isn't set

Signed-off-by: Daniel Engberg <>
22 months agokernel: Update arc-add-OWRTDTB-section patch for 4.14
Evgeniy Didin [Wed, 20 Mar 2019 08:30:40 +0000 (11:30 +0300)]
kernel: Update arc-add-OWRTDTB-section patch for 4.14

In 4.14.104 commit "e7264579eb80" (ARC: U-boot: check arguments paranoidly)
was introduced, which together with 332-arc-add-OWRTDTB-section.patch
caused build failure.

This commit updates 332-arc-add-OWRTDTB-section.patch.


Signed-off-by: Evgeniy Didin <>
[Updated patch for kernel 4.19 in addition]
Signed-off-by: Hauke Mehrtens <>
Cc: Alexey Brodkin <>
Cc: Hauke Mehrtens <>
Cc: John Crispin <>
22 months agomac80211: fix an issue with the TXQ scheduling API and powersave clients
Felix Fietkau [Tue, 19 Mar 2019 11:02:35 +0000 (12:02 +0100)]
mac80211: fix an issue with the TXQ scheduling API and powersave clients

Signed-off-by: Felix Fietkau <>
22 months agomac80211: improve the txq scheduling API to deal with driver buffered packets
Felix Fietkau [Tue, 19 Mar 2019 11:01:53 +0000 (12:01 +0100)]
mac80211: improve the txq scheduling API to deal with driver buffered packets

Signed-off-by: Felix Fietkau <>
22 months agomac80211: optimize skb resizing to avoid reallocation when using 802.11s + batman-adv
Felix Fietkau [Mon, 18 Mar 2019 11:59:20 +0000 (12:59 +0100)]
mac80211: optimize skb resizing to avoid reallocation when using 802.11s + batman-adv

Signed-off-by: Felix Fietkau <>
22 months agoiproute2: add cake fwmark support
Ryan Mounce [Thu, 28 Feb 2019 15:51:36 +0000 (15:51 +0000)]
iproute2: add cake fwmark support

Signed-off-by: Ryan Mounce <>
22 months agokmod-sched-cake: bump to latest cake
Ryan Mounce [Tue, 5 Mar 2019 03:34:45 +0000 (14:04 +1030)]
kmod-sched-cake: bump to latest cake

Update the out of tree build of cake. Applicable patches are also in

057c738 Fix fwmark_shft assignment (again)
ca6c162 Add support for storing mark back into conntrack
7ed9b6c Fix off-by-one error when setting fwmark_shft.
a4a243a sch_cake: Interpret fwmark parameter as a bitmask
29d707e Simplify logic in cake_select_tin()
8acaaee Permit use of connmarks as tin classifiers
348f186 Make the dual modes fairer
99a7297 compat: Don't lock root qdisc when dumping stats on old kernels

Signed-off-by: Ryan Mounce <>
22 months agokernel: fix compile issue for tda1997x media device
Koen Vandeputte [Tue, 19 Mar 2019 08:19:08 +0000 (09:19 +0100)]
kernel: fix compile issue for tda1997x media device

Building tda1997x fails now unless V4L2_FWNODE is selected:

drivers/media/i2c/tda1997x.o: in function `tda1997x_parse_dt'
undefined reference to `v4l2_fwnode_endpoint_parse'

Signed-off-by: Koen Vandeputte <>
22 months agoipq806x: Enlarge R7500v2 flash - use netgear partition
Wang Xin-yu (王昕宇) [Sat, 16 Mar 2019 01:07:10 +0000 (09:07 +0800)]
ipq806x: Enlarge R7500v2 flash - use netgear partition

This patch increases available space from 20MB to 86MB.
Netgrear OEM firmware contains a 'netgear' partition followed 'ubi',
which can be used in openwrt for larger ubi space. (similar to
Netgear R7800).

original author (notmyrealhandle) tested this on R7500v2 and point that
OEM firmware can auto rebuild this partition (if used by openwrt).

Author: notmyrealhandle<>
Signed-off-by: Wang Xin-yu (王昕宇) <>
Signed-off-by: Christian Lamparter <> [minor touch-ups]
22 months agoath79: align naming of Ubiquiti Nanostation M
Sven Roederer [Wed, 6 Mar 2019 23:09:15 +0000 (00:09 +0100)]
ath79: align naming of Ubiquiti Nanostation M

Support for the Nanostation M (XW) was added in 40530c8eb with board
name "nanostation-m-xw". The current image for the "Nanostation M"
uses "nano-m" as the board name.
This commit renames it to the full product name as it's used by all
other boards. The legacy boardname of the ar71xx target is added
via SUPPORTED_DEVICES to ease switching to ath79 target.

Signed-off-by: Sven Roederer <>
[touch-ups on the commit message, removed subject remains]
Signed-off-by: Christian Lamparter <>
22 months agoramips: add #pwm-cells property to MT76x8 dts
Micke Prag [Fri, 15 Mar 2019 10:05:53 +0000 (11:05 +0100)]
ramips: add #pwm-cells property to MT76x8 dts

To be able to configure pwms the pwm driver needs to know the number off
cells in the "pwms" property. For this platform this is 2.

Signed-off-by: Micke Prag <>
22 months agousbutils: Update usb.ids to 0.321
Daniel Engberg [Fri, 15 Mar 2019 08:57:34 +0000 (09:57 +0100)]
usbutils: Update usb.ids to 0.321

Update usb.ids to 0.321

Signed-off-by: Daniel Engberg <>
22 months agoath79: add support for jjPlus JA76PF2
Tomasz Maciej Nowak [Wed, 6 Mar 2019 19:15:19 +0000 (20:15 +0100)]
ath79: add support for jjPlus JA76PF2

jjPlus JA76PF2 (marketed as IntellusPro2) is a network embedded board.

SoC: Atheros AR7161
Flash: 16 MB SPI NOR
Ethernet: 2x 10/100/1000 Mbps AR8316
LAN (CN11), WAN/PoE (CN6 - close to power barrel
connector, 48 V)
MiniPCI: 2x
LEDS: 4x, which 3 are GPIO controlled
Buttons: 2x GPIO controlled
Reset (SW1, closer to ethernet ports), WPS (SW2)
Serial: 1x (only RX and TX are wired)
baud: 115200, parity: none, flow control: none

Currently there is one caveat compared to ar71xx target images as the
MAC addresses are random on every reboot. To remedy this one needs to
store the WAN MAC address in RedBoot configuration. OpenWrt on first
boot, after flashing, will read out the address and assign proper ones
to both WAN and LAN ports. It is iportant to NOT keep the old
configuration when doing sysupgrade from ar71xx.

Upgrading from OpenWrt ar71xx image
1. Connect to serial port,
2. Download OpenWrt sysupgrade image to /tmp directory and flash it
    sysupgrade -n <openwrt_sysupgrade_image_name>
3. After writing new image OpenWrt will reboot, now interrupt boot
   process and enter RedBoot (bootloader) command line by pressing
4. Enter following commands (replace variable accordingly),
    set_mac (to view MAC addresses)
    alias ethaddr <wan_port_mac_adress>
    (confirm storing the value by inputting y and pressing Enter)
5. Now board should restart and boot OpenWrt with proper MAC addresses.

1. Prepare TFTP server with OpenWrt initramfs image,
2. Connect to WAN ethernet port,
3. Connect to serial port,
4. Power on the board and enter RedBoot (bootloader) command line by
   pressing Ctrl+C,
5. Enter following commands (replace variables accordingly):
    set_mac (to view MAC addresses)
    alias ethaddr <wan_port_mac_address>
    (confirm storing the value by inputting y and pressing Enter)
    ip_adress -l <board_ip_adress>/24 -h <tftp_server_ip_adress>
    load -r -b 0x80060000 <openwrt_initramfs_image_name>
    exec -c ""
6. Now board should boot OpenWrt initramfs image,
7. Download OpenWrt sysupgrade image to /tmp directory and flash it
    sysupgrade <openwrt_sysupgrade_image_name>
8. Wait few minutes, after the D2 LED will stop blinking, the board
   is ready for configuration.

Signed-off-by: Tomasz Maciej Nowak <>
22 months agoath79: routerstation: prepare to use sysupgrade-tar format image
Tomasz Maciej Nowak [Mon, 4 Mar 2019 14:14:18 +0000 (15:14 +0100)]
ath79: routerstation: prepare to use sysupgrade-tar format image

In PR [1] introducing initial support for Ubiquiti RouterStation boards,
Mathias Kresin suggested to replace the combined sysupgrade image with
tarball generated by This would simplify deployment
of sysupgrade as the kernel size (needed to update FIS partition) could
be simply calculated on the fly instead of reading value from combined
image header. Unfortunately this would break sysupgrade compatibility
between ar71xx image and ath79 image. Therefore this commit creates
migration path to use new sysuprade image, it adds code to accept both
of them at this moment. The plan is to keep it until new stable version
is released. Then the image recipe should be changed to new format and
compatibility code for old image removed.


Signed-off-by: Tomasz Maciej Nowak <>
22 months agolantiq: kernel 4.14: fix usb_phy1 reset status bit in vr9.dts
Martin Schiller [Mon, 11 Mar 2019 10:17:05 +0000 (11:17 +0100)]
lantiq: kernel 4.14: fix usb_phy1 reset status bit in vr9.dts

The status of USB PHY 1 Reset Domain is also in bit 5 of RST_STAT2.

Signed-off-by: Martin Schiller <>
22 months agoath79: qca955x: add wmac migration hotplug event
Tomasz Maciej Nowak [Wed, 13 Mar 2019 16:44:22 +0000 (17:44 +0100)]
ath79: qca955x: add wmac migration hotplug event

When upgrading from ar71xx target images to ath79 based ones, the
integrated wireless interface changes its sysfs path. Therefore the
previous enabled wireless interface will be disabled, which can cause
false complains about it not working. This commit adds hotplug event
which migrates to new path and will keep the wrireless interface
enabled after upgrade.

Signed-off-by: Tomasz Maciej Nowak <>
22 months agoath79: fix leds description for EnGenius EPG5000
Tomasz Maciej Nowak [Wed, 13 Mar 2019 16:44:21 +0000 (17:44 +0100)]
ath79: fix leds description for EnGenius EPG5000

Align the LEDs deffinition with MACH file present in ar71xx target which
has the correct LED functions and colors adescription.

Signed-off-by: Tomasz Maciej Nowak <>
22 months agokernel: bump 4.14 to 4.14.106
Koen Vandeputte [Thu, 14 Mar 2019 13:22:10 +0000 (14:22 +0100)]
kernel: bump 4.14 to 4.14.106

Refreshed all patches.

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

Signed-off-by: Koen Vandeputte <>
22 months agokernel: bump 4.9 to 4.9.163
Koen Vandeputte [Thu, 14 Mar 2019 13:20:14 +0000 (14:20 +0100)]
kernel: bump 4.9 to 4.9.163

Refreshed all patches.

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

Signed-off-by: Koen Vandeputte <>
22 months agoipset: size optimizations
Deng Qingfang [Sat, 23 Feb 2019 16:46:54 +0000 (00:46 +0800)]
ipset: size optimizations

ipset utility was linked statically to libipset. Disable static library for dynamic linking to save space.
Add -Wl,--gc-sections,--as-needed for further reduction

MIPS ipk size:
ipset: 29KiB -> 2KiB
libipset: 39KiB -> 38KiB

Signed-off-by: Deng Qingfang <>
22 months agoRevert "tools/cmake: Update to 3.14.0"
Stijn Tintel [Sun, 17 Mar 2019 10:17:28 +0000 (11:17 +0100)]
Revert "tools/cmake: Update to 3.14.0"

The cmake bump to 3.14.0 breaks build on all targets. Revert it for now.

This reverts commit a3446257a8737bfc2899c5911791873561feecc7.

Signed-off-by: Stijn Tintel <>
22 months agotools/libelf: Add mirrors as main site is dead
Daniel Engberg [Thu, 14 Mar 2019 07:25:49 +0000 (08:25 +0100)]
tools/libelf: Add mirrors as main site is dead

Main site hasn't resolved for days so just add a few mirrors instead

Signed-off-by: Daniel Engberg <>
22 months agotools/cmake: Update to 3.14.0
Daniel Engberg [Sat, 16 Mar 2019 21:09:22 +0000 (21:09 +0000)]
tools/cmake: Update to 3.14.0

Update CMake to 3.14.0
Refresh patches
Remove inofficial and replace with GitHub (link on official site)
Remote 150-C-feature-checks-Match-warnings-more-strictly.patch as it's
a no longer needed backport from upstream.

Signed-off-by: Daniel Engberg <>
22 months agomac80211: netifd: Use a mask when using `iw set antenna`
Alexander Couzens [Sat, 9 Mar 2019 14:59:32 +0000 (15:59 +0100)]
mac80211: netifd: Use a mask when using `iw set antenna`

The keyword "all" is only supported by `iw set antenna` if
it's used as the only argument.
Convert "all" into a mask before calling `iw set antenna`.

Signed-off-by: Alexander Couzens <>
22 months agomt76: update to the latest version
Felix Fietkau [Tue, 12 Mar 2019 09:44:53 +0000 (10:44 +0100)]
mt76: update to the latest version

00ac79d mt7603: fix initialization of max rx length
320af65 mt76: mt7603: use the correct hweight8() function
bdee924 mt76: fix schedule while atomic in mt76x02_reset_state
abcb544 mt76x02: do not enable RTS/CTS by default
e97a209 mt76: remove mt76_queue dependency from tx_queue_skb function pointer
ddd98f8 mt76: remove mt76_queue dependency from tx_prepare_skb function pointer
9bc2d56 mt76: remove mt76_queue dependency from tx_complete_skb function pointer
06c917f mt76: introduce mt76_sw_queue data structure
2dc63b0 mt76: introduce mt76_txq_id field in mt76_queue_entry
312f6fc mt76: remove irqsave/restore in locking for tx status fifo
0fe6386 mt76: move mt76x02_insert_hdr_pad in mt76-core module
efe9a47 mt76: mmio: move mt76_insert_hdr_pad in mt76_dma_tx_queue_skb
0b03f87 mt76: move skb dma mapping before running tx_prepare_skb
f977a92 mt76: introduce mt76_tx_info data structure
72fe286 mt76: use mac80211 txq scheduling
b77b932 mt76: reduce locking in mt76_dma_tx_cleanup
c0ab515 mt76: store wcid tx rate info in one u32 reduce locking
f37ad72 mt76: mt76x02: store software PN/IV in wcid
5323005 mt76: move tx tasklet to struct mt76_dev
688d708 mt76: only schedule txqs from the tx tasklet
42ce040 mt76: use TX_NEEDS_ALIGNED4_SKBS
2660aa9 mt76: mt7603: store software PN/IV in wcid
3ce8a93 mt76: dma: add static qualifier to mt76_dma_tx_queue_skb
81a32aa mt7603: remove mt7603_mcu_init routine
48dc7e9 mt7603: core: do not use magic numbers in mt7603_reg_map
2236490 mt76: usb: reduce code indentation in mt76u_alloc_tx

Signed-off-by: Felix Fietkau <>
22 months agomac80211: add a few performance improvement patches
Felix Fietkau [Sat, 16 Mar 2019 18:50:44 +0000 (19:50 +0100)]
mac80211: add a few performance improvement patches

Signed-off-by: Felix Fietkau <>
22 months agokernel: backport flow dissector batman-adv support
Felix Fietkau [Sat, 16 Mar 2019 17:38:46 +0000 (18:38 +0100)]
kernel: backport flow dissector batman-adv support

Improves performance on multicore systems handling batman-adv traffic

Signed-off-by: Felix Fietkau <>
22 months agomac80211: improve locking around the txq scheduling / airtime fairness API
Felix Fietkau [Wed, 13 Mar 2019 20:58:55 +0000 (21:58 +0100)]
mac80211: improve locking around the txq scheduling / airtime fairness API

Signed-off-by: Felix Fietkau <>
22 months agomac80211: backport the txq scheduling / airtime fairness API
Felix Fietkau [Wed, 13 Mar 2019 19:08:16 +0000 (20:08 +0100)]
mac80211: backport the txq scheduling / airtime fairness API

Signed-off-by: Felix Fietkau <>
22 months agomac80211: fix an unaligned access in the mesh hash table function
Felix Fietkau [Wed, 13 Mar 2019 19:04:44 +0000 (20:04 +0100)]
mac80211: fix an unaligned access in the mesh hash table function

Signed-off-by: Felix Fietkau <>
22 months agonetifd: add support for suppressing the DHCP request hostname by setting it to *
Felix Fietkau [Wed, 13 Mar 2019 11:45:13 +0000 (12:45 +0100)]
netifd: add support for suppressing the DHCP request hostname by setting it to *

dnsmasq (and probably other DHCP servers as well) does not like to hand out
leases with duplicate host names.
Adding support for skipping the hostname makes it easier to deploy setups
where it is not guaranteed to be unique

Signed-off-by: Felix Fietkau <>
22 months agomac80211: update and fix the patch to allow 4-byte aligned tx skbs
Felix Fietkau [Sun, 10 Mar 2019 20:34:09 +0000 (21:34 +0100)]
mac80211: update and fix the patch to allow 4-byte aligned tx skbs

Signed-off-by: Felix Fietkau <>
22 months agomac80211: allocate tailroom for forwarded mesh packets
Felix Fietkau [Sun, 10 Mar 2019 20:14:53 +0000 (21:14 +0100)]
mac80211: allocate tailroom for forwarded mesh packets

Fixes a warning + packet loss on encrypted mesh networks with forwarding

Signed-off-by: Felix Fietkau <>
22 months agoiproute2: tc: reduce size of dynamic symbol table
Tony Ambardar [Fri, 14 Dec 2018 07:49:32 +0000 (23:49 -0800)]
iproute2: tc: reduce size of dynamic symbol table

In the case of SHARED_LIBS=y, don't use -export-dynamic to place *all*
symbols into the dynamic symbol table. Instead, use --dynamic-list to
export a smaller set of symbols similar to that defined in static-syms.h
in the case of SHARED_LIBS=n, avoiding an 11 KB tc package size increase.
The symbol set is based on that required by the only plugin,

Also increment PKG_RELEASE.

Signed-off-by: Tony Ambardar <>
Signed-off-by: Hans Dedecker <> [PKG_RELEASE fixup]
22 months agoiproute2: tc: enable and fix support for using .so plugins
Tony Ambardar [Thu, 13 Dec 2018 19:48:55 +0000 (11:48 -0800)]
iproute2: tc: enable and fix support for using .so plugins

This enables using the tc module, which uses the act_ipt kernel
module to allow tc actions based on iptables targets. e.g.

   tc filter add dev eth0 parent 1: prio 10 protocol ip \
   u32 match u32 0 0 action xt -j DSCP --set-dscp-class BE

Make the SHARED_LIBS parameter configurable and based on tc package

Fix a problem using the tc plugin as also described in

  Sync include/xtables.h from iptables to make sure the right offset is
  used when accessing structure members defined in libxtables. One could
  get “Extension does not know id …” otherwise. (See also: #868059)

Patch to sync the included xtables.h with system iptables 1.6.x. This
continues to work with iptables 1.8.2.

Signed-off-by: Tony Ambardar <>
22 months agoiproute2: support eBFP/XDP object file loading, simplify linking libelf
Tony Ambardar [Sun, 16 Dec 2018 02:26:48 +0000 (18:26 -0800)]
iproute2: support eBFP/XDP object file loading, simplify linking libelf

Add build and runtime dependencies on libelf, allowing tc and ip-full
to load BPF and XDP object files respectively.

Define package 'tc' as a singleton package variant, which can be used to
enable additional functionality limited only to tc. Also set ip-tiny
as the default 'ip' variant.

Preserve optionality of libelf by having configuration script follow the
HAVE_ELF environment variable, used similarly to the HAVE_MNL variable.

Signed-off-by: Tony Ambardar <>
22 months agonetifd: update to latest git HEAD (FS#2087)
Hans Dedecker [Thu, 14 Mar 2019 12:48:50 +0000 (13:48 +0100)]
netifd: update to latest git HEAD (FS#2087)

81ac3bc interface-ip: fix delegate config update on reload (FS#2087)

Signed-off-by: Hans Dedecker <>
22 months agouboot-sunxi: add fix for A20-OLinuXino-Lime2-eMMC rev. K boards
Zoltan HERPAI [Wed, 13 Mar 2019 20:14:47 +0000 (21:14 +0100)]
uboot-sunxi: add fix for A20-OLinuXino-Lime2-eMMC rev. K boards

The OLinuXino Lime2 rev. K boards use new PHYs (Micrel KSZ9031),
so enable that.

Signed-off-by: Zoltan HERPAI <>
22 months agouboot-sunxi: bump to 2019.01
Zoltan HERPAI [Wed, 13 Mar 2019 19:54:31 +0000 (20:54 +0100)]
uboot-sunxi: bump to 2019.01

Tested on:
Bananapro (A20)
Banana Pi M3 (A83t)
Linksprite pcDuino3 (A20)
Olinuxino Lime (A10)
Orange Pi 2 (H3)
Pine64 (A64)

Patches refreshed.

Signed-off-by: Zoltan HERPAI <>
22 months agoath79: ag71xx: Remove ndo_poll_controller
Rosen Penev [Mon, 4 Mar 2019 06:21:19 +0000 (22:21 -0800)]
ath79: ag71xx: Remove ndo_poll_controller

It is unused by default and upstream is trying to remove it as it has
negative effects when the driver is under load. Upstream explanation:

netpoll: avoid capture effects for NAPI drivers
As diagnosed by Song Liu, ndo_poll_controller() can
be very dangerous on loaded hosts, since the cpu
calling ndo_poll_controller() might steal all NAPI
contexts (for all RX/TX queues of the NIC).

This capture, showing one ksoftirqd eating all cycles
can last for unlimited amount of time, since one
cpu is generally not able to drain all the queues under load.

It seems that all networking drivers that do use NAPI
for their TX completions, should not provide a ndo_poll_controller() :

Most NAPI drivers have netpoll support already handled
in core networking stack, since netpoll_poll_dev(
 uses poll_napi(dev) to iterate through registered
NAPI contexts for a device.

Signed-off-by: Rosen Penev <>
22 months agoar71xx: Speed up mtd extraction in
Adrian Schmutzler [Thu, 7 Mar 2019 08:40:09 +0000 (09:40 +0100)]
ar71xx: Speed up mtd extraction in

Although the amount of data read here is smaller than for the
caldata, there still might be some speed gain compared to reading
bytewise. And there is no harm ...

Signed-off-by: Adrian Schmutzler <>
22 months agoar71xx: Speed up caldata/eeprom handling
Adrian Schmutzler [Thu, 7 Mar 2019 08:40:08 +0000 (09:40 +0100)]
ar71xx: Speed up caldata/eeprom handling

Reading and writing to and from flash storage is slowed down
enormously by some functions which use a block size of 1.

This patch reworks the extraction scripts to be much faster and
efficient by reading and writing in possibly one big block.

This is based on the initial commit a69e101 for ipq40xx by
Christian Lamparter <>.

Speed comparison @ TP-Link TL-WDR4300 (just manually) results
in a time reduction by three orders of magnitude (99.9 %).

> time dd if=/dev/mtd3 of=/lib/firmware/test-slow bs=1 count=4096 skip=4096
4096+0 records in
4096+0 records out
real    0m 15.85s
user    0m 0.06s
sys     0m 13.28s

> time dd if=/dev/mtd3 of=/lib/firmware/test-fast bs=4096 count=1 skip=4096 iflag=skip_bytes
1+0 records in
1+0 records out
real    0m 0.02s
user    0m 0.00s
sys     0m 0.02s

Signed-off-by: Adrian Schmutzler <>
22 months agoath79: Speed up caldata/eeprom handling
Adrian Schmutzler [Thu, 7 Mar 2019 08:40:07 +0000 (09:40 +0100)]
ath79: Speed up caldata/eeprom handling

Reading and writing to and from flash storage is slowed down
enormously by some functions which use a block size of 1.

This patch reworks the extraction scripts to be much faster and
efficient by reading and writing in possibly one big block.

This is based on the initial commit a69e101 for ipq40xx by
Christian Lamparter <>.

Speed comparison @ UBNT AC-Mesh (just manually) results
in a time reduction by three orders of magnitude (99.9 %).

> time dd if=/dev/mtd6 of=/lib/firmware/test-slow bs=1 count=4096 skip=4096
4096+0 records in
4096+0 records out
real    0m 16.84s
user    0m 0.07s
sys     0m 13.54s

> time dd if=/dev/mtd6 of=/lib/firmware/test-fast bs=4096 count=1 skip=4096 iflag=skip_bytes
1+0 records in
1+0 records out
real    0m 0.02s
user    0m 0.00s
sys     0m 0.02s

Signed-off-by: Adrian Schmutzler <>
Tested-by: Rosen Penev <>
22 months agoapm821xx: usb: xhci: fix semicolon.cocci warnings
kbuild test robot [Thu, 7 Mar 2019 17:04:43 +0000 (18:04 +0100)]
apm821xx: usb: xhci: fix semicolon.cocci warnings

drivers/usb/host/xhci-pci.c:788:2-3: Unneeded semicolon

 Remove unneeded semicolon.

Generated by: scripts/coccinelle/misc/semicolon.cocci

Fixes: 9e0fd1b52ad1 ("apm821xx: add support for the Netgear Centria N900 WNDR4700/WNDR4720")
Signed-off-by: kbuild test robot <>
Signed-off-by: Christian Lamparter <> [changed subject]
22 months agogemini: Generate padded kernel+rootfs images for DIR-685
Linus Walleij [Mon, 11 Mar 2019 18:16:43 +0000 (19:16 +0100)]
gemini: Generate padded kernel+rootfs images for DIR-685

We currently generate a kernel that boots from the harddrive
in the DIR-685. That's not how we usually do things, so
let's augment it to boot from flash and mount the rootfs
using squashfs and JFFS2 like everyone else.

Partition splitting only work when the partitions are
inside of a "partitions" node which is why we have a patch
like this (submitted upstream).

Another patch drops the rootfs arguments and renames the
firmware partition while adding the compatible "wrg"
to it so the WRGG parser will kick in.

Factory image was tested by bravely reflashing the DIR-685
from stock firmware using the web UI and the serial console
boot loader.

Signed-off-by: Linus Walleij <>
22 months agokernel: mtdsplit: wrgg: Support big and little endian
Linus Walleij [Mon, 11 Mar 2019 18:16:42 +0000 (19:16 +0100)]
kernel: mtdsplit: wrgg: Support big and little endian

The WRGG images exist in both big and little endian variants,
as can be seen from the image generator in
tools/firmware-utils/src/mkwrggimg.c, you either pass
the "-b" flag or not. The D-Link DIR-685 is using little
endian images so we need to support splitting these.

Detect endianness like this: if the kernel entity size
gets silly big (bigger than the flash memory) we are
probably using the wrong endianness.

Example: my kernel of 0x0067ff64 was switched around by
wrong endianness and detected as 0x64ff67a0 (the actual
size in swapped endianness + header 0xa0).

Signed-off-by: Linus Walleij <>
Signed-off-by: Christian Lamparter <>
22 months agoath79: add suport for EnGenius EPG5000
Tomasz Maciej Nowak [Mon, 4 Mar 2019 14:18:53 +0000 (15:18 +0100)]
ath79: add suport for EnGenius EPG5000

EnGenius EPG5000 (v1.0.0, marketed as IoT Gateway) is a dual band
wireless router.

SoC: Qualcomm Atheros QCA9558
RAM: 256 MB DDR2
Flash: 16 MB SPI NOR
WIFI: 2.4 GHz 3T3R integrated
5 GHz 3T3R QCA9880 Mini PCIe card
Ethernet: 5x 10/100/1000 Mbps QCA8337N
USB: 1x 2.0
LEDS: 4x GPIO controlled
Buttons: 2x GPIO controlled
UART: 4 pin header, starting count from white triangle on PCB
1. VCC 3.3V, 2. GND, 3. TX, 4. RX
baud: 115200, parity: none, flow control: none

1. Connect to one of LAN (yellow) ethernet ports,
2. Open router configuration interface,
3. Go to Tools > Firmware,
4. Select 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.

Alternative installation
1. Prepare TFTP server with OpenWrt sysupgrade image,
2. Connect to one of LAN (yellow) ethernet ports,
3. Connect to UART port (leaving out VCC pin!),
4. Power on router,
5. When asked to enter a number 1 or 3 hit 2, this will select flashing
   image from TFTP server option,
6. You'll be prompted to enter TFTP server ip (default is,
   then router ip (default is and for last, image name
   downloaded from TFTP server (default is uImageESR1200_1750),
7. After providing all information U-Boot will start flashing the image,
   You can observe progress on console, it'll take few minutes and when
   the Power LED will stop blinking, router is ready for configuration.

Additional information
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: aigo3d0a0tdagr
useful for creating backup of original firmware.
When doing upgrade from OpenWrt ar71xx image, it is recomended to not keep
the old configuration.

Signed-off-by: Tomasz Maciej Nowak <>
22 months agoipq40xx: limit frequencies for Asus Lyra
Marius Genheimer [Mon, 11 Mar 2019 21:52:54 +0000 (22:52 +0100)]
ipq40xx: limit frequencies for Asus Lyra

The Asus Lyra has filters in the antenna paths which limits
the usable frequencies on both 5GHz radios.

Signed-off-by: Marius Genheimer <>
22 months agoipq40xx: add support for AVM FRITZ!Repeater 3000
David Bauer [Mon, 11 Mar 2019 17:05:32 +0000 (18:05 +0100)]
ipq40xx: add support for AVM FRITZ!Repeater 3000

CPU:   Qualcomm IPQ4019
RAM:   256M (NANYA NT5CC128M16JR-EK)
FLASH: 128M NAND (Macronix MX30LF1G18AC-XKI)
ETH:   Qualcomm QCA8072
WiFi2: IPQ4019 2T2R 2SS b/g/n
WiFi5: IPQ4019 2T2R 2SS n/ac
WiFi5: QCA9984 4T4R 4SS n/ac
LED:    - Connect green/blue/red
        - Power green
BTN:   WPS/Connect
UART:  115200n8 3.3V
       VCC - RX - TX - GND (Square is VCC)

1. Grab the uboot for the Device from the 'u-boot-fritz3000'
   subdirectory. Place it in the same directory as the ''
   script. It is located in the 'scripts/flashing' subdirectory of the
   OpenWRT tree.

2. Assign yourself the IP address Connect your
   Computer to one of the boxes LAN ports.

3. Connect Power to the Box. As soon as the LAN port of your computer
   shows link, load the U-Boot to the box using following command.

   > ./ --offset 0x85000000 uboot-fritz3000.bin

4. The U-Boot will now start. Now assign yourself the IP address Copy the OpenWRT initramfs (!) image to a TFTP
   server root directory and rename it to 'FRITZ3000.bin'.

5. The Box will now boot OpenWRT from RAM. This can take up to two

6. Copy the U-Boot and the OpenWRT sysupgrade (!) image to the Box using
   scp. SSH into the Box and first write the Bootloader to both previous
   kernel partitions.

   > mtd write /path/to/uboot-fritz3000.bin uboot0
   > mtd write /path/to/uboot-fritz3000.bin uboot1

7. Remove the AVM filesystem partitions to make room for our kernel +
   rootfs + overlayfs.

   > ubirmvol /dev/ubi0 --name=avm_filesys_0
   > ubirmvol /dev/ubi0 --name=avm_filesys_1

8. Flash OpenWRT peristently using sysupgrade.

   > sysupgrade -n /path/to/openwrt-sysupgrade.bin

Signed-off-by: David Bauer <>
22 months agofritz-tools: add support for IPQ40xx platform
David Bauer [Mon, 11 Mar 2019 17:05:31 +0000 (18:05 +0100)]
fritz-tools: add support for IPQ40xx platform

AVM devices based on Qualcomm IPQ40xx do not store sector health
information in the OOB area. Make this check optional to support this

Signed-off-by: David Bauer <>
22 months agouboot-fritz4040: bump version to 2019-03-03
David Bauer [Mon, 11 Mar 2019 17:05:30 +0000 (18:05 +0100)]
uboot-fritz4040: bump version to 2019-03-03

Adds support for the AVM FRITZ!Repeater 3000

Signed-off-by: David Bauer <>
22 months agoath79: Add GL.iNet AR-300M-Lite
Jeff Kletsky [Thu, 7 Mar 2019 04:44:33 +0000 (20:44 -0800)]
ath79: Add GL.iNet AR-300M-Lite

AR300M-Lite is single-Ethernet variant of the AR300M series
Its eth0 would otherwise be assigned to the WAN interface
making it unreachable firstboot or failsafe.

Installation instructions from OEM (OpenWrt variant):
* Install sysupgrade.bin using OEM's "Advanced" GUI (LuCI),
   * Do not preserve settings
   * Access rebooted device via Ethernet at OpenWrt default address

Add previously missing LED defaults for all three variants;
-nand, -nor, -lite to the definitions in 01_leds

Non-lite variants thanks to Andreas Ziegler

Runtime-tested:  GL.iNet AR300M-Lite

Signed-off-by: Jeff Kletsky <>
22 months agoramips: HC5861 drop unused gpio group define in dts
Chen Minqiang [Fri, 8 Mar 2019 00:37:56 +0000 (08:37 +0800)]
ramips: HC5861 drop unused gpio group define in dts

Signed-off-by: Chen Minqiang <>
22 months agoramips: add support for Xiaomi Mi Router 3 Pro
Ozgur Can Leonard [Tue, 5 Mar 2019 08:41:37 +0000 (11:41 +0300)]
ramips: add support for Xiaomi Mi Router 3 Pro


CPU:   MediaTek MT7621AT (2x880MHz)
RAM:   512MB DDR3
WiFi:  2.4GHz 4x4 MT7615 b/g/n (Needs driver, See Issues!)
WiFI:  5GHz 4x4 MT7615 a/n/ac  (Needs driver, See Issues!)
USB:   1x 3.0
ETH:   1x WAN 10/100/1000 3x LAN 10/100/1000
LED:   Power/Status
UART:  115200 8n1

Partition layout and boot:

Stock Xiaomi firmware has the MTD split into (among others)

- kernel0 (@0x200000)
- kernel1 (@0x600000)
- rootfs0
- rootfs1
- overlay (ubi)

Xiaomi uboot expects to find kernels at 0x200000 & 0x600000
referred to as system 1 & system 2 respectively.
a kernel is considered suitable for handing control over
if its linux magic number exists & uImage CRC are correct.
If either of those conditions fail, a matching sys'n'_fail flag
is set in uboot env & a restart performed in the hope that the
alternate kernel is okay.
If neither kernel checksums ok and both are marked failed, system 2
is booted anyway.

Note uboot's tftp flash install writes the transferred
image to both kernel partitions.


Similar to the Xiaomi MIR3G, we keep stock Xiaomi firmware in
kernel0 for ease of recovery, and install OpenWRT into kernel1 and

The installation file for OpenWRT is a *squashfs-factory.bin file that
contains the kernel and a ubi partition. This is flashed as follows:

nvram set flag_try_sys1_failed=1
nvram set flag_try_sys2_failed=0
nvram commit
dd if=factory.bin bs=1M count=4 | mtd write - kernel1
dd if=factory.bin bs=1M skip=4 | mtd write - rootfs0

Reverting to stock:

The part of stock firmware we've kept in kernel0 allows us to run stock
recovery, which will re-flash stock firmware from a *.bin file on a USB.

For this we do the following:

fw_setenv flag_try_sys1_failed 0
fw_setenv flag_try_sys2_failed 1

After reboot the LED status light will blink red, at which point pressing
the 'reset' button will cause stock firmware to be installed from USB.


OpenWRT currently does not have support for the MT7615 wifi chips. There is
ongoing work to add mt7615 support to the open source mt76 driver. Until that
support is in place, there are closed-source kernel modules that can be used.


Signed-off-by: Ozgur Can Leonard <>
Signed-off-by: Christian Lamparter <>
[02_network remaps, Added link to notes]

22 months agoath79: add support for LibreRouter v1
Santiago Piccinini [Sat, 9 Mar 2019 01:10:25 +0000 (22:10 -0300)]
ath79: add support for LibreRouter v1

SOC:   QCA9558
RAM:   128M DDR2
Flash: 16MiB SPI-NOR
ETH:   QCA8337N: 2x 10/100/1000 PoE and PoE pass-through
WiFi2: QCA9558 (bgn) 2T2R
WiFi5: 2x mPCIE with AR9582 (an) 2T2R
BTN:   1x Reset
GPIO:  multiple GPIO on header, PoE passthrough enable
UART:  3.3V 115200 8N1 header on the board
WDG:   ATTiny13 watchdog
JTAG:  header on the board
USB:   1x connector and 1x header on the board
PoE:   10-32V input in ETH port 1, passthrough in port 2
mPCIE: 2x populated with radios (but replaceable)

OpenWrt is preinstalled from factory. To install use <your-image>-sysupgade.bin
using the web interface or with sysupgrade -n.

Flash from bootloader (in case failsafe does not work)
1. Connect the LibreRouter with a serial adapter (TTL voltage) to the UART
   header in the board.
2. Connect an ETH cable and configure static ip addres
3. Turn on the device and stop the bootloader sending any key through the serial
4. Use a TFTP server to serve <your image>-sysupgrade.bin file.
5. Execute the following commands at the bootloader prompt:
    ath> tftp 82000000 <your image>-sysupgrade.bin
    ath> erase 0x9f050000 +$filesize
    ath> cp.b 0x82000000 0x9f050000 $filesize
    ath> bootm 0x9f050000

More docs
* Bootloader
* Board details (schematics, gerbers):

Signed-off-by: Santiago Piccinini <>
22 months agoipq40xx: fix FRITZBox 7530 NAND controller node
David Bauer [Fri, 8 Mar 2019 23:50:49 +0000 (00:50 +0100)]
ipq40xx: fix FRITZBox 7530 NAND controller node

This removes the 'cs-gpios' property from the AVM FRITZ!Box 7530 NAND
controller node. As pointed out by Christian Lamparter, the property is
not needed by the Qualcomm NAND controller driver.

Signed-off-by: David Bauer <>
22 months agoipq40xx: fix phy interrupt setting
Christian Lamparter [Sat, 9 Mar 2019 18:05:17 +0000 (19:05 +0100)]
ipq40xx: fix phy interrupt setting

This patch fixes a problem that was discovered during DSA
development. On the MR33, the link change events from the
external AR8035-PHY would never make it to the qca8k driver.

The issue turned out to be a misplaced memcpy that was copying
over the zero-initialized irq table, when it should have been
set to PHY_POLL. Hence this patch moves the memcpy after the
array has been initialized.

Signed-off-by: Christian Lamparter <>
22 months agoipq40xx: tidy up 02_networks
Christian Lamparter [Sat, 9 Mar 2019 17:08:55 +0000 (18:08 +0100)]
ipq40xx: tidy up 02_networks

 - fix linksys' EA6350v3 order

 - remove whitespace that should have been tabs

Signed-off-by: Christian Lamparter <>
22 months agoopenssl: disable digests by default, misc fixes
Eneas U de Queiroz [Tue, 12 Mar 2019 13:16:01 +0000 (13:16 +0000)]
openssl: disable digests by default, misc fixes

Openssh uses digest contexts across forks, which is not supported by the
/dev/crypto engine.  The speed of digests is usually not worth enabling
them anyway.  This changes the default of the DIGESTS option to NONE, so
the user still has the option to enable them.

Added another patch related to the use of encryption contexts across
forks, that ignores a failure to close a previous open session when
reinitializing a context, instead of failing the reinitialization.

Added a link to the Cryptographic Hardware Accelerators document to the
engine pacakges description, to provide more detailed instructions to
configure the engines.

Revert the removal of the OPENSSL_ENGINE_CRYPTO symbol, currently used
by openssh.  There is an open PR to update openssh; when merged, this
symbol can be safely removed.

Signed-off-by: Eneas U de Queiroz <>
Signed-off-by: Hans Dedecker <> [refresh patches]
22 months agooxnas: install wireless driver on pogoplugpro
Daniel Golle [Tue, 12 Mar 2019 13:18:42 +0000 (14:18 +0100)]
oxnas: install wireless driver on pogoplugpro

PogoPlug Pro comes with AzureWave AW-NE762H PCIe module containing
Ralink's Rt3090 chip supported by the rt2x00 driver.
Install the driver as well as wpad-basic.

Signed-off-by: Daniel Golle <>
22 months agomac80211: rt2x00: import and update pending patches
Daniel Golle [Tue, 12 Mar 2019 10:44:27 +0000 (11:44 +0100)]
mac80211: rt2x00: import and update pending patches

Imported from patchwork, patches marked with '=' have already been in
our tree:
 [v3,1/4] cfg80211: add ratelimited variants of err and warn
 [v3,2/4] rt2x00: use ratelimited variants dev_warn/dev_err
 [v3,3/4] rt2x00: check number of EPROTO errors
=[v3,4/4] rt2x00: do not print error when queue is full

Signed-off-by: Daniel Golle <>
22 months agooxnas: also akitio,mycloud uses PCIe apparently
Daniel Golle [Tue, 12 Mar 2019 00:06:33 +0000 (01:06 +0100)]
oxnas: also akitio,mycloud uses PCIe apparently

Signed-off-by: Daniel Golle <>
22 months agooxnas: enable pcie_phy on boards utilizing PCIe
Daniel Golle [Mon, 11 Mar 2019 23:35:16 +0000 (00:35 +0100)]
oxnas: enable pcie_phy on boards utilizing PCIe

Signed-off-by: Daniel Golle <>
22 months agoprocd: Enable seccomp for powerpc
Wojciech Dubowik [Fri, 8 Mar 2019 08:36:13 +0000 (09:36 +0100)]
procd: Enable seccomp for powerpc

Signed-off-by: Wojciech Dubowik <>
22 months agoath79: add support for TP-Link RE350K v1
Piotr Dymacz [Mon, 11 Mar 2019 17:50:42 +0000 (18:50 +0100)]
ath79: add support for TP-Link RE350K v1

TP-Link RE350K v1 (FCC ID: TE7RE350K) is a wall-plug AC1200 Wi-Fi range
extender with 'Kasa Smart' support. Device is based on Qualcomm/Atheros
QCA9558 + QCA9882 + AR8035 platform and is available only on US market.


- 720/600/200 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 1x 1 Gbps Ethernet (AR8035)
- 2T2R 2.4 GHz (QCA9558), with ext. PA (SE2565T) and LNA (SKY65971-11)
- 2T2R 5 GHz (QCA9882), with ext. PA (SE5003L1-R) and LNA (SKY65981-11)
- 2x U.FL connector on PCB
- 2x dual-band PCB antennas
- 1x LED, 2x dual-color LED (all driven by GPIO)
- 3x button (app config, led, reset)
- 1x mechanical on/off slide switch
- 1x UART (4-pin, 2.54 mm pitch) header on PCB
- 1x JTAG (8-pin, 1.27 mm pitch) header on PCB

Flash instruction:
Use 'factory' image directly in vendor GUI (default IP:,
default credentials: admin/admin).

This device does not include any kind of recovery mechanism in U-Boot.

Vendor firmware access:
You can access vendor firmware over serial (RX line requires jumper
resistor in R306 place, near XTAL) with: root/sohoadmin credentials.

Signed-off-by: Piotr Dymacz <>
22 months agouboot-envtools: ramips: add support for ALFA Network Tube-E4G
Piotr Dymacz [Sun, 10 Mar 2019 00:28:33 +0000 (01:28 +0100)]
uboot-envtools: ramips: add support for ALFA Network Tube-E4G

Signed-off-by: Piotr Dymacz <>
22 months agoramips: add support for ALFA Network Tube-E4G
Piotr Dymacz [Sun, 10 Mar 2019 00:28:28 +0000 (01:28 +0100)]
ramips: add support for ALFA Network Tube-E4G

ALFA Network Tube-E4G is an outdoor, dual-SIM LTE Cat. 4 CPE, based on
MediaTek MT7620A, equipped with Quectel EC25 miniPCIe modem.


- MT7620A (580 MHz)
- 64/128/256 MB of RAM (DDR2)
- 16/32 MB of flash (SPI NOR)
- 1x 10/100 Mbps Ethernet, with passive PoE support (24 V)
- 1x miniPCIe slot (with PCIe and USB 2.0 buses)
- 2x SIM slot (mini, micro) with detect and switch driven by GPIO
- 1x detachable antenna (modem main)
- 1x internal antenna (modem div)
- 1x GPS passive antenna (optional)
- 5x LED (all driven by GPIO)
- 1x button (reset)
- UART (4-pin, 2.54 mm pitch) header on PCB


Default SIM slot is selected at an early stage by U-Boot, based on
'default_sim' environment value: 1 or unset = SIM1 (mini), 2 = SIM2
(micro). U-Boot also resets the modem, using #PERST signal, before
starting kernel.

Flash instruction:

You can use the 'sysupgrade' image directly in vendor firmware which is
based on OpenWrt (make sure to not preserve settings - use 'sysupgrade
-n -F ...' command). Alternatively, use web recovery mode in U-Boot:

1. Power the device with reset button pressed, the LAN LED will start
   blinking slowly and after ~3 seconds, when it starts blinking faster,
   you can release the button.
2. Setup static IP on your PC.
3. Go to in browser and upload 'sysupgrade' image.

Signed-off-by: Piotr Dymacz <>
22 months agomxs: disable unused serial drivers
Michael Heimpold [Sat, 9 Mar 2019 08:44:35 +0000 (09:44 +0100)]
mxs: disable unused serial drivers

This disables PL010 and 8250 serial support for this platform
as both drivers are not used: the debug UART is PL011 and the
application UARTs use a dedicated MXS specific driver.

The kernel size reduction is neglectable, but it also removes
the non-working (confusing) /dev/ttyS0 and /dev/ttyS1 devices
in a running system (which generate errors when trying to use):

  root@OpenWrt:~# echo "hello world" > /dev/ttyS0
  ash: write error: I/O error

Signed-off-by: Michael Heimpold <>
22 months agobusybox: add missing install dir
Hans Dedecker [Fri, 1 Mar 2019 17:59:31 +0000 (18:59 +0100)]
busybox: add missing install dir

Add missing /usr/sbin install dir fixing :

install: cannot create regular file 'build_dir/target-x86_64_musl/busybox-1.30.1/.pkgdir/busybox/usr/sbin/ntpd-hotplug': No such file or directory

Signed-off-by: Hans Dedecker <>
22 months agooxnas: fix oxnas-rps-timer dt-match
Daniel Golle [Mon, 11 Mar 2019 14:01:37 +0000 (15:01 +0100)]
oxnas: fix oxnas-rps-timer dt-match

Signed-off-by: Daniel Golle <>
22 months agooxnas: replace oxnas-restart with version to be submitted to upstream
Daniel Golle [Mon, 11 Mar 2019 12:39:33 +0000 (13:39 +0100)]
oxnas: replace oxnas-restart with version to be submitted to upstream

Signed-off-by: Daniel Golle <>
22 months agoIB: include SUPPORTED_DEVICES in 'make info' output
Daniel Golle [Mon, 11 Mar 2019 04:32:29 +0000 (05:32 +0100)]
IB: include SUPPORTED_DEVICES in 'make info' output

Signed-off-by: Daniel Golle <>
22 months agooxnas: use generic filenames for image and DTS
Daniel Golle [Mon, 11 Mar 2019 02:40:44 +0000 (03:40 +0100)]
oxnas: use generic filenames for image and DTS

Signed-off-by: Daniel Golle <>
22 months agooxnas: move PCIe controller outside of simple-bus
Daniel Golle [Sun, 10 Mar 2019 22:04:28 +0000 (23:04 +0100)]
oxnas: move PCIe controller outside of simple-bus

Move PCIe controller outside down to SoC level to avoid resource
mapping problems.
Also add more detailed error handling when mapping registers.

Signed-off-by: Daniel Golle <>
22 months agotools: tar: update to version 1.32
Daniel Golle [Sun, 10 Mar 2019 20:34:28 +0000 (21:34 +0100)]
tools: tar: update to version 1.32

Signed-off-by: Daniel Golle <>
22 months agonghttp2: bump to 1.37.0
Hans Dedecker [Sun, 10 Mar 2019 18:31:42 +0000 (19:31 +0100)]
nghttp2: bump to 1.37.0

cfb47d30 Take into account larger frame size for prioritization
dbbe4e01 Remove unused field
371bc3a8 clang-format
5e7889c5 Update manual pages
b1b2ad50 Bump up version number to 1.37.0, LT revision to 31:2:17
e043ca83 Update AUTHORS
c2434dfb Simplify stream_less
816ad210 Reuse name when indexing header by referencing dynamic table
f5feb16e Merge pull request #1295 from bratkartoffel/fix-compile-boringssl
adf09f21 Merge pull request #1303 from donny-dont/fix-shared-install
2591960e Explicitly set install location when building shared libs
d93842db nghttpx: Fix backend stall if header and request body are sent in 2 packets
8dc2b263 nghttpx: Use std::priority_queue
8d842701 Update manual pages
de85b0fd Update README
5d6beed5 Merge branch 'nghttpx-backend-weight'
1ff9de4c nghttpx: Backend address selection with weight
34482ed4 Fix compilation with boringssl
9b6ced66 Bump up version number to 1.37.0-DEV

Signed-off-by: Hans Dedecker <>
22 months agolantiq: Refresh kernel 4.14 configuration
Hauke Mehrtens [Sun, 13 Jan 2019 16:52:54 +0000 (17:52 +0100)]
lantiq: Refresh kernel 4.14 configuration

This adds two configuration options which are getting automatically

Signed-off-by: Hauke Mehrtens <>
22 months agolinux-atm: Fix compile problem with kernel 4.20
Hauke Mehrtens [Sun, 10 Mar 2019 18:02:56 +0000 (19:02 +0100)]
linux-atm: Fix compile problem with kernel 4.20

This fixes the following compile problem with kernel 4.20:

In file included from arp.c:20:0:
include/linux/if_arp.h:121:16: error: 'IFNAMSIZ' undeclared here (not in a function)
  char  arp_dev[IFNAMSIZ];
make[7]: *** [Makefile:459: arp.o] Error 1

This is caused by commit 6a12709da354 ("net: if_arp: use define instead
of hard-coded value") in the upstream Linux kernel which is integrated
in Linux 4.20.

Signed-off-by: Hauke Mehrtens <>
22 months agooxnas: fix PCIe register ranges in device-tree
Daniel Golle [Sun, 10 Mar 2019 16:53:34 +0000 (17:53 +0100)]
oxnas: fix PCIe register ranges in device-tree

They should be relative to apb-bridge@47000000 rather than to the
pcie-controller@c00000 inside it.

Signed-off-by: Daniel Golle <>
22 months agolayerscape: use wrapped nand_do_upgrade for traverse-ls1043 boards
Mathew McBride [Mon, 4 Mar 2019 05:05:27 +0000 (16:05 +1100)]
layerscape: use wrapped nand_do_upgrade for traverse-ls1043 boards

Traverse LS1043 boards are set up with a dual-system layout, rootfs{1,2} and kernel{1,2}.
nand_do_upgrade can do the image replacement work we were doing before as long as we give it the partition names.
This greatly simplifies the /lib/upgrade/

Signed-off-by: Mathew McBride <>
22 months agolayerscape: rename Traverse boards along SoC lines
Mathew McBride [Tue, 26 Feb 2019 06:47:42 +0000 (17:47 +1100)]
layerscape: rename Traverse boards along SoC lines

Upcoming product specification and branding changes mean that the names in tree do not accurately reflect released products.
To reduce any confusion, sort our boards by SoC family, e.g traverse-ls1043. Any future boards using Layerscape family SoC's
will be treated the same way, e.g Device/traverse-ls/lx/laXXXX.
The affected boards so far have only been available through OEM channels and those aren't using the provided sysupgrade.

Signed-off-by: Mathew McBride <>
22 months agowolfssl: fix build in busybox environments
Moritz Warning [Tue, 5 Mar 2019 21:22:41 +0000 (22:22 +0100)]
wolfssl: fix build in busybox environments

The configure script broke when used in alpine-3.9 based docker containers. Fixed in wolfSSL >3.15.7.

Signed-off-by: Moritz Warning <>
22 months agocmake: match warnings more strictly in C++ feature checks
Moritz Warning [Wed, 6 Mar 2019 21:26:50 +0000 (22:26 +0100)]
cmake: match warnings more strictly in C++ feature checks

Require the word "warning" to appear at the start of a line, after
whitespace, or after a `:`.  This is the same that CTest launchers use
to match warnings.  It avoids matching "warning" inside file paths.
Fixed in cmake 3.14.0.

Signed-off-by: Moritz Warning <>
22 months agoltq-atm/ltq-ptm: re-enable/fix reset_ppe() functionality for VR9
Martin Schiller [Wed, 5 Dec 2018 07:51:13 +0000 (08:51 +0100)]
ltq-atm/ltq-ptm: re-enable/fix reset_ppe() functionality for VR9

This patch re-enables the reset_ppe() functionality for VR9 targets by using
the new lantiq rcu subsystem. The reset sequence in the reset_ppe() function
was taken from the ppa datapath driver of lantiq UGW 7.4.1.

Additionally it adds the required reset definitions to the vr9 dtsi file.

It also prepares the reset_ppe() function calls for the other lantiq targets.

This feature is needed to be able to switch between ltq-atm/ltq-ptm driver
in ATM/PTM Auto-Mode at runtime.

Signed-off-by: Martin Schiller <>
22 months agolantiq: add support for AVM FRITZ!Box 7362 SL
Danijel Tudek [Tue, 12 Feb 2019 17:11:09 +0000 (18:11 +0100)]
lantiq: add support for AVM FRITZ!Box 7362 SL

- SoC: Lantiq VRX288
- RAM: Winbond W971GG6JB 1 Gb (128 MiB)
- Flash:
  - SPI: 8 Mb (1 MiB) for bootloader and tffs
  - NAND: 1 Gb (128 MiB) for OS
- xDSL: Lantiq VRX208
- WLAN: Atheros AR9381
- DECT: Dialog Semiconductors SC14441

Everything except FXS/DECT works
(no drivers for AVM's FXS implementation with SC14441).

Installation via FTP:
1. Use scripts/flashing/ to send initramfs-kernel.bin
to the device when powering on.
Standard AVM procedures with finding the correct IP address and
the right moment to open FTP apply here (approx. 4 seconds on 7362SL).
IMPORTANT: set lzma compression in ramdisk options, bootloader stalls
when receiving uncompressed images.

2. Transfer sysupgrade.bin image with scp to /tmp directory
and run sysupgrade

3. First boot might take a bit longer if linux_fs_start was set to 1,
in that case the device will reboot twice, first time it will fail to load
second kernel (overwritten by ubifs), set linux_fs_start to 0 and reboot.

OpenWrt uses the entire NAND flash. Kernel uses 4 MiB and rootfs uses
the rest of 124 MiB, overwriting everything related to FRITZ!OS - both
OS images, config and answering machine/media server data.
To return to FRITZ!OS, use AVM's recovery image.

Signed-off-by: Danijel Tudek <>
22 months agolantiq: move common FRITZ736X bits into dtsi
Danijel Tudek [Tue, 12 Feb 2019 17:10:32 +0000 (18:10 +0100)]
lantiq: move common FRITZ736X bits into dtsi

Move common FRITZ736X bits into dtsi file
as a preparation for FRITZ7362SL support.

Signed-off-by: Danijel Tudek <>
22 months agolantiq: add support for AVM FRITZ!Box 7412
Andy Binder [Thu, 24 Jan 2019 17:00:25 +0000 (18:00 +0100)]
lantiq: add support for AVM FRITZ!Box 7412


SoC: Lantiq VRX 220
CPU Cores: 2x MIPS 34Kc at 500 MHz
RAM: 128 MiB 250 MHz
Storage: 128 MiB NAND flash
Ethernet: built-in Fast Ethernet switch, only port 2 is used
Wireless: Atheros AR9287-BL1A b/g/n with 2 pcb antennas
Modem: built-in A/VDSL2 modem
DECT: Dialog SC14441
LEDs: 1 two-color, 4 one-color
Buttons: 2
FXS: 1 port via TAE or RJ12 connector
Everything except FXS/DECT works
(no drivers for AVM's FXS implementation with SC14441).


Use the script to load an initramfs image on the
device. Run it a few seconds after turning the device on.
$ scripts/flashing eva_ramboot bin/targets/lantiq/xrx200/openwrt-lantiq-xrx200-avm_fritz7412-initramfs-kernel.bin
If it fails to find the device try the ip address
(Firmware updates or the recovery tool apparently change it.)

IMPORTANT: set lzma compression in ramdisk options, bootloader stalls
when receiving uncompressed images.

The device will load it in ram and boot it. You can reach it under
the openwrt default ip address

Check if the key linux_fs_start is not set to 1 in tffs:
$ fritz_tffs_nand -d /dev/mtd1 -n linux_fs_start
If it is set to 1, the bootloader will select the wrong set of
partitions. Restart the box and install an FritzOS upgrade or do a
recovery. Afterwards start again at step 1.

Run sysupgrade to persistently install OpenWRT.

Signed-off-by: Valentin Spreckels <>
Signed-off-by: Andy Binder <>
22 months agofritz-tools: add fritz_tffs_nand_read tool
Andy Binder [Thu, 24 Jan 2019 16:53:13 +0000 (17:53 +0100)]
fritz-tools: add fritz_tffs_nand_read tool

A tool for reading the TFFS partitions (a name-value storage usually
found in AVM Fritz!Box based devices) on nand flash.

Copyright (c) 2018 Valentin Spreckels <Valentin.Spreckels@Informatik.Uni-Oldenburg.DE>

Based on the fritz_tffs_read tool:
    Copyright (c) 2015-2016 Martin Blumenstingl <>
and on the TFFS 2.0 kernel driver from AVM:
    Copyright (c) 2004-2007 AVM GmbH <>
and the TFFS 3.0 kernel driver from AVM:
    Copyright (C) 2004-2014 AVM GmbH <>
and the OpenWrt TFFS kernel driver:
    Copyright (c) 2013 John Crispin <>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Signed-off-by: Valentin Spreckels <>
Signed-off-by: Andy Binder <>
22 months agosunxi: add support for Orange Pi PC Plus
Aleksander Jan Bajkowski [Fri, 1 Mar 2019 19:30:47 +0000 (20:30 +0100)]
sunxi: add support for Orange Pi PC Plus

CPU: H3 Quad-core Cortex-A7 H.265/HEVC 4K @ 1.2 Ghz
GPU: Mali400MP2 GPU @ 600MHz (supports OpenGL ES 2.0)
Memory: 1GB DDR3 (shared with GPU)
Onboard: Storage TF card (Max. 64GB) / MMC card slot
Onboard: Storage 8 GB eMMC
Onboard: Network 10/100M Ethernet RJ45
Onboard: Network WiFi 802.11 b/g/n (Realtek RTL8189FTV)
Onboard header: SPI, I2C, GPIO, UART
USB 2.0: Three USB 2.0 HOST, One USB 2.0 OTG

Known issues:
-Wifi diesn't work

Signed-off-by: Aleksander Jan Bajkowski <>
22 months agoopenssl: backport devcrypto changes from master
Eneas U de Queiroz [Wed, 27 Feb 2019 21:39:18 +0000 (21:39 +0000)]
openssl: backport devcrypto changes from master

The patches to the /dev/crypto engine were commited to openssl master,
and will be in the next major version (3.0).

- Optimization in computing a digest in one operation, saving an ioctl
- Runtime configuration options for the choice of algorithms to use
- Command to dump useful information about the algorithms supported by
  the engine and the system.
- Build the devcrypto engine as a dynamic module, like other engines.

The devcrypto engine is built as a separate package by default, but
options were added to allow building the engines into the main library.

Signed-off-by: Eneas U de Queiroz <>
[refresh patches]
Signed-off-by: Hauke Mehrtens <>
22 months ago6to4: update OpenWrt documentation URL
Vieno Hakkerinen [Sun, 3 Mar 2019 11:19:00 +0000 (11:19 +0000)]
6to4: update OpenWrt documentation URL

Signed-off-by: Vieno Hakkerinen <>
22 months agouboot-envtools: ath79: add support for YunCore A770
Piotr Dymacz [Sat, 9 Mar 2019 15:31:22 +0000 (16:31 +0100)]
uboot-envtools: ath79: add support for YunCore A770

Signed-off-by: Piotr Dymacz <>
22 months agoath79: add support for YunCore A770
Piotr Dymacz [Sat, 9 Mar 2019 15:31:17 +0000 (16:31 +0100)]
ath79: add support for YunCore A770

YunCore A770 is a ceiling AC750 AP with 2 Fast Ethernet ports, PoE
(802.3at) support, based on QCA9531 + QCA9887.


- 650/597/216 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x 10/100 Mbps Ethernet (PoE 802.3at support in WAN port)
- 2T2R 2.4 GHz (QCA9531), with ext. PA and LNA
- 1T1R 5 GHz (QCA9887), with ext. FEM (SKY85728-11)
- 2x regular LED, 1x RGB LED (all driven by GPIO)
- 1x button (reset)
- DC jack for main power input (12 V)
- UART header on PCB

Flash instruction:

1. First, gain root access to the device, following below steps:

- Login into web gui (default password/IP: admin/
- Go to 'Advanced' -> 'Management' -> 'System' and download backup of
  configuration (bakfile.bin).
- Open the file as tar.gz archive, edit/update 'shadow' file and change
  hash of root password to something known.
- Repack the archive, rename it back to 'bakfile.bin' and use to
  restore configuration of the device.
- After that, device will reboot and can be accessed over SSH.

2. Then, install OpenWrt:

- Login over SSH and issue command:
  fw_setenv bootcmd "bootm 0x9f050000 || bootm 0x9fe80000"
- Upload 'sysupgrade' image and install it (only if previous command
  succeeded) with command: 'sysupgrade -n -F openwrt-...'.

Signed-off-by: Piotr Dymacz <>
22 months agoipq40xx: backport I2C QUP driver changes from 4.17
Piotr Dymacz [Sun, 3 Mar 2019 19:23:31 +0000 (20:23 +0100)]
ipq40xx: backport I2C QUP driver changes from 4.17

Backport below changes for I2C QUP driver from v4.17:

  0668bc44a426 i2c: qup: fix copyrights and update to SPDX identifier
  7239872fb340 i2c: qup: fixed releasing dma without flush operation completion
  eb422b539c1f i2c: qup: minor code reorganization for use_dma
  6d5f37f166bb i2c: qup: remove redundant variables for BAM SG count
  c5adc0fa63a9 i2c: qup: schedule EOT and FLUSH tags at the end of transfer
  7e6c35fe602d i2c: qup: fix the transfer length for BAM RX EOT FLUSH tags
  3f450d3eea14 i2c: qup: proper error handling for i2c error in BAM mode
  08f15963bc75 i2c: qup: use the complete transfer length to choose DMA mode
  ecb6e1e5f435 i2c: qup: change completion timeout according to transfer length
  6f2f0f6465ac i2c: qup: fix buffer overflow for multiple msg of maximum xfer len
  f7714b4e451b i2c: qup: send NACK for last read sub transfers
  fbfab1ab0658 i2c: qup: reorganization of driver code to remove polling for qup v1
  7545c7dba169 i2c: qup: reorganization of driver code to remove polling for qup v2

This fixes various I2C issues observed on AP120C-AC board equipped with
Atmel/Microchip AT97SC3205T TPM module.

Tested-by: Christian Lamparter <>
Signed-off-by: Piotr Dymacz <>
22 months agoipq40xx: add ath10k-calibration-variant in AP120C-AC DTS
Piotr Dymacz [Sat, 2 Mar 2019 13:42:55 +0000 (14:42 +0100)]
ipq40xx: add ath10k-calibration-variant in AP120C-AC DTS

Use 'ath10k-calibration-variant' (with the value sent upstream) for the
second (5 GHz) radio in AP120C-AC board DTS. First radio uses the same
BDF as in one of Qualcomm reference designs.

Signed-off-by: Piotr Dymacz <>
22 months agoipq-wifi: update ALFA Network AP120C-AC board-2.bin
Piotr Dymacz [Sat, 2 Mar 2019 13:26:11 +0000 (14:26 +0100)]
ipq-wifi: update ALFA Network AP120C-AC board-2.bin

Add specific 'variant' for 'bus=ahb,bmi-chip-id=0,bmi-board-id=25' BDF.
Use the same value ('ALFA-Network-AP120C-AC') as sent upstream.

Signed-off-by: Piotr Dymacz <>
22 months agoib: show current revision based on $(REVISION)
Paul Spooren [Fri, 8 Mar 2019 00:09:23 +0000 (01:09 +0100)]
ib: show current revision based on $(REVISION)

This is useful in for the attendedsyupsgrade server (asu) to
distinguish between snapshot version. Currently asu can't tell devices
requesting a snapshot build if the same build is already installed.

Signed-off-by: Paul Spooren <>
22 months agoib: show unified target based on $(TARGETID)
Paul Spooren [Fri, 8 Mar 2019 00:06:26 +0000 (01:06 +0100)]
ib: show unified target based on $(TARGETID)

Instead of showing a slightly more readable target like
"ar71xx (Generic)" print the more generic format "ar71xx/genric"

Signed-off-by: Paul Spooren <>
22 months agoucert: add PROVIDES also for minimal 'ucert' package
Daniel Golle [Thu, 7 Mar 2019 10:46:51 +0000 (11:46 +0100)]
ucert: add PROVIDES also for minimal 'ucert' package

Otherwise ucert-full gets selected instead of ucert when depending on

Signed-off-by: Daniel Golle <>
22 months agomt76: update to the latest version
Felix Fietkau [Thu, 7 Mar 2019 18:22:24 +0000 (19:22 +0100)]
mt76: update to the latest version

1d7760d mt76: mt7603: set moredata flag when queueing ps-filtered packets
0b927b2 mt76: fix return value check in mt76_wmac_probe()
e72376d mt76x02: fix hdr pointer in write txwi for USB

Signed-off-by: Felix Fietkau <>