4 years agoath79: add support for Ubiquiti UniFi AC-Pro
Lucian Cristian [Tue, 26 Jun 2018 07:30:46 +0000 (10:30 +0300)]
ath79: add support for Ubiquiti UniFi AC-Pro

rework the dts to a common unifi-ac dtsi
pro network is connected via phy0 and has usb ports
lite network is connected via phy4 without usb ports

Signed-off-by: Lucian Cristian <>
4 years agoath79: sync naming of Ubiquiti devices
Adrian Schmutzler [Wed, 27 Jun 2018 10:10:33 +0000 (12:10 +0200)]
ath79: sync naming of Ubiquiti devices

Use a Unifi AC Lite board-/image name consistent with other Ubiquiti

Signed-off-by: Adrian Schmutzler <>
4 years agoath79: Remove all memory nodes defined in dts
Chuanhong Guo [Fri, 22 Jun 2018 08:22:34 +0000 (16:22 +0800)]
ath79: Remove all memory nodes defined in dts

This target can automatically detect the correct memory size and we've
been using it for long in ar71xx.

Signed-off-by: Chuanhong Guo <>
4 years agotreewide: gpio-export: add error handling
Mathias Kresin [Thu, 28 Jun 2018 16:23:37 +0000 (18:23 +0200)]
treewide: gpio-export: add error handling

Check if the GPIO is valid (or set at all). If no GPIO is set in the
devicetree, a gpiolib related kernel warning + stacktrace is shown during
boot and gpio-export reports GPIOs as exported albeit none really is.

Signed-off-by: Mathias Kresin <>
4 years agoipq806x: drop gpio export patch
Mathias Kresin [Thu, 28 Jun 2018 16:10:50 +0000 (18:10 +0200)]
ipq806x: drop gpio export patch

The hack isn't used by any board.

Signed-off-by: Mathias Kresin <>
4 years agoipq806x: switch the NBG6817 wlan LEDs from amber to white
Stefan Lippers-Hollmann [Thu, 28 Jun 2018 12:04:46 +0000 (14:04 +0200)]
ipq806x: switch the NBG6817 wlan LEDs from amber to white

The original device support patch configured the amber wlan LEDs (which
are meant as error indicator by the OEM) controlled by the SOC's GPIO
as wlan traffic indicators, as the correct white wlan LEDs are
connected to GPIOs controlled by the QCA9984/ ath10k wlan cards were
not accessible. The recent addition of GPIO/ LED support to ath10k now
makes it possible to use the correct white LEDs instead - and
"mac80211: ath10k: use tpt LED trigger by default" also enables them by
default. While both LEDs are independent of each other (two separate
LEDs sharing one light tunnel), triggering both on wlan traffic is not
the intended behaviour (bright yellow light).

Tested on the ZyXEL NBG6817.

Signed-off-by: Stefan Lippers-Hollmann <>
4 years agoramips: move mt7620n i2c_pins definition to right place
Andrey Jr. Melnikov [Wed, 27 Jun 2018 17:32:23 +0000 (20:32 +0300)]
ramips: move mt7620n i2c_pins definition to right place

Move to i2c pins pinmux node to the pinctrl node.

Fixes: a0685deec458 ("ramips: Add i2c support for mt7620n")
Signed-off-by: Andrey Jr. Melnikov <>
[fix commit message]
Signed-off-by: Mathias Kresin <>
4 years agoqos-scripts: fix uci callback handling
Tony Ambardar [Fri, 8 Jun 2018 11:34:00 +0000 (04:34 -0700)]
qos-scripts: fix uci callback handling

The previous callback code was fragile, dependent on some UCI callback
bugs and side-effects now fixed in master commit 73d8a6ab.

Update scripts to use callbacks where appropriate and necessary, while
using normal UCI config parsing for all else. This results in smaller,
simpler, more robust code. Use callbacks in to only process
'interface' defaults and the varying entries for 'reclassify', 'default'
and 'classify' sections. Also switch qos-stat to use non-callback UCI

The current changes work independently of 73d8a6ab (i.e. both before and
after), and are consistent with UCI config parsing documentation.

Signed-off-by: Tony Ambardar <>
4 years agoipq806x: remove "firmware" partition definition from netgear routers
Hannu Nyman [Wed, 27 Jun 2018 18:52:45 +0000 (21:52 +0300)]
ipq806x: remove "firmware" partition definition from netgear routers

Remove the "firmware" partition definition from the DTS of R7800
to fix sysupgrade.

Commit 4645a6d3 defined CONFIG_MTD_SPLIT_UIMAGE_FW=y for ipq806x
and that causes mtd to misbehave as additional kernel and ubi
partitions are detected from inside the "firmware" partition.
  [    1.111324] 0x000001480000-0x000001880000 : "kernel"
  [    1.121005] 0x000001880000-0x000007900000 : "ubi"
  [    1.283912] 0x000007900000-0x000008000000 : "reserve"
  [    1.296407] 0x000001480000-0x000007900000 : "firmware"
  [    1.468043] no rootfs found after FIT image in "firmware"
  [    2.426860] 2 uimage-fw partitions found on MTD device firmware
  [    2.426931] 0x000001480000-0x000001880000 : "kernel"
  [    2.440420] 0x000001880000-0x000007900000 : "ubi"

Both kernel and ubi are already defined in DTS, so this duplication
leads into errors in sysupgrade:
  Writing from <stdin> to kernel ...
  ubiattach: error!: strtoul: unable to parse the number '6 mtd10'
  ubiattach: error!: bad MTD device number: "6 mtd10"

The partition is defined to same area as kernel+ubi, and is not
needed for sysupgrade anymore. Remove it to fix things.

Only tested for the R7800 but all of them should behave equal.

Fixes: FS#1617
Signed-off-by: Hannu Nyman <>
[squashed commits, add "tested on" note]
Signed-off-by: Mathias Kresin <>
4 years agobuild: include package directory in sha256sums when running on buildbot
Jo-Philipp Wich [Wed, 27 Jun 2018 16:51:25 +0000 (18:51 +0200)]
build: include package directory in sha256sums when running on buildbot

In order to be able to better compare files to sync in the future, include
all BIN_DIR subdirectories in the checksum calculation.

To not break existing applications, restrict the recursive checksumming to

Signed-off-by: Jo-Philipp Wich <>
4 years agoscripts/ use a more terse api for fetching git commit date
Yousong Zhou [Wed, 27 Jun 2018 07:20:21 +0000 (15:20 +0800)]
scripts/ use a more terse api for fetching git commit date

The previous api [1] includes in its response patch data among other
things, as such the response size can vary and be big.  Use another
api[2] to improve it a bit

 [1] Get a single commit, Repositories,
 [2] Git Commits, Git Data,

Signed-off-by: Yousong Zhou <>
4 years agoramips: add switch port index for I-O DATA WN-GX300GR
INAGAKI Hiroshi [Wed, 27 Jun 2018 05:51:25 +0000 (14:51 +0900)]
ramips: add switch port index for I-O DATA WN-GX300GR

WN-GX300GR has 5x RJ45 ports (port 0-4), and these ports are
orderd on the device as follows:
4 3 2 1 0

1-4: lan
0: wan

Signed-off-by: INAGAKI Hiroshi <>
4 years agouboot-kirkwood: fix malformed boot configuration
Alberto Bursi [Tue, 26 Jun 2018 19:48:09 +0000 (21:48 +0200)]
uboot-kirkwood: fix malformed boot configuration

With current uboot default configuration the bootloader will
fail to start the OpenWrt firmware with the following error:
unexpected character 'b' at the end of partition
Error initializing mtdparts!
incorrect device type in ubi
Partition ubi not found!
Error, no UBI device/partition selected!
Wrong Image Format for bootm command
Error occured, error code = 112

If the uboot configuration is examined with printenv
I can see that mdtparts line (on a nsa310) is wrong:

The "bootargs_root=" that was appended to it should not be there.

Fix the issue by adding a \0 line terminator at the end of affected lines,
mimicking what is also done by uboot upstream.

This issue was detected and confirmed on a nsa310, nsa325 and
a pogoplug v4, but it's not hardware-specific, so apply the same fix
to other devices as well.

Note that the issue is with the uboot's integrated boot configuration,
which is not used unless the uboot configuration in flash is unavailable
(erased or corrupted), which happens only on first time installation,
or if the user deletes the uboot configuration when upgrading uboot.
People just upgrading from an older uboot without erasing their previous
uboot configuration stored in flash would not have noticed this issue.

Signed-off-by: Alberto Bursi <>
4 years agouboot-kirkwood: fix whitespaces
Alberto Bursi [Mon, 18 Jun 2018 17:49:16 +0000 (19:49 +0200)]
uboot-kirkwood: fix whitespaces

remove whitespaces from the patches

