18 months agoramips: add support for TP-Link MR6400 v5
Filip Moc [Tue, 24 Nov 2020 21:15:26 +0000 (22:15 +0100)]
ramips: add support for TP-Link MR6400 v5

TL-MR6400v5 is very similar to TL-MR6400v4. Main differences are:
  - smaller form factor
  - different LED GPIOs
  - different switch connections

You can flash via tftp recovery:
 - serve tftp-recovery image as /tp_recovery.bin on
 - connect to any ethernet port
 - power on the device while holding the reset button
 - wait at least 8 seconds before releasing reset button

Flashing via OEM web interface does not work.

LTE module does not support DHCP so it must be configured via QMI.

Hardware Specification (v5.0 EU):
 - SoC: MT7628NN
 - Flash: Winbond W25Q64JVS (8MiB)
 - RAM: ESMT M14D5121632A (64MiB)
 - Wireless: SoC platform only (2.4GHz b/g/n, 2x internal antenna)
 - Ethernet: 1NIC (4x100M)
 - WWAN: TP-LINK LTE MODULE (2x external detachable antenna)
 - Power: DC 9V 0.85A

Signed-off-by: Filip Moc <>
18 months agoath79: add support for Senao Engenius EAP300 v2
Michael Pratt [Thu, 5 Nov 2020 00:32:27 +0000 (19:32 -0500)]
ath79: add support for Senao Engenius EAP300 v2


Engenius EAP300 v2 is an indoor wireless access point with a
100/10-BaseT ethernet port, 2.4 GHz wireless, internal antennas,
and 802.3af PoE.


  - AR9341
  - 40 MHz reference clock
  - 16 MB FLASH MX25L12845EMI-10G
  - 64 MB RAM
  - UART at J1 (populated)
  - Ethernet port with POE
  - internal antennas
  - 3 LEDs, 1 button (power, eth, wlan) (reset)

**MAC addresses:**

  phy0  *:d3   art 0x1002 (label)
  eth0  *:d4   art 0x0/0x6


  - if you get Failsafe Mode from failed flash:
      only use it to flash Original firmware from Engenius
      or risk kernel loop or halt which requires serial cable

  Method 1: Firmware upgrade page:

  OEM webpage at
  username and password "admin"
  Navigate to "Firmware" page from left pane
  Click Browse and select the factory.bin image
  Upload and verify checksum
  Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

  After connecting to serial console and rebooting...
  Interrupt uboot with any key pressed rapidly
  execute `run failsafe_boot` OR `bootm 0x9fdf0000`
  wait a minute
  connect to ethernet and navigate to
  Select the factory.bin image and upload
  wait about 3 minutes

**Return to OEM:**

  If you have a serial cable, see Serial Failsafe instructions

  The Failsafe image is unique to Engenius boards.
  If the failsafe image is missing or damaged this will not work
  DO NOT downgrade to ar71xx this way, can cause kernel loop or halt

  The easiest way to return to the OEM software is the Failsafe image
  If you dont have a serial cable, you can ssh into openwrt and run

  `mtd -r erase fakeroot`

  Wait 3 minutes
  connect to ethernet and navigate to
  select OEM firmware image from Engenius and click upgrade

**TFTP recovery** (unstable / not reliable):

  rename initramfs to 'vmlinux-art-ramdisk'
  make available on TFTP server at
  power board while holding or pressing reset button repeatedly

  NOTE: for some Engenius boards TFTP is not reliable
  try setting MTU to 600 and try many times

**Format of OEM firmware image:**

  The OEM software of EAP300 v2 is a heavily modified version
  of Openwrt Kamikaze. One of the many modifications
  is to the sysupgrade program. Image verification is performed
  simply by the successful ungzip and untar of the supplied file
  and name check and header verification of the resulting contents.
  To form a factory.bin that is accepted by OEM Openwrt build,
  the kernel and rootfs must have specific names
  and begin with the respective headers (uImage, squashfs).
  Then the files must be tarballed and gzipped.
  The resulting binary is actually a tar.gz file in disguise.
  This can be verified by using binwalk on the OEM firmware images,
  ungzipping then untaring.

  The OEM upgrade script is at /etc/

  OKLI kernel loader is required because the OEM software
  expects the kernel size to be no greater than 1536k
  and otherwise the factory.bin upgrade procedure would
  overwrite part of the kernel when writing rootfs.

Signed-off-by: Michael Pratt <>
[clarify MAC address section, bump PKG_RELEASE for uboot-envtools]
Signed-off-by: Adrian Schmutzler <>
18 months agolantiq: clean up target/subtarget features
Rui Salvaterra [Wed, 25 Nov 2020 09:38:51 +0000 (09:38 +0000)]
lantiq: clean up target/subtarget features

The feature "squashfs" is defined for target and all subtargets
individually. Remove the redundant entries in the subtargets.

Signed-off-by: Rui Salvaterra <>
[split patch, adjust commit title/message]
Signed-off-by: Adrian Schmutzler <>
18 months agoapm821xx: clean up target/subtarget features
Rui Salvaterra [Wed, 25 Nov 2020 09:38:51 +0000 (09:38 +0000)]
apm821xx: clean up target/subtarget features

Move features common to all subtargets to the parent target.

Signed-off-by: Rui Salvaterra <>
[split patch to make it target-specific, adjust commit title/message]
Signed-off-by: Adrian Schmutzler <>
18 months agoramips: add license to TP-Link MR6400 v4's DTS
Filip Moc [Tue, 24 Nov 2020 21:27:44 +0000 (22:27 +0100)]
ramips: add license to TP-Link MR6400 v4's DTS

Signed-off-by: Filip Moc <>
18 months agolibusb-compat: remove
Rosen Penev [Wed, 25 Nov 2020 06:26:17 +0000 (22:26 -0800)]
libusb-compat: remove

No package in base relies on this library. This library will be moved
to packages where it is needed.

Signed-off-by: Rosen Penev <>
18 months agolinux-firmware: brcm: use RPI 4B NVRAM file
Álvaro Fernández Rojas [Wed, 25 Nov 2020 09:37:24 +0000 (10:37 +0100)]
linux-firmware: brcm: use RPI 4B NVRAM file

Use the dedicated RPI 4B NVRAM file introduced in 20191215.

Signed-off-by: Álvaro Fernández Rojas <>
18 months agoprereq-build: add python 3.9 support
Rosen Penev [Thu, 29 Oct 2020 07:12:16 +0000 (00:12 -0700)]
prereq-build: add python 3.9 support

Fixes unmet dependency issue.

Signed-off-by: Rosen Penev <>
18 months agocypress-nvram: add proper package conflicts
Álvaro Fernández Rojas [Wed, 25 Nov 2020 09:27:02 +0000 (10:27 +0100)]
cypress-nvram: add proper package conflicts

There are linux firmware packages for all RPIs NVRAMs.

Signed-off-by: Álvaro Fernández Rojas <>
18 months agocypress-firmware: add proper package conflicts
Álvaro Fernández Rojas [Wed, 25 Nov 2020 09:25:01 +0000 (10:25 +0100)]
cypress-firmware: add proper package conflicts

There are linux firmwares packages for 43362, 43430 and 43455 which shouldn't
be installed at the same time as Cypress firmwares.

Signed-off-by: Álvaro Fernández Rojas <>
18 months agoath10k-ct-firmware: add conflicts and better provides
Karel Kočí [Mon, 19 Oct 2020 10:32:49 +0000 (12:32 +0200)]
ath10k-ct-firmware: add conflicts and better provides

This expands packages to define not only provides but also conflicts.
These packages provides same files so they should specify conflicts.

Second expansion is that *-ct-htt and *-ct-full-htt firmwares can also
provide *-ct variant as that allows explicit dependency on CT variant
with various firmware modifications.

Signed-off-by: Karel Kočí <>
Signed-off-by: Álvaro Fernández Rojas <>
18 months agoexfat: update to 5.10.1
Rosen Penev [Thu, 15 Oct 2020 03:02:46 +0000 (20:02 -0700)]
exfat: update to 5.10.1

Remove tar hacks and use PKG_BUILD_DIR.

Added missing URL.