Signed-off-by: Alberto Bursi <>
4 years agofirmware-utils: tplink-safeloader: switch tl-wr1043nd-v4 to dynamic partitions
Lucian Cristian [Tue, 26 Jun 2018 17:43:28 +0000 (20:43 +0300)]
firmware-utils: tplink-safeloader: switch tl-wr1043nd-v4 to dynamic partitions

Use the new dynamic partition split in tplink-safeloader so we no longer
have to worry about kernel size increases.

Signed-off-by: Lucian Cristian <>
4 years agobase-files: add menuconfig option for HOME_URL
Mathias Kresin [Thu, 2 Nov 2017 07:21:57 +0000 (08:21 +0100)]
base-files: add menuconfig option for HOME_URL

Add a menuconfig option to set the HOME_URL exposed in
/usr/lib/os-release independent from the

Fixes: FS#1123
Signed-off-by: Mathias Kresin <>
4 years agobuild: download code from github using archive API
Yousong Zhou [Sun, 11 Feb 2018 09:42:22 +0000 (17:42 +0800)]
build: download code from github using archive API

A new python script scripts/ is added to fetch tarballs using
GitHub archive API [1], then repack in a reproducible way same as the
current DownloadMethod/git

GitHub imposes a 60 reqs/hour rate limit on unauthenticated API
access[2].  This affects fetching commit date for feeding tar --mtime=
argument.  However, observation indicates that archive download is NOT
subject to this limit at the moment.  In the rare cases where download
fails because of this, we will falback to using DownloadMethod/git

The missing piece in the GitHub API is that it cannot provide in the
tarball dependent submodules's source code.  In that case, the
implementation will also fallback to using DownloadMethod/git

 [1] Get archive link,
 [2] Rate limiting,

v2 <- v1:

 - allow passing multiple urls with --urls argument
 - add commit ts cache.  can be helpful on retry

Signed-off-by: Yousong Zhou <>
4 years agowireguard: bump to 0.0.20180625
Kevin Darbyshire-Bryant [Tue, 26 Jun 2018 18:28:34 +0000 (19:28 +0100)]
wireguard: bump to 0.0.20180625

dfd9827 version: bump snapshot
88729f0 wg-quick: android: prevent outgoing handshake packets from being dropped
1bb9daf compat: more robust ktime backport
68441fb global: use fast boottime instead of normal boottime
d0bd6dc global: use ktime boottime instead of jiffies
18822b8 tools: fix misspelling of strchrnul in comment
0f8718b manpages: eliminate whitespace at the end of the line
590c410 global: fix a few typos
bb76804 simd: add missing header
7e88174 poly1305: give linker the correct constant data section size
fd8dfd3 main: test poly1305 before chacha20poly1305
c754c59 receive: don't toggle bh

Compile-tested-for: ath79 Archer C7 v2
Run-tested-on: ath79 Archer C7 v2

Signed-off-by: Kevin Darbyshire-Bryant <>
4 years agomac80211: make rtl8xxxu buils again
John Crispin [Tue, 26 Jun 2018 14:00:33 +0000 (16:00 +0200)]
mac80211: make rtl8xxxu buils again

we only wanted to drop rtl8xxxue support

Signed-off-by: John Crispin <>
4 years agomac80211: rtl8xxxu: drop support patches
John Crispin [Tue, 26 Jun 2018 13:39:38 +0000 (15:39 +0200)]
mac80211: rtl8xxxu: drop support patches

After a very enlightening but unfortunately far too short exchange with Jes
we mutually agreed to drop the patches. They are unfortunately not ready

Acked-by: Rafał Miłecki <>
Signed-off-by: John Crispin <>
4 years agoodhcpd: update to latest git HEAD
Hans Dedecker [Tue, 26 Jun 2018 12:46:00 +0000 (14:46 +0200)]
odhcpd: update to latest git HEAD

81a281e dhcpv6-ia: fix border assignment size setting
a2ffc59 dhcpv6-ia: fix status code for not on link IAs
5b087a6 dhcpv6-ia: improve error checking in assign_pd()
c9114a1 config: fix wrong assignment
bb8470f dhcpv4: delay forced renew transaction start
62a1b09 dhcpv4: fix DHCP address space logic
d5726ff dhcpv4: improve logging when sending DHCP messages
9484351 odhcpd: call handle_error when socket error can be retrieved
c45e2eb dhcpv6: fix out of bounds write in handle_nested_message()
c2ff5af dhcpv6-ia: log renew messages as well
676eb38 router: fix possible segfault in send_router_advert()
392701f odhcpd: fix passing possible negative parameter
029123b treewide: switch to C-code style comments
6b79748 router: improve error checking
12e21bc netlink: fix incorrect sizeof argument
d7aa414 dhcpv6: improve error checking in dhcpv6_setup_interface()
373495a ubus: fix invalid ipv6-prefix json
79d5e6f ndp: improve error checking
d834ae3 dhcpv4: fix error checking in dhcpv4_setup_interface()
f2aa383 dhcpv4: fix out of bound access in dhcpv4_put
4591b36 dhcpv4: improve error checking in dhcpv4_setup_interface()
4983ee5 odhcpd: fix strncpy bounds

Signed-off-by: Hans Dedecker <>
4 years agopackage/utils/e2fsprogs: Update to 1.44.2
Daniel Engberg [Sat, 9 Jun 2018 20:25:25 +0000 (22:25 +0200)]
package/utils/e2fsprogs: Update to 1.44.2

Update e2fsprogs to 1.44.2

Signed-off-by: Daniel Engberg <>
4 years agoipq40xx: add support for the ZyXEL NBG6617
Christian Lamparter [Thu, 21 Jun 2018 12:24:59 +0000 (14:24 +0200)]
ipq40xx: add support for the ZyXEL NBG6617

This patch adds support for ZyXEL NBG6617

Hardware highlights:

SOC:    IPQ4018 / QCA Dakota
CPU:    Quad-Core ARMv7 Processor rev 5 (v7l) Cortex-A7
DRAM:   256 MiB DDR3L-1600/1866 Nanya NT5CC128M16IP-DI @ 537 MHz
NOR:    32 MiB Macronix MX25L25635F
ETH:    Qualcomm Atheros QCA8075 Gigabit Switch (4 x LAN, 1 x WAN)
USB:    1 x 3.0 (via Synopsys DesignWare DWC3 controller in the SoC)
WLAN1:  Qualcomm Atheros QCA4018 2.4GHz 802.11bgn 2:2x2
WLAN2:  Qualcomm Atheros QCA4018 5GHz 802.11a/n/ac 2:2x2
INPUT:  RESET Button, WIFI/Rfkill Togglebutton, WPS Button
LEDS:   Power, WAN, LAN 1-4, WLAN 2.4GHz, WLAN 5GHz, USB, WPS

WARNING: The serial port needs a TTL/RS-232 3.3v level converter!
The Serial setting is 115200-8-N-1. The 1x4 .1" header comes
pre-soldered. Pinout:
  1. 3v3 (Label printed on the PCB), 2. RX, 3. GND, 4. TX