d5eb2e1 exfat: remove useless check in exfat_move_file()
8cb2bc3 exfat: use i_blocksize() to get blocksize
4cd0435 exfat: fix misspellings using codespell tool
485d677 exfat: fix use of uninitialized spinlock on error path
03b3db6 exfat: remove 'rwoffset' in exfat_inode_info
90797eb exfat: replace memcpy with structure assignment
d144149 exfat: remove useless directory scan in exfat_add_entry()
fc67230 exfat: eliminate dead code in exfat_find()
7c25c64 exfat: fix pointer error checking
bfea1fb exfat: retain 'VolumeFlags' properly

Signed-off-by: Rosen Penev <>
18 months agoopkg: purge package from cache on hash mismatch
Paul Spooren [Wed, 25 Nov 2020 08:06:37 +0000 (22:06 -1000)]
opkg: purge package from cache on hash mismatch

61b3c62 opkg_verify_integrity: better logging and error conditions
f73d42f download: purge cached packages that have incorrect checksum
1c1480e download: factor out the logic for building cache filenames
293b1ce libopkg: factor out checksum and size verification
a786e25 download: remove compatibility with old cache naming scheme

Signed-off-by: Paul Spooren <>
18 months agotcpdump: patch CVE-2020-8037
Jan Pavlinec [Wed, 25 Nov 2020 01:04:00 +0000 (02:04 +0100)]
tcpdump: patch CVE-2020-8037

This PR backports upstream fix for CVE-2020-8037.  This fix is only
relevant for tcpdump package, tcpdump-mini is not affeted by this issue.

Signed-off-by: Jan Pavlinec <>
[added missing commit description]
Signed-off-by: Petr Štetiar <>
18 months agoscripts: add
Paul Spooren [Mon, 16 Nov 2020 19:26:02 +0000 (09:26 -1000)]
scripts: add

As package size changes are a continuous topic on the mailing list this
scripts helps developers to compare their local package modifications
against latest upstream.

The script downloads the latest package indexes based on env variables
or the `.config` file. The script compares the actual installed size
(data.tar.gz) or the IPK package size.

An example output is found below:

user@dawn:~/src/openwrt/openwrt$ ./scripts/
Compare packages of ath79/tiny/mips_24kc:
dropbear busybox iw ubus

Checking configuration difference
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   554  100   554    0     0    336      0  0:00:01  0:00:01 --:--:--   336

 --- start config diff ---
--- /tmp/config.DDjwVh-LOCAL 2020-11-23 09:08:28.913203068 -1000
+++ /tmp/config.DDjwVh-UPSTREAM 2020-11-23 09:08:36.369240887 -1000
@@ -1,5 +1,9 @@
--- 8< ---
 --- end config diff ---

Checking installed size

Fetching latest package indexes...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 80634  100 80634    0     0  33499      0  0:00:02  0:00:02 --:--:-- 33485
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 54082  100 54082    0     0  24252      0  0:00:02  0:00:02 --:--:-- 24252

Comparing package sizes...
Change  Local Remote  Package
+271 51386 51115 base-files
+123 705241 705118 bnx2-firmware
+86 17209 17123 fstools
+22 47989 47967 procd
+21 208311 208290 busybox
+19 67181 67162 netifd


I plan to integrate this script into the CI so we have a summary how
sizes change over different architectures.

Signed-off-by: Paul Spooren <>
18 months agoimagebuilder: fix partition signature
Matthew Gyurgyik [Fri, 13 Nov 2020 19:21:29 +0000 (11:21 -0800)]
imagebuilder: fix partition signature

When building images with the imagebuilder, the partition signature
never changes. The signature is generated by hashing SOURCE_DATE_EPOCH
and LINUX_VERMAGIC which are undefined. Prepopulate these variables, as
done by the SDK.

Signed-off-by: Matthew Gyurgyik <>
18 months agoath10k-ct: update to latest version
Álvaro Fernández Rojas [Mon, 23 Nov 2020 14:09:45 +0000 (15:09 +0100)]
ath10k-ct: update to latest version

1d28d17 ath10k-ct: Fix RSSI reporting for wave-1 firmware.
0c2949e ath10k-ct: fwcfg allows configuring dma-burst setting.
13319ff ath10k-ct: stable patches, debugfs crashdump, 5.8 driver

Signed-off-by: Álvaro Fernández Rojas <>
18 months agouqmi: set plmn only if necessary
Martin Schiller [Wed, 28 Aug 2019 05:24:33 +0000 (07:24 +0200)]
uqmi: set plmn only if necessary

Setting the plmn to '0' (auto) will implicitly lead to a (delayed)
network re-registration, which could further lead to some timing
related issues in the qmi proto handler.

On the other hand, if you switch back from manual plmn selection
to auto mode you have to set it to '0', because this setting is
permanently "saved" in the wwan module.

If plmn is configured, check if it's already set euqally in the module.
If so, do nothing. Otherwise set it.

Signed-off-by: Martin Schiller <>
Signed-off-by: Daniel Golle <>
18 months agotreewide: update email address of Tomasz Maciej Nowak
Tomasz Maciej Nowak [Fri, 20 Nov 2020 18:46:35 +0000 (19:46 +0100)]
treewide: update email address of Tomasz Maciej Nowak

Replace my email address.

I'm still available at the old address.

Signed-off-by: Tomasz Maciej Nowak <>
[rephrase commit title/message]
Signed-off-by: Adrian Schmutzler <>
18 months agokernel: bump 5.4 to 5.4.79
John Audia [Thu, 19 Nov 2020 15:30:16 +0000 (10:30 -0500)]
kernel: bump 5.4 to 5.4.79

Manually rebased patches:

Removed since could be reverse-applied by quilt and found to be included upstream:

All modifications made by

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <>
[refresh altered targets after rebase]
Signed-off-by: Adrian Schmutzler <>
18 months agoath79: move device specific nodes to DTS files for Devolo 1xxx
Yanase Yuki [Tue, 24 Nov 2020 03:45:09 +0000 (12:45 +0900)]
ath79: move device specific nodes to DTS files for Devolo 1xxx

qca9558_devolo_dvl1xxx.dtsi contains device specific nodes which
are inherited for some DTS files and overwritten for others.

This is considered confusing, so move the relevant nodes/properties
to the devices and only keep the shared stuff in the DTSI.

Signed-off-by: Yanase Yuki <>
[clarify commit title/message, move &gmac_config in DTS]
Signed-off-by: Adrian Schmutzler <>
19 months agoath79: support for TP-Link EAP225 v3
Sander Vanheule [Fri, 10 Jul 2020 11:41:21 +0000 (13:41 +0200)]
ath79: support for TP-Link EAP225 v3

TP-Link EAP225 v3 is an AC1350 (802.11ac Wave-2) ceiling mount access
point. Serial port access for debricking requires fine soldering.

Device specifications:
* SoC: QCA9563 @ 775MHz
* RAM: 128MiB DDR2
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (SoC): b/g/n, 3x3
* Wireless 5Ghz (QCA9886): a/n/ac, 2x2 MU-MINO
* Ethernet (AR8033): 1× 1GbE, 802.3at PoE

Flashing instructions:
* ssh into target device and run `cliclientd stopcs`
* Upgrade with factory image via web interface

* Serial port can be soldered on PCB J3 (1: TXD, 2: RXD, 3: GND, 4: VCC)
    * Bridge unpopulated resistors R225 (TXD) and R237 (RXD).
      Do NOT bridge R230.
    * Use 3.3V, 115200 baud, 8n1
* Interrupt bootloader by holding CTRL+B during boot
* tftp initramfs to flash via LuCI web interface
    setenv ipaddr # default, change as required
    setenv serverip # default, change as required
    tftp 0x80800000 initramfs.bin
    bootelf $fileaddr

MAC addresses:
MAC address (as on device label) is stored in device info partition at
an offset of 8 bytes. ath9k device has same address as ethernet, ath10k
uses address incremented by 1.
From OEM boot log:

    Using interface ath0 with hwaddr b0:...:3e and ssid "..."
    Using interface ath10 with hwaddr b0:...:3f and ssid "..."

Tested by forum user blinkstar88

Signed-off-by: Sander Vanheule <>
19 months agoath79: support for TP-Link EAP225-Outdoor v1
Sander Vanheule [Tue, 7 Jul 2020 16:04:37 +0000 (18:04 +0200)]
ath79: support for TP-Link EAP225-Outdoor v1

TP-Link EAP225-Outdoor v1 is an AC1200 (802.11ac Wave-2) pole or wall
mount access point. Debricking requires access to the serial port, which
is non-trivial.