first install / debricking / restore stock:
 0. Have a PC running a tftp-server @
 1. connect the PC to any LAN-Ports
 2. put the openwrt...-factory.bin (or V1.00(ABCT.X).bin for stock) file
    into the tftp-server root directory and rename it to just "ras.bin".
 3. power-cycle the router and hold down the the WPS button (for 30sek)
 4. Wait (for a long time - the serial console provides some progress
    reports. The u-boot says it best: "Please be patient".
 5. Once the power LED starts to flashes slowly and the USB + WPS LEDs
    flashes fast at the same time. You have to reboot the device and
    it should then come right up.

Installation via Web-UI:
 0. Connect a PC to the powered-on router. It will assign your PC a
    IP-address via DHCP
 1. Access the Web-UI at (Default Passwort: 1234)
 2. Go to the "Expert Mode"
 3. Under "Maintenance", select "Firmware-Upgrade"
 4. Upload the OpenWRT factory image
 5. Wait for the Device to finish.
    It will reboot into OpenWRT without any additional actions needed.

To open the ZyXEL NBG6617:
 0. remove the four rubber feet glued on the backside
 1. remove the four philips screws and pry open the top cover
    (by applying force between the plastic top housing from the
    backside/lan-port side)

Access the real u-boot shell:
ZyXEL uses a proprietary loader/shell on top of u-boot: "ZyXEL zloader v2.02"
When the device is starting up, the user can enter the the loader shell
by simply pressing a key within the 3 seconds once the following string
appears on the serial console:

|   Hit any key to stop autoboot:  3

The user is then dropped to a locked shell.

|NBG6617> HELP
|ATEN    x[,y]     set BootExtension Debug Flag (y=password)
|ATSE    x         show the seed of password generator
|ATSH              dump manufacturer related data in ROM
|ATRT    [x,y,z,u] RAM read/write test (x=level, y=start addr, z=end addr, u=iterations)
|ATGO              boot up whole system
|ATUR    x         upgrade RAS image (filename)

In order to escape/unlock a password challenge has to be passed.
Note: the value is dynamic! you have to calculate your own!

First use ATSE $MODELNAME (MODELNAME is the hostname in u-boot env)
to get the challange value/seed.

|NBG6617> ATSE NBG6617

This seed/value can be converted to the password with the help of this
bash script (Thanks to authors):

- -
ror32() {
  echo $(( ($1 >> $2) | (($1 << (32 - $2) & (2**32-1)) ) ))
b=$(( $a + 0x10F0A563))
c=$(( 0x${v:12:14} & 7 ))
p=$(( $(ror32 $b $c) ^ $a ))
printf "ATEN 1,%X\n" $p
- end of -

|# bash ./ 012345678901
|ATEN 1,879C711

copy and paste the result into the shell to unlock zloader.

|NBG6617> ATEN 1,0046B0017430

If the entered code was correct the shell will change to
use the ATGU command to enter the real u-boot shell.

|NBG6617> ATGU

Co-authored-by: David Bauer <>
Signed-off-by: Christian Lamparter <>
Signed-off-by: David Bauer <>
4 years agoath79: add support for TP-Link Archer c7 v2
Sibren Vasse [Tue, 26 Jun 2018 05:25:33 +0000 (07:25 +0200)]
ath79: add support for TP-Link Archer c7 v2

Signed-off-by: Sibren Vasse <>
4 years agoath79: add tl-wr2543-v1 support
Lucian Cristian [Wed, 20 Jun 2018 22:02:10 +0000 (01:02 +0300)]
ath79: add tl-wr2543-v1 support

to switch between wlan leds we need a userspace implementation

Signed-off-by: Lucian Cristian <>
4 years agoiperf3: update to 3.6
Philip Prindeville [Tue, 26 Jun 2018 04:34:49 +0000 (22:34 -0600)]
iperf3: update to 3.6

Signed-off-by: Philip Prindeville <>
4 years agonetfilter: add bpf match support
Alin Nastac [Mon, 25 Jun 2018 08:22:21 +0000 (10:22 +0200)]
netfilter: add bpf match support

Add xt_bpf modules to {kmod-ipt,iptables-mod}-filter.

Match using Linux Socket Filter. Expects a BPF program in decimal
format. This is the format generated by the nfbpf_compile utility.

Signed-off-by: Alin Nastac <>
4 years agokernel: bump 4.14 to 4.14.51
Kevin Darbyshire-Bryant [Thu, 21 Jun 2018 19:24:05 +0000 (19:24 +0000)]
kernel: bump 4.14 to 4.14.51

The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
Refresh patches.

Remove patch that can be reverse applied:

Update patch that no longer applied:

Compiled-tested-for: lantiq, ramips
Run-tested-on: lantiq BT hh5a, ramips MIR3g

Signed-off-by: Kevin Darbyshire-Bryant <>
Tested-by: Michael Yartys <>
Tested-by: Rosen Penev <>
4 years agoath79: add support for ON Networks N150R
Zoltan HERPAI [Wed, 20 Jun 2018 14:21:08 +0000 (16:21 +0200)]
ath79: add support for ON Networks N150R

This is a rebranded Netgear WNR612v2, specs are the same.

 - Atheros AR7240 (Python) @400MHz
 - flash 4MB
 - ram 32MB
 - ethernet 10/100: 1xwan + 2xlan (only two)
 - radio AR9285

Signed-off-by: Zoltan HERPAI <>
4 years agoath79: add Netgear WNR612 v2
Zoltan HERPAI [Wed, 20 Jun 2018 14:21:07 +0000 (16:21 +0200)]
ath79: add Netgear WNR612 v2

Netgear WNR612 v2:
 - cpu Atheros AR7240 (Python) @400MHz
 - flash 4MB
 - ram 32MB
 - ethernet 10/100: 1xwan + 2xlan (only two)
 - radio AR9285

As there is a rebranded WNR612v2 called ON Networks N150R, add
a dtsi which includes all device support, and add a separate dts
for the device only (with a separate one for the subsequent N150R).

Signed-off-by: Zoltan HERPAI <>
4 years agofirmware-utils: tplink-safeloader: switch RE350 to dynamic partitions
Alex Maclean [Wed, 20 Jun 2018 13:56:22 +0000 (14:56 +0100)]
firmware-utils: tplink-safeloader: switch RE350 to dynamic partitions

Use the new dynamic partition split in tplink-safeloader so we no longer
have to worry about kernel size increases.

Signed-off-by: Alex Maclean <>
4 years agoramips: RE350: add rootfs offset to header
Alex Maclean [Wed, 20 Jun 2018 13:56:21 +0000 (14:56 +0100)]
ramips: RE350: add rootfs offset to header

Have mktplinkfw fill in the rootfs offset so the firmware splitter can
find it without aligning to erase blocks.

Signed-off-by: Alex Maclean <>
4 years agofirmware-utils: tplink-safeloader: add dynamic partitions
Alex Maclean [Wed, 20 Jun 2018 13:56:20 +0000 (14:56 +0100)]
firmware-utils: tplink-safeloader: add dynamic partitions

Add support to dynamically split the firmware partition into os-image
and file-system partitions. This is done by replacing those entries in
the partition table with a single unified firmware partition, which is
then split according to actual kernel image size.

The factory image will have the file-system partition aligned to a 64K
erase block, but the sysupgrade image skips this and aligns only the
JFFS2 EOF marker to squeeze out more space.

This should prevent further creeping updates to the kernel partition
size while maximizing space for the overlay filesystem on smaller

Signed-off-by: Alex Maclean <>
4 years agofirmware-utils: mktplinkfw: add rootfs offset for combined images
Alex Maclean [Wed, 20 Jun 2018 13:56:19 +0000 (14:56 +0100)]
firmware-utils: mktplinkfw: add rootfs offset for combined images

Add an option (-O) to calculate rootfs offset for combined images.

This is needed for the TP-Link mtdsplit driver to locate the rootfs
when the start is not aligned to an erase block. This will be the
case for sysupgrade images produced by tplink-safeloader with upcoming
dynamic partition splitting.

Signed-off-by: Alex Maclean <>
4 years agomac80211: enable ath10k LED support by default
Stijn Tintel [Fri, 22 Jun 2018 11:42:20 +0000 (14:42 +0300)]
mac80211: enable ath10k LED support by default

Commit 61d57a2f88b90ba951012e66c7c6fae9234c97b4 adds ath10k LED
support, but doesn't add an option to actually enable it.

After enabling this option, a LED named ath10k-phy0 appears in sysfs,
and a trigger can be assigned to it. Since 60deb3cdef4a the default set
trigger is the tpt one.

Enable it by default, as most devices using ath10k chips shouldn't be
severely space-constrained. There are likely many devices that can
benefit from having it enabled, like my testing device.

   text    data     bss     dec     hex filename
 245311    8899      16  254226   3e112 ath10k_core.ko

   text    data     bss     dec     hex filename
 245979    8899      16  254894   3e3ae ath10k_core.ko

Tested on a D-Link DAP-2695-A1 (ar71xx).

Signed-off-by: Stijn Tintel <>
4 years agomac80211: ath10k: use tpt LED trigger by default
Mathias Kresin [Fri, 22 Jun 2018 17:11:08 +0000 (19:11 +0200)]
mac80211: ath10k: use tpt LED trigger by default

Use the tpt LED trigger for each created phy led. Ths way LEDs attached
to the ath10k GPIO pins are indicating the phy status and blink on

Signed-off-by: Mathias Kresin <>
4 years agoramips: add support for TP-Link Archer C2
Franz Flasch [Thu, 17 May 2018 09:57:00 +0000 (11:57 +0200)]
ramips: add support for TP-Link Archer C2


- System-On-Chip: MT7620A
- CPU/Speed: 580 MHz
- Flash-Chip: Winbond 25Q64BVSIG
- Flash size: 8192 KiB
- RAM: 64 MiB
- Wireless No1: SoC-integrated: MT7620A 2.4GHz 802.11bgn
- Wireless No2: On-board chip: MT7610EN 5GHz 802.11ac
- Switch: RTL8367RB Gigabit Switch
- USB: Yes 1 x 2.0

Preparing a TFTP recovery image for initial flashing:

Currently the only method to install openwrt for the first time is via
TFTP download in u-boot. After first install you can use regular updates.
WARNING: This method also overwrites the bootloader partition!

Create a TFTP recovery image:

1) Download a stock TP-Link Firmware file here:
2) Extract u-boot from the binary file:
     #> dd if=c2v1_stock_firmware.bin of=c2v1_uboot.bin bs=1 skip=512 count=131072
3) Now merge the sysupgrade image and the u-boot into one binary:
     #> cat c2v1_uboot.bin openwrt-squashfs-sysupgrade.bin > ArcherC2V1_tp_recovery.bin

The resulting image can be flashed via TFTP recovery mode.

Flash instructions:

1) To flash the recovery image, start a TFTP server from IP address and serve the recovery image named
2) Connect your device to the LAN port, then press the WPS/Reset button
   and power it up. Keep pressing the WPS/Reset button for 10 seconds.
   It will try to download the recovery image and flash it.

It can take up to 20-25 minutes to finish. When it reaches 100%, the
router will reboot itself.

Signed-off-by: Serge Vasilugin <>
Signed-off-by: Franz Flasch <>
4 years agoramips: fix ZyXEL Keenetic Viva switch config
Franz Flasch [Thu, 17 May 2018 09:51:38 +0000 (11:51 +0200)]
ramips: fix ZyXEL Keenetic Viva switch config

The rtl8367b driver never supported a mdio property and it is quite
likely that the switch never worked for the board.

Use the mii-bus property instead to manage the switch via a mdio bus.

Signed-off-by: Franz Flasch <>
4 years agokernel: rtl8366-smi: add Realtek switch management via mii-bus
Franz Flasch [Thu, 17 May 2018 09:51:38 +0000 (11:51 +0200)]
kernel: rtl8366-smi: add Realtek switch management via mii-bus

Current version of rtl8366-smi module only supports Realtek switch
managment via two gpio lines. This adds Realtek switch
management via mii_bus. Tested on a Tp-link Archer C2 v1 (Mediatek
SoC mt7620a based)

dts-file configuration should look like this:

rtl8367rb {
compatible = "realtek,rtl8367b";
realtek,extif1 = <1 0 1 1 1 1 1 1 2>;
mii-bus = <&mdio0>;

&ethernet {
status = "okay";
mtd-mac-address = <&rom 0xf100>;
pinctrl-names = "default";
pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;

port@5 {
status = "okay";
mediatek,fixed-link = <1000 1 1 1>;
phy-mode = "rgmii";

mdio0: mdio-bus {
status = "okay";

Signed-off-by: Serge Vasilugin <>
Signed-off-by: Franz Flasch <>
4 years agokernel: rtl8367b: drop redundant compatible
Mathias Kresin [Wed, 20 Jun 2018 20:10:50 +0000 (22:10 +0200)]
kernel: rtl8367b: drop redundant compatible

Remove the compatible without vendor prefix. It is formal wrong and not
used in the tree.

Signed-off-by: Mathias Kresin <>
4 years agodropbear: let opkg manage symlinks of ssh, scp
Yousong Zhou [Mon, 25 Jun 2018 05:16:09 +0000 (13:16 +0800)]
dropbear: let opkg manage symlinks of ssh, scp

Signed-off-by: Yousong Zhou <>
4 years agomusl: sys/socket.h: fix SO_PEERSEC value on MIPS
Matthias Schiffer [Sun, 24 Jun 2018 15:20:43 +0000 (17:20 +0200)]
musl: sys/socket.h: fix SO_PEERSEC value on MIPS

Differing from all other archs supported by musl, MIPS defines SO_PEERSEC
to 30 instead of 31.

Patch has also been submitted upstream.

Reported-by: Andrey Jr. Mlenikov <>
Signed-off-by: Matthias Schiffer <>
4 years agoar71xx: Add support for TP-Link CPE210 v2
Adrian Schmutzler [Fri, 19 Jan 2018 13:45:42 +0000 (14:45 +0100)]
ar71xx: Add support for TP-Link CPE210 v2

This PR adds support for a popular low-cost 2.4GHz N based AP

 - SoC: Qualcomm Atheros QCA9533 (650MHz)
 - RAM: 64MB
 - Storage: 8 MB SPI NOR
 - Wireless: 2.4GHz N based built into SoC 2x2
 - Ethernet: 1x 100/10 Mbps, integrated into SoC, 24V POE IN

Flash factory image through stock firmware WEB UI
or through TFTP
To get to TFTP recovery just hold reset button while powering on for
around 4-5 seconds and release.
Rename factory image to recovery.bin
Stock TFTP server IP:
Stock device TFTP adress:

TP-Link does not use bootstrap registers so without this patch reference
clock detects as 40MHz while it is actually 25MHz.
This is due to messed up bootstrap resistor configuration on the PCB.
Provided GPL code just forces 25MHz reference clock.
That causes booting with completely wrong clocks, for example, CPU tries
to boot at 1040MHz while the stock is 650MHz.
So this PR depends on PR #672 to remove 40MHz reference clock.
Thanks to Sven Eckelmann <> for properly patching that.

Signed-off-by: Robert Marko <>
Signed-off-by: Adrian Schmutzler <>
4 years agoar71xx: Add TP-Link Pharos v2 board detection
Adrian Schmutzler [Fri, 19 Jan 2018 11:58:40 +0000 (12:58 +0100)]
ar71xx: Add TP-Link Pharos v2 board detection

Add support for detecting TP-Link Pharos v2 boards.
They use different format in product-info partition than v1 boards.

Code was written mostly by Alexander Couzens <>

Signed-off-by: Robert Marko <>
Signed-off-by: Adrian Schmutzler <>
4 years agoRe-enable arbitrary IPv6 addresses as outer ip4-in-ip6 tunnel source address
Axel Neumann [Mon, 21 May 2018 18:32:09 +0000 (20:32 +0200)]
Re-enable arbitrary IPv6 addresses as outer ip4-in-ip6 tunnel source address

The 666-Add-support-for-MAP-E-FMRs-mesh-mode.patch kernel patches
break the possibility for using an ip4ip6 tunnel interface as a fall
back interface accepting ip4-in-ip6 tunneled packets from any remote
address. This works out of the box with any normal (non-666-patched)
kernel and can be configured by setting up an 'ip -6 tunnel' with type
'any' or 'ip4ip6' and a remote address of '::'.

The misbehavior comes with line 290 the patch which discards all packets
that do not show the expected saddr, even if no single fmr rule was
defined and despite the validity of the saddr was already approved earlier.

Signed-off-by: Axel Neumann <>
Acked-by: Hans Dedecker <>
4 years agobuild: change defaults to OpenWrt
Jo-Philipp Wich [Fri, 22 Jun 2018 11:45:03 +0000 (13:45 +0200)]
build: change defaults to OpenWrt

Signed-off-by: Jo-Philipp Wich <>
4 years agoiptables: set nonshared flag
John Crispin [Fri, 22 Jun 2018 09:46:21 +0000 (11:46 +0200)]
iptables: set nonshared flag

this makes sure that offloading support is properly included for v4.14 targets.

Signed-off-by: John Crispin <>
4 years agomediatek: Add support for the UniElec U7623-02
Kristian Evensen [Tue, 19 Jun 2018 23:17:40 +0000 (01:17 +0200)]
mediatek: Add support for the UniElec U7623-02

This commit adds support for the MT7623A-based UniElec U7623-02 router,
with eMMC storage and 512MB RAM. The router can be delivered with NAND
Flash and more memory, but I only have access to the one configuration.
The DTS is structured in such a way that adding support for
more/different storage/memory should be straight forward.

The device has the following specifications:

* MT7623A (quad-core, 1.3 GHz)
* 512MB RAM (DDR3)
* 8GB storage (eMMC 4.5)
* 2x normal miniPCIe slots
* 1x miniPCIe slot that is connected via an internal USB OTG port
* 5x 1Gbps Ethernet (MT7530 switch)
* 1x UART header
* 1x USB 3.0 port
* 1x SATA 3.0
* 1x 40P*0.5mm FPC for MIPI LCD
* 1x SIM slot
* 12x LEDs (2 GPIO controlled)
* 1x reset button
* 1x DC jack for main power (12V)

The following has been tested and is working:
* Ethernet switch
* miniPCIe slots (tested with Wi-Fi cards)
* USB 3.0 port
* sysupgrade
* reset button

Not working:
* The miniPCIe connected via USB OTG. For the port to work, some MUSB
glue must be added. I am currently in the process of porting the glue
from the vendor SDK.

Not tested:
* SATA 3.0


The board ships with u-boot, and the first installation needs to be done
via the bootloader using tftp. Step number one is to update the MBR of
the eMMC, as the one that ships with the device is broken. Since the
device can ship with different storage sizes, I will not provide the
exact steps for creating a valid MBR. However, I have made some
assumptions about the disk layout - there must be one 8MB recovery
partition (FAT32) and a partition for the rootfs (Linux).

The board loads the kernel from block 0xA00 (2560) and I have reserved
32MB for the kernel (65536 blocks). I have aligned the partitions on the
erase block size (4096 byte), so the recovery partition must start on
block 69632 and end on 86016 (16385 sectors). The rootfs is assumed to
start on sector 90112.

In order to install the mbr, you run the following commands from the
u-boot command line:

* tftpboot ${loadaddr} <name of mbr file>
* mmc device 0
* mmc write ${loadaddr} 0x00 1

Run the following commands to install + boot OpenWRT:

* tftpboot ${loadaddr} openwrt-mediatek-mt7623-7623a-unielec-u7623-02-emmc-512m-squashfs-sysupgrade-emmc.bin.gz
* run boot_wr_img
* run boot_rd_img
* bootm


In order to recover the router, you need to follow the installation
steps above (no need to replace MBR).


* F2FS is used as the overlay filesystem.

* The device does not ship with any valid MAC address, so a random
address has to be generated. As a work-around, I write the initial
random MAC to a file on the recovery partition. The MAC of the WAN
interface is set to the MAC-address contained in this file on each boot,
and the address of the LAN-interfaces are WAN + 1. The MAC file is kept
across sysupgrade/firstboot.

My approach is slightly different than what the stock image does. The
first fives bytes of the MAC addresses in the stock image are static,
and then the last byte is random. I believe it is better to create fully
random MAC addresses.

* In order to support the miniPCIe-slots, I needed to add missing
pcie-nodes to mt7623.dtsi. The nodes are just c&p from the upstream

* One of the USB3.0 phys (u3phy2) on the board can be used as either USB
or PCI, and one of the wifi-cards is connected to this phy. In order to
support switching the phy from USB to PCI, I needed to patch the
phy-driver. The patch is based on a rejected (at least last time I
checked) PCI-driver submitted to the linux-mediatek mailing list.

* The eMMC is configured to boot from the user area, and according to
the data sheet of the eMMC this value can't be changed.

* I tried to structure the MBR more nicely and use for example a
FAT32-parition for the kernel, so that we don't need to write/read from
some offset. The bootloader does not support reading from
FAT32-paritions. While the command (fatload) is there, it just throws an
error when I try to use it.

* I will submit and hope to get the DTS for the device accepted
upstream. If and when that happens, I will update the patches

Signed-off-by: Kristian Evensen <>
4 years agokernel: cleanup offload hooks on netdev unregister
Chen Minqiang [Sun, 29 Apr 2018 06:15:59 +0000 (14:15 +0800)]
kernel: cleanup offload hooks on netdev unregister

Signed-off-by: Chen Minqiang <>
4 years agomac80211: drop 355-ath9k-limit-retries-for-powersave-response-frames.patch
John Crispin [Fri, 22 Jun 2018 07:43:56 +0000 (09:43 +0200)]
mac80211: drop 355-ath9k-limit-retries-for-powersave-response-frames.patch

several people reported this bug to be causing drop out issues

Signed-off-by: John Crispin <>
4 years agomac80211: ath10k fix vht160 firmware crash
Ansuel Smith [Sun, 17 Jun 2018 20:35:42 +0000 (22:35 +0200)]
mac80211: ath10k fix vht160 firmware crash

When the 160mhz width is selected the ath10k firmware crash. This fix this problem.

Signed-off-by: Ansuel Smith <>
4 years agomac80211: ath10k add leds support
Ansuel Smith [Sun, 17 Jun 2018 20:36:46 +0000 (22:36 +0200)]
mac80211: ath10k add leds support

This adds support for leds handled by the wireless chipset.

Signed-off-by: Ansuel Smith <>
4 years agowwan: Add support for Gemalto Cinterion cellular modules
David Thornley [Fri, 22 Jun 2018 06:25:22 +0000 (16:25 +1000)]
wwan: Add support for Gemalto Cinterion cellular modules

Includes specific support for PH8(1e2d-0053) / ELS61(1e2d-005b) modules.

Note for ELS61, the serial driver changes from serial option(ttyUSB) to usb-cdc (ttyACM).

Two additional fixes in this commit resolve issues with ttyACM devices: -

* - sys-fs has a subdirectory indirection (*/tty/ttyACMx) which was not handled properly
* wwan.usb - dependent scripts were not included, so this never actually called proto_set_available for example (and relied on inadvertent call for ttyUSB case)

Signed-off-by: David Thornley <>
4 years agobusybox: rename udhcpc-remove-code-which-requires-server-ID-to-be-on patch
Hans Dedecker [Thu, 21 Jun 2018 20:44:19 +0000 (22:44 +0200)]
busybox: rename udhcpc-remove-code-which-requires-server-ID-to-be-on patch

Move udhcpc-remove-code-which-requires-server-ID-to-be-on patch from 500
to 400

Signed-off-by: Hans Dedecker <>
4 years agobusybox: udhcpc: replace udhcpc_no_msg_dontroute patch by upstream fix
Hans Dedecker [Thu, 21 Jun 2018 20:26:18 +0000 (22:26 +0200)]
busybox: udhcpc: replace udhcpc_no_msg_dontroute patch by upstream fix

Replace 204-udhcpc_no_msg_dontroute patch by the upstream busybox fix
which removes the code which requires the server ID to be on local

Signed-off-by: Hans Dedecker <>
4 years agolantiq: fix arcadyan vg3503j switch port indexing
Mathias Kresin [Thu, 21 Jun 2018 18:45:53 +0000 (20:45 +0200)]
lantiq: fix arcadyan vg3503j switch port indexing

Both version of the vg3503j have the LAN1 labelled port connected to
switch port 4 and the LAN2 labelled port connected to switch port 2.

Signed-off-by: Mathias Kresin <>
4 years agoramips: Add support for Phicomm K2G
Chuanhong Guo [Wed, 20 Jun 2018 16:56:38 +0000 (00:56 +0800)]
ramips: Add support for Phicomm K2G

- SoC: MediaTek MT7620A
- Flash: 8 MB
- RAM: 64 MB
- Ethernet: 4 FE ports and 1 GE port (RTL8211F on port 5)
- Wireless radio: MT7620 for 2.4G and MT7612E for 5G, both equipped with external PA.
- UART: 1 x UART on PCB - 57600 8N1

Flash instruction:
The U-boot is based on Ralink SDK so we can flash the firmware using UART:
1. Configure PC with a static IP address and setup an TFTP server.
2. Put the firmware into the tftp directory.
3. Connect the UART line as described on the PCB.
4. Power up the device and press 2, follow the instruction to
   set device and tftp server IP address and input the firmware
   file name. U-boot will then load the firmware and write it into
   the flash.

Signed-off-by: Chuanhong Guo <>
Stijn Tintel [Tue, 19 Jun 2018 17:58:51 +0000 (20:58 +0300)]

Enabling CONFIG_ATH10K_THERMAL on targets that don't have CONFIG_THERMAL
enabled in their kernel config causes build to fail due to missing
symbol THERMAL_EMERGENCY_POWEROFF_DELAY_MS. Add it to kmod-thermal.

Signed-off-by: Stijn Tintel <>
4 years agoltq-vdsl-fw: fix ltq-vdsl-vr9-vectoring-fw-installer package install
Daniel Golle [Thu, 21 Jun 2018 10:00:12 +0000 (12:00 +0200)]
ltq-vdsl-fw: fix ltq-vdsl-vr9-vectoring-fw-installer package install

The package is not being generated otherwise, which is fatal because
it is part of the subtargets default package set...

Signed-off-by: Daniel Golle <>
4 years agomt76: update to the latest version
Felix Fietkau [Thu, 21 Jun 2018 09:18:39 +0000 (11:18 +0200)]
mt76: update to the latest version

1d4ca10 mt76x2: track rssi for gain adjustment per station

Signed-off-by: Felix Fietkau <>
4 years agoramips: Add support for Mikrotik RouterBOARD RBM33g
Tobias Schramm [Fri, 4 May 2018 01:47:23 +0000 (03:47 +0200)]
ramips: Add support for Mikrotik RouterBOARD RBM33g

This commit adds support for the Mikrotik RouterBOARD RBM33g.


The RBM33g is a mt7621 based device featuring three gigabit ports, 2
miniPCIe slots with sim card sockets, 1 M.2 slot, 1 USB 3.0 port and a male
onboard RS-232 serial port. Additionally there are a lot of accessible
GPIO ports and additional buses like i2c, mdio, spi and uart.


The three Ethernet ports are all connected to the internal switch of the
mt7621 SoC:

port 0: Ethernet Port next to barrel jack with PoE printed on it
port 1: Innermost Ethernet Port on opposite side of RS-232 port
port 2: Outermost Ethernet Port on opposite side of RS-232 port
port 6: CPU


The device has two spi flash chips. The first flash chips is rather small
(512 kB), connected to CS0 by default and contains only the RouterBOOT
bootloader and some factory information (e.g. mac address).
The second chip has a size of 16 MB, is by default connected to CS1 and
contains the firmware image.


The board features three PCIe-enabled slots. Two of them are miniPCIe
slots (PCIe0, PCIe1) and one is a M.2 (Key M) slot (PCIe2).
Each of the miniPCIe slots is connected to a dedicated mini SIM socket
on the back of the board.

Power to all three PCIe-enabled slots is controlled via GPIOs on the
mt7621 SoC:



The board has one external USB 3.0 port at the rear. Additionally PCIe
port 0 has a permanently enabled USB interface. PCIe slot 1 shares its
USB interface with the rear USB port. Thus only either the rear USB port
or the USB interface of PCIe slot 1 can be active at the same time. The
jumper next to the rear USB port controls which one is active:

open: USB on PCIe 1 is active
closed: USB on rear USB port is active


The board can accept both, passive PoE and external power via a 2.1 mm
barrel jack. The input voltage range is 11-32 V.



A USB -> RS-232 Adapter and a null modem cable are required for

To install an OpenWRT image to the device two components must be built:

1. A openwrt initramfs image
2. A openwrt sysupgrade image

===initramfs & sysupgrade image===

Select target devices "Mikrotik RBM33G" in
openwrt menuconfig and build the images. This will create the images
"openwrt-ramips-mt7621-mikrotik_rbm33g-initramfs-kernel.bin" and
"openwrt-ramips-mt7621-mikrotik_rbm33g-squashfs-sysupgrade.bin" in the output


**Make sure to back up your RouterOS license in case you do ever want to
go back to RouterOS using "/system license output" and back up the created
license file.**

Serial settings: 115200 8N1

The installation is a two-step process. First the
"openwrt-ramips-mt7621-mikrotik_rbm33g-initramfs-kernel.bin" must be booted
via tftp:

1. Set up a dhcp server that points the bootfile to tftp server serving
   the "openwrt-ramips-mt7621-mikrotik_rbm33g-initramfs-kernel.bin"
   initramfs image
2. Connect to WAN port (left side, next to sys-LED and power indicator)
3. Connect to serial port of board
4. Power on board and enter RouterBOOT setup menu
5. Set boot device to "boot over ethernet"
6. Set boot protocol to "dhcp protocol" (can be omitted if DHCP server
   allows dynamic bootp)
6. Save config
7. Wait for board to boot via Ethernet

On the serial port you should now be presented with the OpenWRT boot log.
The next steps will install OpenWRT persistently.

1. Copy "openwrt-ramips-mt7621-mikrotik_rbm33g-squashfs-sysupgrade.bin" to the device
   using scp.
2. Write openwrt to flash using "sysupgrade

Once the flashing completes reboot the router and let it boot from flash.
It should boot straight to OpenWRT.

Signed-off-by: Tobias Schramm <>
4 years agoramips: Add lzma-loader targets
Tobias Schramm [Thu, 3 May 2018 16:44:27 +0000 (18:44 +0200)]
ramips: Add lzma-loader targets

Signed-off-by: Tobias Schramm <>
4 years agoramips: Add support for mt7621 to lzma-loader
Tobias Schramm [Thu, 3 May 2018 14:27:10 +0000 (16:27 +0200)]
ramips: Add support for mt7621 to lzma-loader

Signed-off-by: Tobias Schramm <>
4 years agoramips: fix Newifi D1 mtd partition
Deng Qingfang [Wed, 20 Jun 2018 17:34:51 +0000 (01:34 +0800)]
ramips: fix Newifi D1 mtd partition

Newifi D1 has 32 MiB flash, so the firmware partition size should be 0x1fb0000

Signed-off-by: Deng Qingfang <>
4 years agowireguard: bump to 0.0.20180620
Kevin Darbyshire-Bryant [Wed, 20 Jun 2018 19:59:42 +0000 (19:59 +0000)]
wireguard: bump to 0.0.20180620

0bc4230 version: bump snapshot
ed04799 poly1305: add missing string.h header
cbd4e34 compat: use stabler lkml links
caa718c ratelimiter: do not allow concurrent init and uninit
894ddae ratelimiter: mitigate reference underflow
0a8a62c receive: drop handshake packets if rng is not initialized
cad9e52 noise: wait for crng before taking locks
83c0690 netlink: maintain static_identity lock over entire private key update
0913f1c noise: take locks for ss precomputation
073f31a qemu: bump default kernel
bec4c48 wg-quick: android: don't forget to free compiled regexes
7ce2ef3 wg-quick: android: disable roaming to v6 networks when v4 is specified
9132be4 dns-hatchet: apply resolv.conf's selinux context to new resolv.conf
41a5747 simd: no need to restore fpu state when no preemption
6d7f0b0 simd: encapsulate fpu amortization into nice functions
f8b57d5 queueing: re-enable preemption periodically to lower latency
b7b193f queueing: remove useless spinlocks on sc
5bb62fe tools: getentropy requires 10.12
4e9f120 chacha20poly1305: use slow crypto on -rt kernels on arm too

Compiled-for: ar71xx, lantiq
Run-tested-on: ar71xx Archer C7 v2 & lantiq HH5a

Signed-off-by: Kevin Darbyshire-Bryant <>
4 years agobrcm2708: Add wifi driver, firmware and NVRAM for Raspberry Pi 3 b
Christo Nedev [Wed, 20 Jun 2018 19:29:39 +0000 (19:29 +0000)]
brcm2708: Add wifi driver, firmware and NVRAM for Raspberry Pi 3 b

2708 -> 43430 -> pi0w

2709 -> 43430 -> pi3b
2709 -> 43455 -> pi3bplus

2710 -> 43430 -> pi3b
2710 -> 43455 -> pi3bplus

Signed-off-by: Christo Nedev <>
4 years agoodhcp6c: update to latest git HEAD
Hans Dedecker [Wed, 20 Jun 2018 13:34:18 +0000 (15:34 +0200)]
odhcp6c: update to latest git HEAD

b99c1f6 odhcp6c: remove len check in option parsing handle

Signed-off-by: Hans Dedecker <>
4 years agoar71xx: add support for TP-LINK Archer C7 v5
Arvid E. Picciani [Mon, 16 Apr 2018 11:18:37 +0000 (13:18 +0200)]
ar71xx: add support for TP-LINK Archer C7 v5

TP-Link Archer C7 v5 is a dual-band AC1750 router, based on Qualcomm/Atheros


- 750/400/250 MHz (CPU/DDR/AHB
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- 3T3R 2.4 GHz
- 3T3R 5 GHz
- 5x 10/100/1000 Mbps Ethernet
- 10x LED, 2x button
- UART header on PCB

Flash instruction:
1. Upload lede-ar71xx-generic-archer-c7-v5-squashfs-factory.bin via Web interface

Flash instruction using TFTP recovery:
1. Set PC to fixed ip address
2. Download lede-ar71xx-generic-archer-c7-v5-squashfs-factory.bin
and rename it to ArcherC7v5_tp_recovery.bin
3. Start a tftp server with the file tp_recovery.bin in its root directory
4. Turn off the router
5. Press and hold Reset button
6. Turn on router with the reset button pressed and wait ~15 seconds
7. Release the reset button and after a short time
the firmware should be transferred from the tftp server
8. Wait ~30 second to complete recovery.

Signed-off-by: Arvid E. Picciani <>
4 years agoocteon: Add and set CPU type Octeon+ as default
Daniel Engberg [Tue, 19 Jun 2018 06:44:54 +0000 (08:44 +0200)]
octeon: Add and set CPU type Octeon+ as default

The lowest CPU type used by supported Octeon platform
is Octeon+ (EdgeRouter Lite) while EdgeRouter Pro/ER-8 uses
Octeon II which is backwards compatible with Octeon+.

"OCTEON II family is fully software compatible with the widely-adopted
OCTEON Plus family"

Signed-off-by: Daniel Engberg <>
4 years agoethtool: Update to 4.17
Robert Marko [Mon, 18 Jun 2018 15:50:47 +0000 (17:50 +0200)]
ethtool: Update to 4.17

Tested on 8devices Jalapeno(ipq40xx)
Introduces following changes
* Fix: In ethtool.8, remove superfluous and incorrect \
* Fix: fix uninitialized return value
* Fix: fix RING_VF assignment
* Fix: remove unused global variable
* Fix: several fixes in do_gregs()
* Fix: correctly free hkey when get_stringset() fails
* Fix: remove unreachable code
* Fix: fix stack clash in do_get_phy_tunable and do_set_phy_tunable
* Feature: Add register dump support for MICROCHIP LAN78xx

Signed-off-by: Robert Marko <>
4 years agoltq-vdsl-fw: add meaningful version information
Daniel Golle [Wed, 20 Jun 2018 12:38:13 +0000 (14:38 +0200)]
ltq-vdsl-fw: add meaningful version information

Signed-off-by: Daniel Golle <>
4 years agodnsmasq: fix dnsmasq startup issue
Hans Dedecker [Wed, 20 Jun 2018 11:21:28 +0000 (13:21 +0200)]
dnsmasq: fix dnsmasq startup issue

Commit ecd954d530 installs specific interface triggers which rewrites the dnsmasq config
file and restarts dnsmasq if the network interface becomes active for which a trigger
has been installed.
In case no dhcp sections are specified or ignore is set to 1 dnsmasq will not be started
at startup which breaks DNS resolving.
Fix this by ditching the BOOT check in start_service and always start dnsmasq at startup.

Signed-off-by: Hans Dedecker <>
4 years agobrcm2708: Add wifi driver, firmware and NVRAM for RPi1
Daniel Golle [Wed, 20 Jun 2018 09:16:54 +0000 (11:16 +0200)]
brcm2708: Add wifi driver, firmware and NVRAM for RPi1

Apparently there are RPi1 devices with BRCM43430 wifi, such as the
Pi Zero W. Add the necessary packages for that to the image generated
for those boards as well.

Signed-off-by: Daniel Golle <>
4 years agoath79: ar934x: use irq-ath79-intc driver and enable wmac
Johann Neuhauser [Tue, 19 Jun 2018 06:16:01 +0000 (08:16 +0200)]
ath79: ar934x: use irq-ath79-intc driver and enable wmac

Signed-off-by: Johann Neuhauser <>
4 years agoath79: qca95xx: add new intc2, correct intc3 and add second pcie on qca9557
Johann Neuhauser [Tue, 19 Jun 2018 06:16:28 +0000 (08:16 +0200)]
ath79: qca95xx: add new intc2, correct intc3 and add second pcie on qca9557

Signed-off-by: Johann Neuhauser <>
4 years agoath79: fix irq-ath79-intc driver and add support for other ath79 SoCs
Johann Neuhauser [Mon, 18 Jun 2018 17:15:21 +0000 (19:15 +0200)]
ath79: fix irq-ath79-intc driver and add support for other ath79 SoCs

Add the missing enable and disable function.
Remove dummy mask and unmask function and use the one provided by
Allow interrupt status register being defined from dts.
Add ddr_wb_flush for ar934x/qca953x.
Rename controller name to qca,ar9340-intc because this design was
first introduced in AR934x.

Signed-off-by: Chuanhong Guo <>
Signed-off-by: Johann Neuhauser <>
4 years agoramips: add support for ELECOM WRC-1167GHBK2-S
INAGAKI Hiroshi [Fri, 15 Jun 2018 15:27:51 +0000 (00:27 +0900)]
ramips: add support for ELECOM WRC-1167GHBK2-S

ELECOM WRC-1167GHBK2-S is a 2.4/5 GHz band 11ac router, based on
MediaTek MT7621A.


- MT7621A (2-Cores, 4-Threads)
- 128 MB of RAM (DDR3)
- 16 MB of Flash (SPI)
- 2T2R 2.4/5 GHz
  - MediaTek MT7615D
- 5x 10/100/1000 Mbps Ethernet
- 6x LEDs, 2x keys
- UART header on PCB
  - Vcc, GND, TX, RX from ethernet port side
  - baudrate: 57600 bps

Flash instruction using factory image:

1. Rename the factory image to "wrc-1167ghbk2-s_v0.00.bin"
2. Connect the computer to the LAN port of WRC-1167GHBK2-S
3. Connect power cable to WRC-1167GHBK2-S and turn on it
4. Access to "" and open firmware
update page ("手動更新(アップデート)")
5. Select the factory image and click apply ("適用") button
6. Wait ~150 seconds to complete flashing

Signed-off-by: INAGAKI Hiroshi <>
4 years agoipq806x: add support for NEC Aterm WG2600HP
INAGAKI Hiroshi [Thu, 17 May 2018 07:06:02 +0000 (16:06 +0900)]
ipq806x: add support for NEC Aterm WG2600HP

NEC Aterm WG2600HP is a 2.4/5 GHz band 11ac router, based on Qualcomm


- IPQ8064 (384 - 1,400 MHz)
- 512 MB of RAM
- 32 MB of Flash (SPI)
- 4T4R 2.4/5 GHz
- 5x 10/100/1000 Mbps Ethernet
- 12x LEDs, 4x keys
- 1x USB 3.0 Type-A
- UART header on PCB
  - RX, TX, NC, GND, Vcc from power connector side
  - baudrate: 115200 bps

Flash instruction using initramfs image:
1. Connect serial cable to UART header
2. Connect power cable and turn on the router
3. When the "Press the [f] key and hit [enter] to enter failsafe mode"
message is displayed on the console, press the "f" key and Enter key
sequentially to enter the failsafe mode
4. create fw_env.config file with following contents on failsafe mode:
  /dev/mtd9 0x0 0x10000 0x10000
5. Execute following commands to add and change the environment
variables of U-Boot
  fw_setenv ipaddr ""
  fw_setenv serverip ""
  fw_setenv autostart "yes"
  fw_setenv bootcmd "tftpboot 0x44000000 wg2600hp-initramfs.bin;
6. Set the IP address of the computer to, connect to the LAN
port of WG2600HP, and start the TFTP server on the computer
7. Rename OpenWrt initramfs image for WG2600HP to
"wg2600hp-initramfs.bin" and place it in the TFTP directory
8. Remove power cable from WG2600HP, reconnect it and restart WG2600HP
9. WG2600HP downloads initramfs image from TFTP server on the computer,
loads it and boot with initramfs image
10. On the initramfs image, execute "mtd erase firmware" to erase stock
firmware and execute sysupgrade with the sysupgrade image
11. Wait ~180 seconds to complete flashing

Signed-off-by: INAGAKI Hiroshi <>
4 years agoramips: mt7621: fix wireless package selection
Mathias Kresin [Tue, 19 Jun 2018 18:44:36 +0000 (20:44 +0200)]
ramips: mt7621: fix wireless package selection

Add wpad-mini if wireless drivers are included. Drop the mt76 package if
both of the provided drivers are included with their own packages.

Signed-off-by: Mathias Kresin <>
4 years agoltq-vdsl-fw: add nonshared flag
Daniel Golle [Tue, 19 Jun 2018 15:55:22 +0000 (17:55 +0200)]
ltq-vdsl-fw: add nonshared flag

Signed-off-by: Daniel Golle <>
4 years agoarc770: bump kernel to 4.14
Evgeniy Didin [Tue, 19 Jun 2018 10:40:54 +0000 (13:40 +0300)]
arc770: bump kernel to 4.14

Currently arc770 is no more "source-only".
Lets update Linux kernel version from 4.9 to 4.14 for arc770.
config-4.14 was simply regenerated with "make kernel_menuconfig".

Signed-off-by: Evgeniy Didin <>
Cc: Alexey Brodkin <>
Cc: John Crispin <>
4 years agomwlwifi: update to version
Kabuli Chana [Thu, 14 Jun 2018 18:39:22 +0000 (12:39 -0600)]
mwlwifi: update to version

fix mcs rate for HT
support 88W8997
protect rxringdone

Signed-off-by: Kabuli Chana <>
4 years agoar71x: add support for Mikrotik Routerboard wAP R
David Ehrmann [Sun, 10 Jun 2018 01:33:24 +0000 (18:33 -0700)]
ar71x: add support for Mikrotik Routerboard wAP R

This commit adds support for the Mikrotik wAP R (RBwAPR-2nD). The change
is based on 3b15eb0 which added support for the wAP 2nD. This change lacks
LED support.


- SoC: Qualcomm QCA9531 (650 MHz)
- RAM: 64 MB
- Storage: 16 MB NOR SPI flash
- Wireless: built-in QCA9531, 802.11b/g/n 2x2:2
- Ethernet: 1x100Mbps
- Power: 9-30V Passive PoE, 9-30V DC jack, 9-30V automotive jack
- SIM card slot
- Mini-PCIe slot


1. Login to the Mikrotik WebUI to backup your licence key
2. Change the following settings in System->Routerboard->Settings:
  - Boot device: try ethernet once then NAND
  - Boot protocol: DHCP
  - Force Backup Booter: checked
3. Setup a DHCP/BOOTP server with:
  - DHCP-Option 66 (TFTP server name) pointing to a local TFTP
    server within the same subnet of the DHCP range
  - DHCP-Option 67 (Bootfile-Name) matching the initramfs filename
    of the to be booted image, e.g.
4. Power off the device
5. If this is the second attempt to boot OpenWRT or the boot device isn't
   "try ethernet once then NAND," press and hold the reset button while
   powered off. If this is the first attempt, this step isn't necessary.
6. Power on the device, holding the reset button for 15-20s if already
   pressed from the previous step.

The board should load and start the initramfs image from the TFTP
server. Login as root/without password to the started OpenWRT via SSH
listing on IPv4 address Use sysupgrade to install OpenWRT.

Revert to RouterOS

Use the "rbcfg" package on in OpenWRT:
- rbcfg set boot_protocol bootp
- rbcfg set boot_device ethnand
- rbcfg apply

Open Netinstall and reboot routerboard. Now Netinstall sees RouterBOARD
and you can install RouterOS. If NetInstall gets stuck on Sending offer
just wait for it to timeout and then close and open Netinstall again.

Click on install again.

In order for RouterOS to function properly, you need to restore license
for the device. You can do that by including license in NetInstall.

Signed-off-by: David Ehrmann <>
4 years agoramips: improve ethernet driver performance with GRO/TSO
Felix Fietkau [Wed, 6 Jun 2018 07:56:13 +0000 (09:56 +0200)]
ramips: improve ethernet driver performance with GRO/TSO

GRO stores packets as fraglist. If they are routed back to the ethernet
device, they need to be re-segmented if the driver does not support
sending fraglists.
Add the missing support for that, along with a missing feature flag that
allows full routed GRO->TSO offload.
Considerably reduces CPU utilization for routing

Signed-off-by: Felix Fietkau <>
4 years agoath79: fix qm5p-ac-v2 dts file
John Crispin [Mon, 18 Jun 2018 21:23:08 +0000 (23:23 +0200)]
ath79: fix qm5p-ac-v2 dts file

Signed-off-by: John Crispin <>
4 years agoar71xx: add support for Fritz!WLAN Repeater 450E
David Bauer [Sat, 26 May 2018 16:19:53 +0000 (18:19 +0200)]
ar71xx: add support for Fritz!WLAN Repeater 450E

This commit adds support for the AVM Fritz!WLAN Repeater 450E

SOC:    Qualcomm QCA9556 (Scorpion) 560MHz MIPS74Kc
RAM:    64MB Zentel A3R12E40CBF DDR2
FLASH:  16MiB Winbond W25Q128 SPI NOR
WLAN1:  QCA9556 2.4 GHz 802.11b/g/n 3x3
INPUT:  WPS button
LED:    Power, WiFi, LAN, RSSI indicator
Serial: Header Next to Black metal shield
        Pinout is 3.3V - RX - TX - GND (Square Pad is 3.3V)
        The Serial setting is 115200-8-N-1.

Tested and working:
 - Ethernet
 - 2.4GHz WiFi (correct MAC)
 - Installation via EVA bootloader
 - OpenWRT sysupgrade
 - Buttons
 - Most LEDs

Not working:
 - 2 RSSI LEDs
   AVM used for RSSI{0,1} two of the Ethernet PHYs LEDs which they
   control over MDIO. Our driver doesn't expose these LEDs as GPIOs.
   While it is possible to implement this feature, it would require an
   additional kernel patch for a minor functionality.

Installation via EVA:
In the first seconds after Power is connected, the bootloader will
listen for FTP connections on Firmware can be uploaded
like following:

  ftp> quote USER adam2
  ftp> quote PASS adam2
  ftp> binary
  ftp> debug
  ftp> passive
  ftp> quote MEDIA FLSH
  ftp> put openwrt-sysupgrade.bin mtd1

Note that this procedure might take up to two minutes.
You need to powercycle the Device afterwards to boot OpenWRT.

Signed-off-by: David Bauer <>
4 years agoar71xx: fix incorrect speed setting on QCA9556
David Bauer [Tue, 8 May 2018 18:59:05 +0000 (20:59 +0200)]
ar71xx: fix incorrect speed setting on QCA9556

The QCA9556 only has a SGMII interface. However the speed on the
ethernet link is set for the non-existant xMII interface.

This commit fixes this behavior.

Signed-off-by: David Bauer <>
4 years agokernel/modules: kmod-chaoskey: Add missing dependency
Hauke Mehrtens [Mon, 18 Jun 2018 20:49:21 +0000 (22:49 +0200)]
kernel/modules: kmod-chaoskey: Add missing dependency

This new package was missing the dependency to kmod-random-core which
caused some build errors.

Fixes: 163ab9135a9 ("kernel/modules: add chaoskey module, hardware TRNG")
Signed-off-by: Hauke Mehrtens <>
4 years agobusybox: update to 1.28.4
Magnus Kroken [Sun, 17 Jun 2018 14:16:39 +0000 (16:16 +0200)]
busybox: update to 1.28.4

Signed-off-by: Magnus Kroken <>
4 years agoltq_atm: burn ifx_atm_alloc_tx with fire
Kevin Darbyshire-Bryant [Mon, 18 Jun 2018 18:01:07 +0000 (18:01 +0000)]
ltq_atm: burn ifx_atm_alloc_tx with fire

Drop code that was never used.

Tested on: BT HomeHub 5a

Signed-off-by: Kevin Darbyshire-Bryant <>
4 years agobuild: add busybox support to `time` prereq-check
Andy Boyett [Thu, 17 May 2018 05:09:57 +0000 (22:09 -0700)]
build: add busybox support to `time` prereq-check

Busybox time supports the GNU time '-f' syntax used by the build time
logging implemented in ff6e62b288c, however the prerequisite check added
only works with GNU time installed as `time` or `gtime`.

As busybox is a multicall binary, the name of the symlink setup by
SetupHostCommand also must be changed from `gtime` to `time` to fix the
value of argv[0]. This causes a number of shells (including bash) to use
their builtin impelementation of time, so the sole invocation has been
changed to use `env time` to use the value found on the $PATH.

Signed-off-by: Andy Boyett <>
4 years agoath79: add support for tl-wr1043nd v2/v3
Lucian Cristian [Mon, 18 Jun 2018 17:22:13 +0000 (19:22 +0200)]
ath79: add support for tl-wr1043nd v2/v3

Signed-off-by: Lucian Cristian <>
4 years agoath79: add initial nand support for gl-ar300m
Marty E. Plummer [Tue, 29 May 2018 08:02:59 +0000 (03:02 -0500)]
ath79: add initial nand support for gl-ar300m

Signed-off-by: Marty E. Plummer <>
4 years agoath79: initial gl-ar300m support
Marty E. Plummer [Sun, 27 May 2018 05:37:22 +0000 (00:37 -0500)]
ath79: initial gl-ar300m support

Signed-off-by: Marty E. Plummer <>
4 years agob43-tools: update to latest git HEAD
Krystian Kozak [Sun, 27 May 2018 19:58:07 +0000 (21:58 +0200)]
b43-tools: update to latest git HEAD

122ca37 Rename bits in hostflags to match new identifiers for the hostflags
32c2a3c Change order of identifiers to be ascending with the spr numbers
f7016b5 Remove definitions which are not Broadcom specific
b77c0a3 debug: Fix ordering of HF bits
3f46e61 fwcutter: Add firmware
27892ef fwcutter/make: Avoid _DEFAULT_SOURCE warning

Signed-off-by: Krystian Kozak <>
4 years agomvebu: enable CONFIG_HW_RANDOM
Hannu Nyman [Sun, 17 Jun 2018 18:11:44 +0000 (21:11 +0300)]
mvebu: enable CONFIG_HW_RANDOM

Enable the Hardware Random Number Generator Core infrastructure
in kernel.

Needed for hardware random number generator drivers like chaoskey

Signed-off-by: Hannu Nyman <>
4 years agokernel/modules: add chaoskey module, hardware TRNG
Hannu Nyman [Sun, 17 Jun 2018 17:54:41 +0000 (20:54 +0300)]
kernel/modules: add chaoskey module, hardware TRNG

Package the driver for Chaoskey, a USB dongle that provides a
True Random Number Generator (TRNG) and feeds entropy to kernel.

Chaoskey driver is included the upstream Linux sources, so
only packaging it is needed.

Run-tested with ipq806x/R7800 and mvebu/WRT3200ACM.

(Requires CONFIG_HW_RANDOM kernel option.)

Signed-off-by: Hannu Nyman <>
4 years agoinclude/ shorter version in Netgear factory header
Hannu Nyman [Sun, 17 Jun 2018 19:59:03 +0000 (22:59 +0300)]
include/ shorter version in Netgear factory header

Shorten the version string in Netgear factory image header in order
to enable u-boot TFTP recovery flash mode to work again.

Strip 'r7210-14cb05909a' into 'r7210' in the Netgear image header
by removing the hash (anything after "-").

Some Netgear routers have recently been unable to flash Openwrt
factory image with the TFTP recovery flash mode provided by Netgear
u-boot. That is due to over-long Openwrt version string overflowing
into the router type string in u-boot code. Modern git versions
produce 10-digit short hashes for the Openwrt main repo, and that
causes the version string to be too long in the image header,
breaking the image ID verification by the TFTP flash routine.

(Other option could be to force a shorter hash in scripts/,
but as the problem only concerns Netgear routers, let's patch just

More detailed explanations in FS#1583

Tested with WNDR3800

Signed-off-by: Hannu Nyman <>
4 years agoipq806x: D7800 only has a single sata port
John Crispin [Mon, 18 Jun 2018 16:52:28 +0000 (18:52 +0200)]
ipq806x: D7800 only has a single sata port

Signed-off-by: John Crispin <>
4 years agomips: fix dynamic ftrace
Vincent Wiemann [Sat, 9 Jun 2018 20:56:47 +0000 (22:56 +0200)]
mips: fix dynamic ftrace

The kernel patch *-mips_module_reloc.patch breaks dynamic ftrace as
dynamic ftrace depends on -mlong-calls.
Thus we always set -mlong-calls if the kernel is being
compiled with dynamic ftrace support.

Signed-off-by: Vincent Wiemann <>