Device specifications:
* SoC: QCA9563 @ 775MHz
* Memory: 128MiB DDR2
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (SoC): b/g/n 2x2
* Wireless 5GHz (QCA9886): a/n/ac 2x2 MU-MIMO
* Ethernet (AR8033): 1× 1GbE, PoE

Flashing instructions:
* ssh into target device with recent (>= v1.6.0) firmware
* run `cliclientd stopcs` on target device
* upload factory image via web interface

To recover the device, you need access to the serial port. This requires
fine soldering to test points, or the use of probe pins.
* Open the case and solder wires to the test points: RXD, TXD and TPGND4
  * Use a 3.3V UART, 115200 baud, 8n1
* Interrupt bootloader by holding ctrl+B during boot
* upload initramfs via built-in tftp client and perform sysupgrade
    setenv ipaddr # default, change as required
    setenv serverip # default, change as required
    tftp 0x80800000 initramfs.bin
    bootelf $fileaddr

MAC addresses:
MAC address (as on device label) is stored in device info partition at
an offset of 8 bytes. ath9k device has same address as ethernet, ath10k
uses address incremented by 1.
From stock ifconfig:

    ath0      Link encap:Ethernet  HWaddr D8:...:2E
    ath10     Link encap:Ethernet  HWaddr D8:...:2F
    br0       Link encap:Ethernet  HWaddr D8:...:2E
    eth0      Link encap:Ethernet  HWaddr D8:...:2E

Tested by forum user PolynomialDivision on firmware v1.7.0.
UART access tested by forum user arinc9.

Signed-off-by: Sander Vanheule <>
19 months agoath79: support for TP-Link EAP245 v1
Sander Vanheule [Fri, 17 Jul 2020 10:06:03 +0000 (12:06 +0200)]
ath79: support for TP-Link EAP245 v1

TP-Link EAP245 v1 is an AC1750 (802.11ac Wave-1) ceiling mount access point.

Device specifications:
* SoC: QCA9563 @ 775MHz
* RAM: 128MiB DDR2
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (SoC): b/g/n, 3x3
* Wireless 5Ghz (QCA9880): a/n/ac, 3x3
* Ethernet (AR8033): 1× 1GbE, 802.3at PoE

Flashing instructions:
* Upgrade the device to firmware v1.4.0 if necessary
* Exploit the user management page in the web interface to start telnetd
  by changing the username to `;/usr/sbin/telnetd -l/bin/sh&`.
* Immediately change the malformed username back to something valid
  (e.g. 'admin') to make ssh work again.
* Use the root shell via telnet to make /tmp world writeable (chmod 777)
* Extract /usr/bin/uclited from the device via ssh and apply the binary
  patch listed below. The patch is required to prevent `uclited -u` in
  the last step from crashing.
* Copy the patched uclited programme back to the device at /tmp/uclited
  (via ssh)
* Upload the factory image to /tmp/upgrade.bin (via ssh)
* Run `chmod +x /tmp/uclited && /tmp/uclited -u` to install OpenWrt.

    --- xxd uclited
    +++ xxd uclited-patched
    @@ -53796,7 +53796,7 @@
     000d2240: 8c44 0000 0320 f809 0000 0000 8fbc 0010  .D... ..........
     000d2250: 8fa6 0a4c 02c0 2821 8f82 87b8 0000 0000  ...L..(!........
    -000d2260: 8c44 0000 0c13 45e0 27a7 0018 8fbc 0010  .D....E.'.......
    +000d2260: 8c44 0000 2402 0000 0000 0000 8fbc 0010  .D..$...........
     000d2270: 1040 001d 0000 1821 8f99 8374 3c04 0058  .@.....!...t<..X
     000d2280: 3c05 0056 2484 a898 24a5 9a30 0320 f809  <..V$...$..0. ..

* Serial port can be soldered on PCB J3 (1: TXD, 2: RXD, 3: GND, 4: VCC)
    * Bridge unpopulated resistors R225 (TXD) and R237 (RXD).
      Do NOT bridge R230.
    * Use 3.3V, 115200 baud, 8n1
* Interrupt bootloader by holding CTRL+B during boot
* tftp initramfs to flash via the LuCI web interface
    setenv ipaddr # default, change as required
    setenv serverip # default, change as required
    tftp 0x80800000 initramfs.bin
    bootelf $fileaddr

Tested on the EAP245 v1 running the latest firmware (v1.4.0). The binary
patch might not apply to uclited from other firmware versions.

EAP245 v1 device support was originally developed and maintained by
Julien Dusser out-of-tree. This patch and "ath79: prepare for 1-port
TP-Link EAP2x5 devices" are based on that work.

Signed-off-by: Sander Vanheule <>
19 months agoath79: prepare for 1-port TP-Link EAP2x5 devices
Sander Vanheule [Thu, 16 Jul 2020 19:27:06 +0000 (21:27 +0200)]
ath79: prepare for 1-port TP-Link EAP2x5 devices

TP-Link has developed a number of access points based on the AP152
reference board. In the EAP-series of 802.11ac access points, this
includes the following devices with one ethernet port:
* EAP225 v1/v2
* EAP225 v3
* EAP225-Outdoor v1
* EAP245 v1

Since the only differences between these devices are the ath10k wireless
radios and LEDs, a common base is provided for the overlapping support

Hardware commonalities:
* SoC: QCA9563-AL3A MIPS 74kc v5.0 @ 775MHz, AHB @ 258MHz
* RAM: 128MiB DDR2 @ 650MHz
* Flash: 16MiB SPI NOR
* Wi-Fi 2.4GHz: provided by SoC
* Wi-Fi 5Ghz: ath10k chip on PCIe
* Ethernet: AR8033-AL1A, one 1GbE port (802.3at PoE)

Signed-off-by: Sander Vanheule <>
19 months agoath79: add QCA956x SERDES init workaround
Julien Dusser [Wed, 1 Jul 2020 21:56:01 +0000 (23:56 +0200)]
ath79: add QCA956x SERDES init workaround

This commit add a workaround for non working SGMII link observed on some
QCA956x SoCs. The workaround originates part from the U-Boot source code
from QCA, part from the implementation from TP-Link found in the GPL
tarball for the EAP245v1.

Extends commit 0d416a8d3b990e3b78628f0e7546527709c877f7 for QCA956x.
Note that reset is the same on QCA955x and QCA956x, same register offset
and values.

Auto calibration is done on u-boot, but always fall back to default value
0x7. Add a DTS entry serdes-cal in case a device require another value.

Signed-off-by: Julien Dusser <>
[Sander Vanheule:
    Minor code style fixes,
    Remove hunk adding qca956x-serdes-fixup to a missing DTS,
    Remove variable err that was only assigned,
    Rename function to sgmii_serdes_init,
    Lower priority of serdes call message to pr_debug]
Signed-off-by: Sander Vanheule <>
19 months agoath79: ensure QCA956x gmac0 mux selects sgmii
Sander Vanheule [Sun, 19 Jul 2020 18:01:48 +0000 (20:01 +0200)]
ath79: ensure QCA956x gmac0 mux selects sgmii

Some bootloaders do not set up gmac0 properly, leaving it disconnected
from the sgmii interface. If the user specificies phy-mode sgmii, then
use the gmac-config/device node to ensure the mux is configured

Signed-off-by: Sander Vanheule <>
19 months agomvebu: add initial support for Globalscale ESPRESSObin-Ultra
Vladimir Vid [Mon, 1 Jun 2020 15:51:37 +0000 (17:51 +0200)]
mvebu: add initial support for Globalscale ESPRESSObin-Ultra

This patch adds support for Globalscale ESPRESSObin-Ultra. Device uses
the same Armada-3720 SoC with extended hardware support.

- SoC: Armada-3720
- RAM: 1 GB DDR4
- Flash: 4MB SPI NOR (mx25u3235f) + 8 GB eMMC
- Ethernet: Topaz 6341 88e6341 (4x GB LAN + 1x WAN with 30W PoE)
- WiFI: 2x2 802.11ac Wi-Fi marvell (88w8997 PCIe+USB)
- 1x USB 2.0 port
- 1x USB 3.0 port
- 1x microSD slot
- 1x mini-PCIe slot (USB [with nano-sim slot])
- 1x mini-USB debug UART
- 1x RTC Clock and battery
- 1x reset button
- 1x power button
- 4x LED (RGBY)
- Optional 1x M.2 2280 slot

** Installation **

Copy dtb from build_dir to bin/ and run tftpserver there:
$ cp ./build_dir/target-aarch64_cortex-a53_musl/linux-mvebu_cortexa53/
$ in.tftpd -L -s bin/targets/mvebu/cortexa53/

Connect to the device UART via microUSB port on the back side and power on the device.

Power on the device and hit any key to stop the autoboot.

Set serverip (host IP) and ipaddr (any free IP address on the same subnet), e.g:
$ setenv serverip # Host
$ setenv ipaddr # Device

Ping server to confirm network is working:
$ ping $serverip
Using neta@30000 device
host is alive

Tftpboot the firmware:
$ tftpboot $kernel_addr_r openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-initramfs-kernel.bin
$ tftpboot $fdt_addr_r armada-3720-espressobin-ultra.dtb

Set the console and boot the image:
$ setenv bootargs $console
$ booti $kernel_addr_r - $fdt_addr_r

Once the initramfs is booted, transfer openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img.gz
to /tmp dir on the device.

Gunzip and dd the image:
$ gunzip /tmp/openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img.gz
$ dd if=/tmp/openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img of=/dev/mmcblk0 && sync

Reboot the device.

Signed-off-by: Vladimir Vid <>
19 months agohostapd: fix patch offset
Leon M. George [Thu, 8 Oct 2020 08:47:16 +0000 (10:47 +0200)]
hostapd: fix patch offset

Fixes the offset of the patch added in 93bbd998aa696a
  ("hostapd: enter DFS state if no available channel is found").

Signed-off-by: Leon M. George <>
19 months agolayerscape: enable spi-uart in LS1012A-FRDM
Pawel Dembicki [Wed, 4 Nov 2020 09:16:31 +0000 (10:16 +0100)]
layerscape: enable spi-uart in LS1012A-FRDM

This patch add missing support of SC16IS740 serial controller, installed
on LS1012A-FRDM board.

It was required to change RCW bits, because SPI was disabled by default.

Signed-off-by: Pawel Dembicki <>
19 months agolayerscape: add i2c peripherials on LS1012A-RDB
Pawel Dembicki [Tue, 27 Oct 2020 08:52:31 +0000 (09:52 +0100)]
layerscape: add i2c peripherials on LS1012A-RDB

LS1012A-RDB equipped in some i2c devices:
  - 3x GPIO Expander: PCAL9555A (NXP)
  - Gyro: FXAS21002 (NXP)
  - Accelerometer: FXOS8700 (NXP)
  - Current & Power Monitor: INA220 (TI)

This patch enables i2c peripherials installed on LS1012A-RDB.

Signed-off-by: Pawel Dembicki <>
19 months agokernel: iio: add fxas21002c driver support
Pawel Dembicki [Tue, 27 Oct 2020 08:48:04 +0000 (09:48 +0100)]
kernel: iio: add fxas21002c driver support

This patch adds kernel modules for Freescale FXAS21002C 3-axis gyro driver.

Signed-off-by: Pawel Dembicki <>
19 months agolayerscape: make initramfs kernel fit packed
Pawel Dembicki [Mon, 26 Oct 2020 09:41:36 +0000 (10:41 +0100)]
layerscape: make initramfs kernel fit packed

This will make developing process easier, because dtb will be included
into image.
Not need to enable initramfs image by default.

Signed-off-by: Pawel Dembicki <>
19 months agoramips: phy: at803x: Select SFP interface mode that both sides supports.
René van Dorst [Fri, 13 Nov 2020 15:45:54 +0000 (16:45 +0100)]
ramips: phy: at803x: Select SFP interface mode that both sides supports.

Currently sfp_select_interface() return the fastest interface that
the sfp modules supports even if the phy don't support that mode.

For example an GPON module that support both 2500basex and 1000basex.
Currently sfp_select_interface() picks 2500basex instead of 1000basex.

So limit the interfaces which both sides supports before calling
sfp_select_interface() or return an error if we don't have match.

Reviewed-by: John Thomson <>
Tested-by: Braihan Cantera <> [MikroTik RB760iGS + Nokia G-010S-A 3FE46541AA SFP]
Tested-by: John Thomson <> [Mikrotik rb760igs + SFP SM/LC, SFP base1000T, SFP+ passive DAC]
Signed-off-by: René van Dorst <>
19 months agolinux-firmware: update to 20201118
John Audia [Sat, 21 Nov 2020 13:53:06 +0000 (08:53 -0500)]
linux-firmware: update to 20201118

git log --pretty=oneline --abbrev-commit 20201022..20201118
2ea8667 (tag: 20201118) rtlwifi: v88.2 firmware files for RTL8192CU
e850cf3 Merge into main
65370db rtw88: RTL8822C: Update firmware to v9.9.4
e371b7c Revert "rtw88: RTL8822C: Update firmware to v9.9.4"
51d2c81 vpdma: Move firmware to ti directory
d7a24c9 Merge branch 'master' of into main
9ee1543 Merge branch 'master' of into main
3bcc4c1 amdgpu: update picasso VCN firmware
b6b4542 amdgpu: update raven2 VCN firmware
79aa335 amdgpu: update raven VCN firmware
c93834e rtw88: RTL8822C: Update firmware to v9.9.4
3ef6c93 rtl_bt: Update RTL8822C BT(USB I/F) FW to 0x099A_281A
b503c96 Merge branch 'ath10k-20201023' of git:// into main
463fdea QCA: Update Bluetooth firmware for QCA6390
8a46c32 qcom : updated venus firmware files for v5.4
d7793e5 QCA : Fixed BT SSR due to command timeout / IO fatal error
d842d8c ath11k: QCA6390 hw2.0: add to WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1
8fb1a6e ath11k: QCA6390 hw2.0: add board-2.bin
34cb5fc ath11k: IPQ8074 hw2.0: add to WLAN.HK.
c0a8efd ath11k: IPQ8074 hw2.0: add board-2.bin
ac7f5e9 ath11k: IPQ6018 hw1.0: add to WLAN.HK.
2594e51 ath11k: IPQ6018 hw1.0: add board-2.bin
d8f10d4 ath10k: QCA6174 hw3.0: add firmware-sdio-6.bin version WLAN.RMH.4.4.1-00077
6652297 ath10k: QCA9984 hw1.0: update firmware-5.bin to 10.4-
36059aa ath10k: QCA9888 hw2.0: update firmware-5.bin to 10.4-
1e5629d ath10k: QCA6174 hw3.0: update board-2.bin
e315d1a ath10k: QCA6174 hw3.0: update firmware-6.bin to WLAN.RM.4.4.1-00157-QCARMSWPZ-1

Signed-off-by: John Audia <>
19 months agokernel: mtd: parser: cmdline: Fix parsing of part-names with colons
Sven Eckelmann [Sun, 22 Nov 2020 00:17:35 +0000 (01:17 +0100)]
kernel: mtd: parser: cmdline: Fix parsing of part-names with colons

Some devices (especially QCA ones) are already using hardcoded partition
names with colons in it. The OpenMesh A62 for example provides following
mtd relevant information via cmdline:

  root=31:11 mtdparts=spi0.0:256k(0:SBL1),128k(0:MIBIB),384k(0:QSEE),64k(0:CDT),64k(0:DDRPARAMS),64k(0:APPSBLENV),512k(0:APPSBL),64k(0:ART),64k(custom),64k(0:KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) rootfsname=rootfs rootwait

The change to split only on the last colon between mtd-id and partitions
will cause newpart to see following string for the first partition:


Such a partition list cannot be parsed and thus the device fails to boot.

Avoid this behavior by making sure that the start of the first part-name
("(") will also be the last byte the mtd-id split algorithm is using for
its colon search.

Fixes: d6a9a92e3217 ("kernel: bump 5.4 to 5.4.69")
Signed-off-by: Sven Eckelmann <>
19 months agoipq40xx: DTS style updates for OpenMesh devices
Sven Eckelmann [Sun, 22 Nov 2020 19:09:27 +0000 (20:09 +0100)]
ipq40xx: DTS style updates for OpenMesh devices

The OpenMesh related files were not updated since a while and the new
coding style requirements weren't integrated. This can cause problems
for new devices when an author uses these files as starting point.

* use SPDX-License-Identifiers instead of full license texts
* drop linux,default-trigger with value default-off for LEDs
* led nodes with label "abc:xyz" should have name "xyz_abc"
* led DT labels for "xyz_abc" should be "led_xyz_abc"
* "m25p80@0" flash node should be renamed to "flash@0"
* drop unnecessary empty lines

Signed-off-by: Sven Eckelmann <>
[minor commit title and message adjustments]
Signed-off-by: Adrian Schmutzler <>
19 months agoath79: move the squashfs feature to the parent target
Rui Salvaterra [Mon, 23 Nov 2020 00:28:34 +0000 (00:28 +0000)]
ath79: move the squashfs feature to the parent target

All subtargets define it. Move it to the parent target and remove
it from all subtargets.

Signed-off-by: Rui Salvaterra <>
19 months agonetifd: update to the latest version
Felix Fietkau [Mon, 23 Nov 2020 11:51:58 +0000 (12:51 +0100)]
netifd: update to the latest version

213748a9bcd9 system-linux: implement full device present state management for force-external devices
3abe1fc87151 system-linux: add retry for adding member devices to a bridge

Signed-off-by: Felix Fietkau <>
19 months agoimagebuilder: fix main entry makefile
Paulo Machado [Sun, 22 Nov 2020 14:23:27 +0000 (14:23 +0000)]
imagebuilder: fix main entry makefile

Remove a syntax error from ImageBuider Makefile

Acked-by: Paul Spooren <>
Signed-off-by: Paulo Machado <>
19 months agohostapd: enable the epoll-based event loop
Rui Salvaterra [Mon, 2 Nov 2020 10:35:20 +0000 (10:35 +0000)]
hostapd: enable the epoll-based event loop

Hostapd supports epoll() since 2014. Let's enable it for better performance.

Signed-off-by: Rui Salvaterra <>
19 months agouhttpd: update to git HEAD
Daniel Golle [Mon, 23 Nov 2020 02:05:32 +0000 (02:05 +0000)]
uhttpd: update to git HEAD

 f53a639 ubus: fix uhttpd crash

Signed-off-by: Daniel Golle <>
19 months agoramips: add support for TP-Link MR6400 v4
Filip Moc [Wed, 18 Nov 2020 19:38:21 +0000 (20:38 +0100)]
ramips: add support for TP-Link MR6400 v4

You can flash via tftp recovery:
 - serve tftp-recovery image as /tp_recovery.bin on
 - connect to any ethernet port
 - power on the device while holding the reset button
 - wait at least 8 seconds before releasing reset button

Flashing via OEM web interface does not work.

LTE module does not support DHCP so it must be configured via QMI.

Hardware Specification (v4.0 EU):
 - SoC: MT7628NN
 - Flash: Winbond W25Q64JVS (8MiB)
 - RAM: ESMT M14D5121632A (64MiB)
 - Wireless: SoC platform only (2.4GHz b/g/n, 2x internal antenna)
 - Ethernet: 1NIC (4x100M)
 - WWAN: TP-LINK LTE MODULE (2x external detachable antenna)
 - Power: DC 9V 0.85A

Signed-off-by: Filip Moc <>
19 months agogeneric: add DTR quirk patch for MR400 LTE
Filip Moc [Fri, 20 Nov 2020 08:20:53 +0000 (09:20 +0100)]
generic: add DTR quirk patch for MR400 LTE

This is required for LTE module MR400 in TL-MR6400 v4.

Signed-off-by: Filip Moc <>
19 months agoprocd: update to git HEAD
Daniel Golle [Mon, 23 Nov 2020 00:32:48 +0000 (00:32 +0000)]
procd: update to git HEAD

 d4d78db uxc: also delete procd runtime state on 'delete'
 e935c0c jail: add 'debug' extern variable to preload_seccomp

Signed-off-by: Daniel Golle <>
19 months agouqmi: update to git HEAD
Daniel Golle [Sun, 22 Nov 2020 21:54:53 +0000 (21:54 +0000)]
uqmi: update to git HEAD

 65796a6 nas: add --get-plmn
 0a19b5b uqmi: add timeout parameter

Signed-off-by: Daniel Golle <>
19 months agouqmi: set device-operating-mode to online
Filip Moc [Wed, 18 Nov 2020 19:37:17 +0000 (20:37 +0100)]
uqmi: set device-operating-mode to online

This is required for LTE module MR400 (in TL-MR6400 v4).
Otherwise LTE module won't register to GSM network.

Signed-off-by: Filip Moc <>
19 months agouqmi: add support for IPv4 autoconf from QMI
Filip Moc [Wed, 18 Nov 2020 19:36:12 +0000 (20:36 +0100)]
uqmi: add support for IPv4 autoconf from QMI

There already was an option for autoconfiguring IPv4 from QMI but this
was removed by commit 3b9b963e6e08 ("uqmi: always use DHCP for IPv4").

DHCP does not work on MR400 LTE module (in TL-MR6400 v4) so let's readd
support for IPv4 autoconf from QMI but this time allow to configure this
for IPv4 and IPv6 independently and keep DHCP default on IPv4.

Signed-off-by: Filip Moc <>
19 months agouqmi: wait forever registration if timeout set to 0
Thomas Richard [Thu, 8 Oct 2020 12:35:24 +0000 (14:35 +0200)]
uqmi: wait forever registration if timeout set to 0

Give possibility to wait forever the registration by setting timeout
option to 0.

No timeout can be useful if the interface starts whereas no network is
available, because at the end of timeout the interface will be stopped
and never restarted.

Signed-off-by: Thomas Richard <>
19 months agoRevert "refpolicy: add variant that builds modular policy"
Daniel Golle [Sun, 22 Nov 2020 15:20:35 +0000 (15:20 +0000)]
Revert "refpolicy: add variant that builds modular policy"

This reverts commit 9eb9943f82e0b2d5e32ffe1c63f5a82caca5094d.
Building the 'modular' variant requires 'semodule_package' from
'selinux-python' to be installed on the buildhost.
Apart from that, this change also broke the monolithic refpolicy
'targeted' build.

Signed-off-by: Daniel Golle <>
19 months agoprocd: update to git HEAD
Daniel Golle [Sun, 22 Nov 2020 03:21:51 +0000 (03:21 +0000)]
procd: update to git HEAD

 04a2edd uxc: make force-delete kill container process
 be6da62 seccomp: silence 'unknown syscall' warnings
 b22e625 jail: cgroup hack: rewrite cgroup -> cgroup2
 df7fa7b uxc: fix incomplete commit

Signed-off-by: Daniel Golle <>
19 months agotools/mpc: update to 1.2.1
Hannu Nyman [Sat, 21 Nov 2020 11:33:32 +0000 (13:33 +0200)]
tools/mpc: update to 1.2.1

Update mpc to 1.2.1
  Bug fixes:
    Fix an incompatibility problem with GMP 6.0 and before.
    Fix an intermediate overflow in asin.

Signed-off-by: Hannu Nyman <>
19 months agotools/gmp: update to 6.2.1
Hannu Nyman [Sat, 21 Nov 2020 11:36:15 +0000 (13:36 +0200)]
tools/gmp: update to 6.2.1

Update gmp to 6.2.1

Release notes:

Signed-off-by: Hannu Nyman <>
19 months agotools/bison: update to 3.7.4
Hannu Nyman [Sat, 21 Nov 2020 11:30:34 +0000 (13:30 +0200)]
tools/bison: update to 3.7.4

Update bison to 3.7.4

Release notes:

Signed-off-by: Hannu Nyman <>
19 months agotools/cmake: update to 3.18.5
Hannu Nyman [Sat, 21 Nov 2020 11:39:01 +0000 (13:39 +0200)]
tools/cmake: update to 3.18.5

Update cmake to 3.18.5

Signed-off-by: Hannu Nyman <>
19 months agotools/expat: update to 2.2.10
Hannu Nyman [Sat, 21 Nov 2020 12:16:05 +0000 (14:16 +0200)]
tools/expat: update to 2.2.10

Update expat to 2.2.10

Signed-off-by: Hannu Nyman <>
19 months agonetifd: update to the latest version
Felix Fietkau [Sat, 21 Nov 2020 09:23:54 +0000 (10:23 +0100)]
netifd: update to the latest version

351d690f1a09 wireless: fix passing bridge name for vlan hotplug pass-through
c1c2728946b5 config: initialize bridge and bridge vlans before other devices
5e18d5b9ccb1 interface: do not force link-ext hotplug interfaces to present by default
4544f026bb09 bridge-vlan: add support for defining aliases for vlan ids

Signed-off-by: Felix Fietkau <>
19 months agomusl: handle wcsnrtombs destination buffer overflow (CVE-2020-28928)
Petr Štetiar [Fri, 20 Nov 2020 12:13:27 +0000 (13:13 +0100)]
musl: handle wcsnrtombs destination buffer overflow (CVE-2020-28928)

The wcsnrtombs function in all musl libc versions up through 1.2.1 has
been found to have multiple bugs in handling of destination buffer
size when limiting the input character count, which can lead to
infinite loop with no forward progress (no overflow) or writing past
the end of the destination buffera.

This function is not used internally in musl and is not widely used,
but does appear in some applications. The non-input-limiting form
wcsrtombs is not affected.

All users of musl 1.2.1 and prior versions should apply the attached
patch, which replaces the overly complex and erroneous implementation.
The upcoming 1.2.2 release will adopt this new implementation.

Signed-off-by: Petr Štetiar <>
19 months agoscripts: retry download using filename
David Bauer [Wed, 18 Nov 2020 15:02:23 +0000 (16:02 +0100)]
scripts: retry download using filename

With this commit, the download script will try downloading source files
using the filename instead of the url-filename in case the previous
download attempt using the url-filename failed.

This is required, as the OpenWrt sources mirrors serve files using the
filename files might be renamed to after downloading. If the original
mirror for a file where url-filename and filename do not match goes
down, the download failed prior to this patch.

Further improvement can be done by performing this only for the
OpenWrt sources mirrors.

Signed-off-by: David Bauer <>
19 months agoimagebuilder: add package signature verification
Paul Spooren [Mon, 2 Nov 2020 22:15:05 +0000 (12:15 -1000)]
imagebuilder: add package signature verification

The ImageBuilder downloads pre-built packages and adds them to images.
This process uses `opkg` which has the capability to verify package list
signatures via `usign`, as enabled per default on running OpenWrt

Until now this was disabled for ImageBuilders because neither the `opkg`
keys nor the `opkg-add` script was present during first packagelist

To harden the ImageBuilder against *drive-by-download-attacks* both keys
and verification script are added to the ImageBuilder allowing `opkg` to
verify downloaded package indices.

This commit adds `opkg-add` to the ImageBuilder scripts folder. The keys
folder is added to ImageBuilder $TOPDIR to have an obvious place for users to
store their own keys. The `option check_signature` is appended to the
repositories.conf file. All of the above only happens if the Buildbot
runs with the SIGNATURE_CHECK option.

The keys stored in the ImageBuilder keys/ are the same as included in
the openwrt-keyring package. To avoid the chicken-egg problem of
downloading and verifying a package, containing signing keys, the keys
are added during the ImageBuilder generation. They are same as in
shipped images (stored at `/etc/opkg/keys/`).

To allow a local package feed in which the user can add additional
packages, a local set of `usign` and `ucert` keys is generated, same as
building OpenWrt from source. The private key signs the local repository
inside the packages/ folder. The local public key is added to the keys/
folder to be considered by `opkg` when updating repositories. This way a
local package feed can be modified while requiring `opkg` to check
signatures for remote feed, making HTTPS optional.

The new option `ADD_LOCAL_KEY` allows to add the local key inside the
created images, adding the advantage that sysupgrades can validate the
ImageBuilders local key.

Signed-off-by: Paul Spooren <>
19 months agobuild: create $(PKG_SYMVERS_DIR) if non-existent
Sebastian Kemper [Wed, 18 Nov 2020 21:58:58 +0000 (22:58 +0100)]
build: create $(PKG_SYMVERS_DIR) if non-existent

Commit 5d76065 moved the creation of the symvers directory to
include/ This is fine when building from scratch. But
when unpacking an SDK the directory doesn't exist and because the kernel
won't be built (again) this directory will not be created by the build
system, causing build failure if make tries to copy files into it.

This moves the creation of the symvers directory back into
include/ so that the directory is created in any case.

Signed-off-by: Sebastian Kemper <>
19 months agobase-files: generated named bridge-vlan sections
John Crispin [Thu, 19 Nov 2020 14:08:33 +0000 (15:08 +0100)]
base-files: generated named bridge-vlan sections

Signed-off-by: John Crispin <>
19 months agoramips: add support for the Hak5 WiFi Pineapple Mark 7
Marc Egerton [Fri, 2 Oct 2020 17:30:59 +0000 (18:30 +0100)]
ramips: add support for the Hak5 WiFi Pineapple Mark 7

This patch adds support for the WiFi Pineapple Mark 7, a wireless
penetration testing tool.

    * SoC: MediaTek MT7628 (580MHz)
    * RAM: 256MiB (DDR2)
    * Storage 1: 32MiB NOR (SPI)
    * Storage 2: 2GB eMMC
    * Wireless 1: 802.11b/g/n 2.4GHz (Built In)
    * Wireless 2: 802.11b/g/n 2.4GHz (MT7601)
    * Wireless 3: 802.11b/g/n 2.4GHz (MT7601)
    * USB: 1x USB Type-A 2.0 Host Port
    * Ethernet: 1x USB Type-C AX88772C Ethernet
    * UART: 57600 8N1 on PCB
    * Inputs: 1x Reset Button
    * Outputs: 1x RGB LED
    * FCCID: 2AA52MK7

Flash Instructions:
    Original firmware is based on OpenWRT.
    Use sysupgrade via SSH to flash.

Signed-off-by: Marc Egerton <>
[ set only required/used gpio groups to gpio function]
Signed-off-by: Piotr Dymacz <>
19 months agoath79: fix reset button support on 8devices Lima
Piotr Dymacz [Mon, 16 Nov 2020 00:46:49 +0000 (01:46 +0100)]
ath79: fix reset button support on 8devices Lima

This fixes 'linux,code' property name and value for the 'reset' key node
in 8devices Lima DTS file.

Problem and solution were reported on the forum, see:

Signed-off-by: Piotr Dymacz <>
19 months agoath79: calculate Eth MACs from WLAN on ALFA Network R36A
Piotr Dymacz [Fri, 30 Oct 2020 13:16:08 +0000 (14:16 +0100)]
ath79: calculate Eth MACs from WLAN on ALFA Network R36A

New batches of the R36A board series might no longer keep separated
Ethernet MAC addresses stored in flash. Use same approach as on the
N2Q and calculate Ethernet MACs from WLAN one which is kept in ART.

Signed-off-by: Piotr Dymacz <>
19 months agouboot-envtools: ath79: add support for ALFA Network Pi-WiFi4
Piotr Dymacz [Fri, 9 Oct 2020 05:31:44 +0000 (07:31 +0200)]
uboot-envtools: ath79: add support for ALFA Network Pi-WiFi4

Signed-off-by: Piotr Dymacz <>
19 months agoath79: add support for ALFA Network Pi-WiFi4
Piotr Dymacz [Fri, 9 Oct 2020 05:30:24 +0000 (07:30 +0200)]
ath79: add support for ALFA Network Pi-WiFi4

ALFA Network Pi-WiFi4 is a Qualcomm QCA9531 v2 based, high-power 802.11n
WiFi board in Raspberry Pi 3B shape, equipped with 1x FE and 4x USB 2.0.


- Qualcomm/Atheros QCA9531 v2
- 650/400/200 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16+ MB of flash (SPI NOR)
- 1x 10/100 Mbps Ethernet
- 2T2R 2.4 GHz Wi-Fi with Qorvo RFFM8228P FEM
- 2x IPEX/U.FL connectors on PCB
- 4x USB 2.0 Type-A
- Genesys Logic GL850G 4-port USB HUB
- USB power is controlled by GPIO
- 5x LED (3x on PCB, 2x in RJ45, 4x driven by GPIO)
- 1x button (reset)
- external h/w watchdog (EM6324QYSP5B, enabled by default)
- 1x micro USB Type-B for power and system console (Holtek HT42B534)
- UART and GPIO (8-pin, 1.27 mm pitch) header on PCB

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on LEDE/OpenWrt. Alternatively, you can use web recovery mode in U-Boot:

1. Configure PC with static IP
2. Connect PC with one of RJ45 ports, press the reset button, power up
   device, wait for first blink of all LEDs (indicates network setup),
   then keep button for 3 following blinks and release it.
3. Open address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <>
19 months agoath79: add label MAC address for ALFA Network N5Q
Piotr Dymacz [Mon, 9 Nov 2020 00:23:26 +0000 (01:23 +0100)]
ath79: add label MAC address for ALFA Network N5Q

Signed-off-by: Piotr Dymacz <>
19 months agoscripts: add const_structs.checkpatch for
Adrian Schmutzler [Wed, 18 Nov 2020 20:45:38 +0000 (21:45 +0100)]
scripts: add const_structs.checkpatch for

Kernel has separated the structs that are reported to be const in into a file of its own, const_structs.checkpatch.

This file has been missing after the recent update of,
leading to the following message:

  No structs that should be const will be found - file
  '/data/openwrt/scripts/const_structs.checkpatch': No such file
  or directory

This commit adds the relevant file from v5.10-rc4.

Fixes: 086ee09bbcac ("scripts: Update to 2020-06-11")
Signed-off-by: Adrian Schmutzler <>
19 months agoscripts: suppress warnings about MAINTAINERS
Adrian Schmutzler [Wed, 18 Nov 2020 20:38:59 +0000 (21:38 +0100)]
scripts: suppress warnings about MAINTAINERS

The kernel expects changes to MAINTAINERS for all removed or added
files, printing warnings like:

  WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
  deleted file mode 100644

Since this does not apply to "our" files in OpenWrt repo, this
warning should be disabled.

This can be achieved easiest by setting $reported_maintainer_file
to 1. While this is a hack that tricks the script into believing
the proper MAINTAINERS changes have been made, it's the easiest
solution as it does not require to touch any other code.

Signed-off-by: Adrian Schmutzler <>
19 months agoramips: use m25p,fast-read on Xiaomi Mi Router 4A Gb/3G v2
Adrian Schmutzler [Wed, 18 Nov 2020 19:48:26 +0000 (20:48 +0100)]
ramips: use m25p,fast-read on Xiaomi Mi Router 4A Gb/3G v2

The Xiaomi Mi Router 4A Gigabit model has a race condition on bootup
causing the SQUASHFS data errors to appear and create a bootloop

Adding the m25p,fast-read property resolves this issue.

Suggested-by: David Bentham <>
Signed-off-by: Adrian Schmutzler <>
19 months agokernel: bump 5.4 to 5.4.77
John Audia [Wed, 11 Nov 2020 20:30:36 +0000 (15:30 -0500)]
kernel: bump 5.4 to 5.4.77

Manually rebased patches:


All modifications made by

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711,
              lantiq/Easybox 904 xDSL, x86_64
Run-tested: ipq806x/R7800, lantiq/Easybox 904 xDSL, x86_64

No dmesg regressions, everything functional

Signed-off-by: John Audia <>
Co-developed-by: Adrian Schmutzler <>
Signed-off-by: Adrian Schmutzler <>
19 months agoath79: Add support for Ubiquiti NanoBeam AC Gen2
Nick Hainke [Sun, 25 Oct 2020 13:51:55 +0000 (14:51 +0100)]
ath79: Add support for Ubiquiti NanoBeam AC Gen2

CPU:         Atheros AR9342 rev 3 SoC
RAM:         64 MB DDR2
Flash:       16 MB NOR SPI
WLAN 2.4GHz: Atheros AR9342 v3 (ath9k)
WLAN 5.0GHz: QCA988X
Ports:       2x GbE

Flashing procedure is identical to other ubnt devices.

Flashing through factory firmware
1. Ensure firmware version v8.7.0 is installed.
   Up/downgrade to this exact version.
2. Patch fwupdate.real binary using
   `hexdump -Cv /bin/ubntbox | sed 's/14 40 fe 27/00 00 00 00/g' | \
    hexdump -R > /tmp/fwupdate.real`
3. Make the patched fwupdate.real binary executable using
   `chmod +x /tmp/fwupdate.real`
4. Copy the squashfs factory image to /tmp on the device
5. Flash OpenWrt using `/tmp/fwupdate.real -m <squashfs-factory image>`
6. Wait for the device to reboot
(copied from Ubiquiti NanoBeam AC and modified)

To keep it consistent, we will add the gen1 variant to
the nanobeam ac gen1.

Signed-off-by: Nick Hainke <>
19 months agovalgrind: Update to version 3.16.1
Hauke Mehrtens [Sat, 31 Oct 2020 23:17:58 +0000 (00:17 +0100)]
valgrind: Update to version 3.16.1

No special changes, just get in sync with recent code.
See here for the changelog:

The ipkg sizes changes as follows for mips 24kc :
3.15   : valgrind_3.15.0-2_mips_24kc.ipk 1450680
3.16.1 : valgrind_3.16.1-1_mips_24kc.ipk 1491954

Signed-off-by: Hauke Mehrtens <>
19 months agostrace: Update to version 5.9
Hauke Mehrtens [Sat, 31 Oct 2020 23:17:51 +0000 (00:17 +0100)]
strace: Update to version 5.9

No special changes, just get in sync with recent code.
See here for the changelog:

The ipkg sizes changes as follows for mips 24kc :
5.8 : strace_5.8-1_mips_24kc.ipk 271195
5.9 : strace_5.9-1_mips_24kc.ipk 278352

Signed-off-by: Hauke Mehrtens <>
19 months agoiperf3: Update to version 3.9
Hauke Mehrtens [Sat, 31 Oct 2020 23:17:36 +0000 (00:17 +0100)]
iperf3: Update to version 3.9

No special changes, just get in sync with recent code.
See here for the changelog:

The ipkg sizes changes as follows for mips 24kc :
3.7 : iperf3_3.7-1_mips_24kc.ipk 39675
3.9 : iperf3_3.9-1_mips_24kc.ipk 41586

Signed-off-by: Hauke Mehrtens <>
19 months agoethtool: update to version 5.9
Hans Dedecker [Sun, 15 Nov 2020 19:43:49 +0000 (20:43 +0100)]
ethtool: update to version 5.9

The ipkg sizes changes as follows for mips 24kc :
5.8 : ethtool_5.8-1_mips_24kc.ipk 34930
5.9 : ethtool_5.9-1_mips_24kc.ipk 35241

Signed-off-by: Hans Dedecker <>
19 months agobase-files: fix backwards compatiblity of rc.common EXTRA_COMMANDS
Matthias Schiffer [Mon, 16 Nov 2020 16:30:43 +0000 (17:30 +0100)]
base-files: fix backwards compatiblity of rc.common EXTRA_COMMANDS

Avoid needlessly breaking old initscripts that set EXTRA_COMMANDS. This
will aid in debugging (as it simplifies reverting to an older version of
a package) and unbreaks third-party feeds (and packages that maintain
their OpenWrt initscripts as part of the software's repo instead of the
OpenWrt feed like fastd).

Without this, initscripts that set EXTRA_COMMANDS become completely
unusable, as all default commands like start/stop cease working.

Fixes: 1a69f50dc627 ("base-files: fix rc.common help alignment")
Signed-off-by: Matthias Schiffer <>
19 months agohostapd: set validity interval for BSS TMRA
David Bauer [Tue, 17 Nov 2020 10:47:38 +0000 (11:47 +0100)]
hostapd: set validity interval for BSS TMRA

This sets the validity interval for the BSS transition candidate
list to the same value as the disassociation timer.

Currently the value is always 0, which is the specification states is a
reserved value. Also, wpa_supplicant and from the looks of it some
Android implementations will outright ignore the candidate list in this

Signed-off-by: David Bauer <>
19 months agohostapd: add support for static airtime policy configuration
Dobroslaw Kijowski [Mon, 16 Nov 2020 19:32:38 +0000 (20:32 +0100)]
hostapd: add support for static airtime policy configuration

* Add support for passing airtime_sta_weight into hostapd configuration.
* Since that commit it is possible to configure station weights. Set higher
  value for larger airtime share, lower for smaller share.

I have tested this functionality by modyfing /etc/config/wireless to:

config wifi-device 'radio0'
        option airtime_mode '1'

config wifi-iface 'default_radio0'
        list airtime_sta_weight '01:02:03:04:05:06 1024'

Now, when the station associates with the access point it has been assigned
a higher weight value.
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy0/netdev\:wlan0/stations/01\:02\:03\:04\:05\:06/airtime
RX: 12656 us
TX: 10617 us
Weight: 1024
Deficit: VO: -2075 us VI: 256 us BE: -206 us BK: 256 us

[MAC address has been changed into a dummy one.]

Signed-off-by: Dobroslaw Kijowski <>
19 months agohostapd: fix per-BSS airtime configuration
Dobroslaw Kijowski [Mon, 16 Nov 2020 19:21:46 +0000 (20:21 +0100)]
hostapd: fix per-BSS airtime configuration

airtime_mode is always parsed as an empty string since it hasn't been
added into hostapd_common_add_device_config function.

Fixes: e289f183 ("hostapd: add support for per-BSS airtime configuration")
Signed-off-by: Dobroslaw Kijowski <>
19 months agohostapd: ubus: add get_status method
David Bauer [Sun, 1 Nov 2020 23:53:41 +0000 (00:53 +0100)]
hostapd: ubus: add get_status method

This adds a new get_status method to a hostapd interface, which
provides information about the current interface status.

Signed-off-by: David Bauer <>
19 months agohostapd: ubus: add VHT capabilities to client list
David Bauer [Mon, 12 Oct 2020 01:10:20 +0000 (03:10 +0200)]
hostapd: ubus: add VHT capabilities to client list

This adds parsed VHT capability information to the hostapd
get_clients method.

Signed-off-by: David Bauer <>
19 months agohostapd: ubus: add driver information to client list
David Bauer [Sun, 11 Oct 2020 15:45:01 +0000 (17:45 +0200)]
hostapd: ubus: add driver information to client list

This adds information from mac80211 to hostapd get_client ubus function.
This way, TX as well as RX status information as well as the signal can
be determined.

Signed-off-by: David Bauer <>
19 months agohostapd: fix variable shadowing
David Bauer [Wed, 28 Oct 2020 19:42:17 +0000 (20:42 +0100)]
hostapd: fix variable shadowing

Fixes commit 838b412cb527 ("hostapd: add interworking support")

Signed-off-by: David Bauer <>
19 months agoumdns: convert seccomp filter rules to OCI format
Daniel Golle [Tue, 17 Nov 2020 13:11:16 +0000 (13:11 +0000)]
umdns: convert seccomp filter rules to OCI format

procd-seccomp switched to OCI-compliant seccomp parser instead of our
(legacy, OpenWrt-specific) format. Convert ruleset to new format.

Signed-off-by: Daniel Golle <>
19 months agoprocd: drop legacy seccomp support, switch to OCI parsers
Daniel Golle [Tue, 17 Nov 2020 13:09:36 +0000 (13:09 +0000)]
procd: drop legacy seccomp support, switch to OCI parsers

 d8f36f5 seccomp: specifying architectures is optional
 d352e6e seccomp: switch to new OCI compliant parser
 c110405 trace: switch to OCI seccomp JSON output

Signed-off-by: Daniel Golle <>
19 months agowireguard-tools: fix category/description in menuconfig
Alberto Bursi [Tue, 17 Nov 2020 07:58:40 +0000 (08:58 +0100)]
wireguard-tools: fix category/description in menuconfig

wireguard-tools is trying to import the menuconfig section
from the wireguard package, but since it's not anymore in
the same makefile this seems to fail and wireguard-tools
ends up in "extra packages" category instead with other
odds and ends.

Same for the description, it's trying to import it from the
wireguard package but it fails so it only shows the line
written in this makefile.

remove the broken imports and add manually the entries
and description they were supposed to load

Fixes: ea980fb9c6de ("wireguard: bump to 20191226")
Signed-off-by: Alberto Bursi <>
[fix trailing whitespaces, add Fixes]
Signed-off-by: Adrian Schmutzler <>
19 months agoath79: fix missing ";;" in 11-ath10k-caldata
Adrian Schmutzler [Mon, 16 Nov 2020 18:26:25 +0000 (19:26 +0100)]
ath79: fix missing ";;" in 11-ath10k-caldata

This adds a missing ";;" in the switch-case in 11-ath10k-caldata.

Fixes: 4d36569b9cab ("ath79: fix ath10k caldata extraction on some
D-Link DIR-842 C3 devices")

Signed-off-by: Adrian Schmutzler <>
19 months agoath79: fix ath10k caldata extraction on some D-Link DIR-842 C3 devices
Paul Fertser [Tue, 27 Oct 2020 11:02:53 +0000 (14:02 +0300)]
ath79: fix ath10k caldata extraction on some D-Link DIR-842 C3 devices

According to forum threads [0][1] and a report on IRC by Doc-Saintly
some of those boards have calibration data in a different place. Only
one alternative location is known.

Without proper board calibration data (board.bin having all 0xff bytes)
ath10k firmware still tries to load but crashes on startup with a
confusing error message.

If you're applying this patch manually on your device do not forget to
remove /lib/firmware/ath10k/pre-cal-pci-0000:00:00.0.bin and reboot to
force caldata re-extraction.


Signed-off-by: Paul Fertser <>
19 months agokernel: remove mvsw61xx swconfig driver
DENG Qingfang [Fri, 13 Nov 2020 03:54:44 +0000 (11:54 +0800)]
kernel: remove mvsw61xx swconfig driver

All targets that used mvsw61xx have switched to upstream mv88e6xxx DSA
driver, so it can be removed.

Signed-off-by: DENG Qingfang <>
19 months agomediatek: fix mixed indent in DTS files
Adrian Schmutzler [Mon, 16 Nov 2020 12:35:51 +0000 (13:35 +0100)]
mediatek: fix mixed indent in DTS files

mediatek frequently had mixed indent (tabs vs. spaces) in DTS files
and DTS file kernel patches (probably due to careless copy/paste).

The harmonizes these cases to tabs-only, as usual for DTS(I).

Signed-off-by: Adrian Schmutzler <>
19 months agotreewide: remove default-state off for LEDs
Adrian Schmutzler [Mon, 16 Nov 2020 12:26:56 +0000 (13:26 +0100)]
treewide: remove default-state off for LEDs

default-state = "off" is default for LEDs, no need to specify it

Signed-off-by: Adrian Schmutzler <>
19 months agomvebu: LS421DE: improve the HDD leds
Daniel González Cabanelas [Fri, 13 Nov 2020 19:23:00 +0000 (20:23 +0100)]
mvebu: LS421DE: improve the HDD leds

Improve the HDD LEDs used for disk activity:
 - Use the trigger activity per ata channel

Signed-off-by: Daniel González Cabanelas <>
19 months agoramips: mt7621: fix Telco X1 GPIO switches
DENG Qingfang [Mon, 16 Nov 2020 06:06:12 +0000 (14:06 +0800)]
ramips: mt7621: fix Telco X1 GPIO switches

The GPIO base of MT7621 GPIO 0~31 is 480 on kernel 5.4
Fix the GPIO numbering.

Signed-off-by: DENG Qingfang <>
19 months agoodhcpd: update to latest git HEAD
Hans Dedecker [Sun, 15 Nov 2020 17:44:40 +0000 (18:44 +0100)]
odhcpd: update to latest git HEAD

fb55e80 dhcpv6-ia : write statefile atomically

Signed-off-by: Hans Dedecker <>
19 months agodropbear: update to 2.81
Hans Dedecker [Sat, 14 Nov 2020 12:04:43 +0000 (13:04 +0100)]
dropbear: update to 2.81

Update dropbear to latest stable 2.81; for the changes see

Refresh patches

Signed-off-by: Hans Dedecker <>
19 months agobcm27xx: add bit variant to redundant RaspberryPi
Paul Spooren [Fri, 6 Nov 2020 19:54:20 +0000 (09:54 -1000)]
bcm27xx: add bit variant to redundant RaspberryPi

Both bcm2709 and bcm2710 firmware can run on the same RaspberryPi
models, varying however in 32 and 64 Bit architectures. The model name
alone does not include the architecture information, which becomes
problematic if looking at a overview that only contains the names. By
adding a variant it is possible to tell the architecture.

Signed-off-by: Paul Spooren <>
19 months agowireguard-tools: drop the dependency on ip-{tiny,full}
Rui Salvaterra [Thu, 5 Nov 2020 11:37:16 +0000 (11:37 +0000)]
wireguard-tools: drop the dependency on ip-{tiny,full}

BusyBox ip already provides the required functionality and is enabled by default
in OpenWrt. This patch drops the ip dependency and makes the BusyBox ip required
dependencies explicit, allowing for a significant image size reduction.

openwrt-ath79-generic-ubnt_nanostation-loco-m-squashfs-sysupgrade.bin size:
4588354 bytes (with ip-tiny)
4457282 bytes (with BusyBox ip)

Signed-off-by: Rui Salvaterra <>
19 months agobuild: support cmake verbose for host builds
Felix Fietkau [Sat, 14 Nov 2020 13:34:30 +0000 (14:34 +0100)]
build: support cmake verbose for host builds

Signed-off-by: Felix Fietkau <>