9 months agoath79: fix factory image generation for Netgear and Zyxel boards
Paul Fertser [Sun, 14 Feb 2021 09:16:33 +0000 (12:16 +0300)]
ath79: fix factory image generation for Netgear and Zyxel boards

The factory images need to embed specific IDs to pass verification with
the OEM firmware (including TFTP recovery), so they need to be
per-device variables.

Fixes: ab1584a797ad ("ath79: netgear: trim down uImage customisations")
Fixes: 459c8c9ef816 ("ath79: add support for ZyXEL NBG6616")
Reported-by: Marcin Juszkiewicz <>
Signed-off-by: Paul Fertser <>
[minor commit message adjustments, sort DEVICE_VARS]
Signed-off-by: Adrian Schmutzler <>
9 months agobusybox: remove useless busybox patches
Rosen Penev [Mon, 1 Feb 2021 00:15:54 +0000 (16:15 -0800)]
busybox: remove useless busybox patches

The first two are useless as /bin/sh can execute those scripts just
fine. Shellcheck reports no problems.

Telnetd patch is useless as telnet is no longer used in OpenWrt.

Signed-off-by: Rosen Penev <>
9 months agobusybox: update to 1.33
Rosen Penev [Mon, 1 Feb 2021 00:15:53 +0000 (16:15 -0800)]
busybox: update to 1.33

Remove stime backport.

Remove static libgcc patch as upstream fixed it with

Remove date -k patch as it no longer applies. It's also pointless as
busybox' hwclock utility can do the same thing.

Remove ntpd patch as that seems to have been applied upstream.

Add smalll patch fixing compilation with SELinux. Upstream commit
2496616b0a8d1c80cd1416b73a4847b59b9f969a renamed the variable without
renaming it in the SELinux path.

Refresh config and patches.

Config refresh:

Refresh commands, run after busybox is first built once:

  cd package/utils/busybox/config/
  ../ ../../../../build_dir/target-mips_24kc_musl/busybox-default/busybox-1.33.0
  cd ..
  ./ < ../../../build_dir/target-mips_24kc_musl/busybox-default/busybox-1.33.0/.config >

Manual edits needed afterward:

*  OpenWrt config symbol IPV6 logic applied to
*  OpenWrt configTARGET_bcm53xx logic applied to
* editors/ Add USE_GLIBC dependency to
* shell/ : change at "Options common to all shells"  the symbol
   (discussion in
     Apparently our script does not see the hidden option while
     prepending config options with "BUSYBOX_CONFIG_" which leads to a
     missed dependency when the options are later evaluated.)
* Edit files by adding quotes to sourced items in
  config/, networking/ and util-linux/ (commit 1da014f)

Signed-off-by: Hauke Mehrtens <>
[Added comments from Hannu Nyman to commit message]
Signed-off-by: Rosen Penev <>
9 months agobase-files: use hwclock --systz
Rosen Penev [Mon, 1 Feb 2021 00:15:52 +0000 (16:15 -0800)]
base-files: use hwclock --systz

The date -k patch is non standard and will be removed in the next

Tested behavior to be identical with a simple C program:

 #define _GNU_SOURCE
 #include <unistd.h>
 #include <stdio.h>
 #include <sys/time.h>
 #include <sys/syscall.h>

int main()
        struct timezone tt;
struct timezone tz;

        int a = syscall(SYS_gettimeofday, NULL, &tt);
        int b = gettimeofday(NULL, &tz);
        printf("%d - %d, %d\n", a, tt.tz_minuteswest, tt.tz_dsttime);
        printf("%d - %d, %d\n", b, tz.tz_minuteswest, tz.tz_dsttime);

Signed-off-by: Rosen Penev <>
9 months agoiw: Update to version 5.9
Hauke Mehrtens [Sun, 29 Nov 2020 12:12:29 +0000 (13:12 +0100)]
iw: Update to version 5.9

The nl80211.h file is mostly matching kernel 5.10, so remove most of our
changes from the patch.

Signed-off-by: Hauke Mehrtens <>
9 months agomac80211: Update to version 5.10-rc6-1
Hauke Mehrtens [Fri, 13 Nov 2020 19:14:09 +0000 (20:14 +0100)]
mac80211: Update to version 5.10-rc6-1

The removed patches were applied upstream.

This adapts ath10k-ct and mt76 to changed APIs.
nl80211.h in iw is updated to match the version from backports.

Signed-off-by: Hauke Mehrtens <>
9 months agomac80211: Update to version 5.9.12-1
Hauke Mehrtens [Sat, 7 Nov 2020 16:50:20 +0000 (17:50 +0100)]
mac80211: Update to version 5.9.12-1

The removed patches were applied upstream.

Remove the 300-mac80211-optimize-skb-resizing.patch.
This patch was not applied upstream, but it conflicts with upstream
changes and needs bigger changes. It was applied with Felix to remove
this patch for now. It should be reworked and then send upstream later.

Signed-off-by: Hauke Mehrtens <>
9 months agomvebu: espressobin: drop COMPHY removement patch
Tomasz Maciej Nowak [Thu, 11 Feb 2021 18:29:32 +0000 (19:29 +0100)]
mvebu: espressobin: drop COMPHY removement patch

There are proper workarounds merged to 5.4 stable tree for ESPRESSObin
boards with older bootloader:
4e1a23779bde ("ata: ahci: mvebu: Make SATA PHY optional for Armada 3720")
40af962eb1d4 ("usb: host: xhci: mvebu: make USB 3.0 PHY optional for
Armada 3720")

Signed-off-by: Tomasz Maciej Nowak <>
9 months agoramips: manage low reset lines
Sander Vanheule [Thu, 4 Feb 2021 14:49:14 +0000 (15:49 +0100)]
ramips: manage low reset lines

The bootloader of a number of recent TP-Link devices does not properly
initialise the MT7621's internal switch when booting from flash. To
enable the mt7530 driver to clear the reset on the switch, the ramips
reset controller must be allowed to toggle these.

Backport upstream commit 3f9ef7785a9c from mips-next to allow control of
the "mcm" reset line.

Signed-off-by: Sander Vanheule <>
9 months agoimx6: bootscript-apalis: make it working on v2021.01 release
Petr Štetiar [Mon, 8 Feb 2021 14:40:07 +0000 (15:40 +0100)]
imx6: bootscript-apalis: make it working on v2021.01 release

Upstream in commit 8b9c0cb46471 ("apalis_imx6: boot env configuration
updates") removed emmc legacy wrappers, but so far didn't included any
replacements. Fix it by simply defining the missing variables and UUID
gathering directly into the boot script.

Signed-off-by: Petr Štetiar <>
9 months agouboot-imx6: bump to 2021.01 release
Petr Štetiar [Tue, 14 Apr 2020 21:21:19 +0000 (23:21 +0200)]
uboot-imx6: bump to 2021.01 release

Refreshed all patches, removed 110-mx6cuboxi-mmc-fallback.patch as it
seems, that upstream has probably added similar funcionality in commit
6c3fbf3e456c ("mx6cuboxi: customize board_boot_order to access eMMC")
and it needs to be re-verified by device owner.

Run tested on apalis.

Cc: Felix Fietkau <>
Cc: Vladimir Vid <>
Cc: Tim Harvey <>
Cc: Koen Vandeputte <>
Signed-off-by: Petr Štetiar <>
9 months agobcm4908: refresh patches
Adrian Schmutzler [Sat, 13 Feb 2021 20:01:14 +0000 (21:01 +0100)]
bcm4908: refresh patches

Our patch refresh tool creates quite a big diff for these patches,
as it does not use rename syntax.

Push the refresh separately so it does not pollute the next kernel
bump. This is a purely cosmetic change.

Signed-off-by: Adrian Schmutzler <>
9 months agoath79: fix chip used for Meraki MR12 caldata_extract
Martin Kennedy [Sat, 13 Feb 2021 05:38:52 +0000 (05:38 +0000)]
ath79: fix chip used for Meraki MR12 caldata_extract

The original setup fails to trigger ART calibration data
extraction for the AR9287. Instead, it would only have extracted
calibration data for an internal WMAC chip which is not present on
this board.

Fixes: 55d2db0e8ceb ("ath79: add support for Meraki MR12")

Signed-off-by: Martin Kennedy <>
[commit title/message facelift]
Signed-off-by: Adrian Schmutzler <>
9 months agoramips: remove factory image for TP-Link Archer C2 v1
Stijn Segers [Sat, 13 Feb 2021 09:39:42 +0000 (10:39 +0100)]
ramips: remove factory image for TP-Link Archer C2 v1

Initial commit 8375623a0640 ("ramips: add support for TP-Link Archer
C2") contains detailed installation instructions, which do not mention
a factory image. From what I can see, no support to install OpenWrt
through the vendor web interface has been added since. The factory
image is also conspicuously absent from the device page in the wiki.
Yet, it is available for download.

I bricked my Archer C2 loading the factory image through the web UI.
Serial showed this error during bootloop:

  Uncompressing Kernel Image ... LZMA ERROR 1 - must RESET board to recover

This patch disables the undocumented factory image so users won't get
tricked into thinking easy web UI flashing actually works.

Signed-off-by: Stijn Segers <>
9 months agotrusted-firmware-a: fix project name spelling
Daniel Golle [Sat, 13 Feb 2021 20:10:04 +0000 (20:10 +0000)]
trusted-firmware-a: fix project name spelling

The version string generated for ARM Trusted-Firmware-A was stated as
"OpenWRT". Fix that by changing it to the exact spelling "OpenWrt"

Signed-off-by: Daniel Golle <>
9 months agoiwinfo: update to version 2021-01-31
Daniel Golle [Sat, 13 Feb 2021 19:20:19 +0000 (19:20 +0000)]
iwinfo: update to version 2021-01-31

 5a2dd18 iwinfo: add hardware description for MediaTek MT7622
 4a32b33 iwinfo: add PCI ID for MediaTek MT7613BE

Signed-off-by: Daniel Golle <>
9 months agohostapd: add patch for setting 4addr mode in multi_ap
Raphaël Mélotte [Tue, 9 Feb 2021 06:54:10 +0000 (07:54 +0100)]
hostapd: add patch for setting 4addr mode in multi_ap

This patch is required to be able to roam from one backhaul AP to
another one in the same ESS.

Signed-off-by: Daniel Golle <>
( PKG_REVISION bump and refreshed patches)
Signed-off-by: Raphaël Mélotte <>
9 months agoglibc: update to latest 2.33 commit
Hans Dedecker [Sat, 13 Feb 2021 09:04:51 +0000 (10:04 +0100)]
glibc: update to latest 2.33 commit

c5e3545897 tunables: Disallow negative values for some tunables
905fdc7071 x86: Use SIZE_MAX instead of (long int)-1 for tunable range value
15afd6b8d8 tunables: Simplify TUNABLE_SET interface

Signed-off-by: Hans Dedecker <>
9 months agobcm4908: fix handling Ethernet frames of size 1506 - 1514
Rafał Miłecki [Fri, 12 Feb 2021 15:28:57 +0000 (16:28 +0100)]
bcm4908: fix handling Ethernet frames of size 1506 - 1514

MTU needs to be explicitly set as default value is too low.

Signed-off-by: Rafał Miłecki <>
9 months agobcm4908: use upstream accepted Ethernet driver patches
Rafał Miłecki [Fri, 12 Feb 2021 08:01:40 +0000 (09:01 +0100)]
bcm4908: use upstream accepted Ethernet driver patches

Signed-off-by: Rafał Miłecki <>
9 months agorealtek: add support for Netgear GS108T v3
Michael Mohr [Sat, 9 Jan 2021 05:35:47 +0000 (21:35 -0800)]
realtek: add support for Netgear GS108T v3

The Netgear GS108T v3 is an 8 port gigabit switch with PoE-PD support
on port 1.  The two prior versions were built using eCos and are not
currently compatible with OpenWRT.

The GS108T v3 is quite similar to both the GS110TPP v1 and GS110TP v3,
all of which use the same firmware image from Netgear.  For this reason,
the device tree is identical aside from the model and compatible values.

All of the above feature a dual firmware layout, referred to as Image0
and Image1 in the Netgear firmware.

Hardware specification

 * RTL8380M SoC, 1 MIPS 4KEc core @ 500MHz
 * 128MB DDR3-1600 DRAM (Winbond W631GG8MB-12)
 * 32MB 3v NOR SPI Flash (Macronix MX25L25635F or Winbond W25Q256JVFIQ)
 * RTL8231 GPIO extender to control the LEDs and the reset button
 * 8 x 10/100/1000BASE-T ports, internal PHY (RTL8218B)
 * UART (115200 8N1) via unpopulated standard 0.1" pin header marked J1
 * Power is supplied via a 12V 1A barrel connector or 802.3af

UART pinout

J1 | [o]ooo
      ^ ||`------ GND
      | |`------- RX         [TX out of the serial adapter]
      | `-------- TX         [RX into the serial adapter]
      `---------- Vcc (3V3)  [the square pin]

The through holes are filled with PB-free solder which melts at 375C.
They can also be drilled using a 0.9mm bit.

Build configuration

 * Target System: Realtek MIPS
 * Target Profile: Netgear GS108T v3
 * Target Images -> ramdisk -> Compression: lzma
 * Disable other target images

Boot initramfs image from U-Boot

 1. Press the Escape key at the `Hit Esc key to stop autoboot` prompt
 2. Init network with `rtk network on` command
 3. Load image with `tftpboot 0x8f000000 openwrt-realtek-generic-netgear_gs108t-v3-initramfs-kernel.bin` command
 4. Boot the image with `bootm` command

The switch defaults to IP and tries to fetch the image via
TFTP from

Updating the installed firmware

The OpenWRT ramdisk image can be flashed directly from the Netgear UI.
The Image0 slot should be used in order to enable sysupgrade.

As with similar switches, changing the active boot partition can be
accomplished in U-Boot as follows:

 1. Press the Escape key at the `Hit Esc key to stop autoboot` prompt
 2. Run `setsys bootpartition {0|1}` to select the boot partition
 3. Run `savesys` followed by `boota` to proceed with the boot process

Signed-off-by: Michael Mohr <>
9 months agorealtek: refactor the Netgear GS110TPP v1 device tree
Michael Mohr [Sat, 9 Jan 2021 05:31:53 +0000 (21:31 -0800)]
realtek: refactor the Netgear GS110TPP v1 device tree

Move most of the GS110TPP v1 device tree into a dtsi so that it can be
shared with the GS108T v3.  Additionally:

  * Use macros to simplify the ethernet and switch definitions
  * Zero-pad the offsets and sizes in the partition map to 8 digits each

The spi-max-frequency value has been changed from 10MHz to 50MHz based
on an analysis of the relevant datasheets.  The current driver doesn't
use this property, as the clock speed is fixed. However, it's required
for this type of DT node, so that's why it's present here.

The firmware partition has been split in half, since this is how the
stock firmware uses it.  This can be used to easily revert to a stock
firmware if one is written to the second image area.

Signed-off-by: Michael Mohr <>
9 months agorealtek: add and use netgear_nge for the GS110PP v1
Michael Mohr [Sat, 9 Jan 2021 05:21:15 +0000 (21:21 -0800)]
realtek: add and use netgear_nge for the GS110PP v1

The netgear_nge device will be shared between the GS108T v3 (to be added
in a later commit) and the GS110PP v1.  It also enables LZMA compression
for the ramdisk image.

Signed-off-by: Michael Mohr <>
9 months agohostapd: reconfigure wps credentials on reload
Raphaël Mélotte [Thu, 4 Feb 2021 13:21:31 +0000 (14:21 +0100)]
hostapd: reconfigure wps credentials on reload

This patch fixes a bug that prevents updating Multi-AP credentials
after hostapd has started.

It was sent to upstream hostapd here:

Signed-off-by: Raphaël Mélotte <>
9 months agohostapd: add notifications for management frames
Raphaël Mélotte [Thu, 26 Nov 2020 14:20:52 +0000 (15:20 +0100)]
hostapd: add notifications for management frames

This patch allows other applications to get events management
frames (for example: association requests).

This is useful in Multi-AP context to be able to save association
requests from stations.

It has been sent to upstream hostapd in this series:

'700-wifi-reload.patch' is updated due to the introduction of

Signed-off-by: Raphaël Mélotte <>
9 months agoltq-ptm: Update VR9 PTM firmware
Antti Seppälä [Sun, 3 Jan 2021 15:09:39 +0000 (17:09 +0200)]
ltq-ptm: Update VR9 PTM firmware

After looking at various vendor GPL source code dumps I discovered that some
of them contain updated versions of ltq-ptm driver when compared to what
openwrt has.

The driver update is mostly cursory (simple changes to comments, whitespace,
formatting etc.) or adds debug features not used by openwrt.

However the updated driver also contains a later version of PTM firmware which
is extracted and included in this commit along with bits to correctly identify
its version when driver loads.

Signed-off-by: Antti Seppälä <>
9 months agoath79: fix USB power GPIO for TP-Link TL-WR810N v1
Adrian Schmutzler [Sat, 2 Jan 2021 14:05:13 +0000 (15:05 +0100)]
ath79: fix USB power GPIO for TP-Link TL-WR810N v1

The TP-Link TL-WR810N v1 is known to cause soft-brick on ath79 and
work fine for ar71xx [1]. On closer inspection, the only apparent
difference is the GPIO used for the USB regulator, which deviates
between the two targets.

This applies the value from ar71xx to ath79.

Tested successfully by a forum user.


Fixes: cdbf2de77768 ("ath79: Add support for TP-Link WR810N")
Fixes: FS#3522

Signed-off-by: Adrian Schmutzler <>
9 months agoramips: add support for ELECOM WRC-1167FS
INAGAKI Hiroshi [Fri, 13 Sep 2019 15:14:36 +0000 (00:14 +0900)]
ramips: add support for ELECOM WRC-1167FS

ELECOM WRC-1167FS is a 2.4/5 GHz band 11ac (WiFi-5) router, based on


- SoC : MediaTek MT7628AN
- RAM : DDR2 64 MiB (NT5TU32M16FG-AC)
- Flash : SPI-NOR 16 MiB (W25Q128JVSIQ)
- WLAN : 2.4/5 GHz 2T2R
  - 2.4 GHz : MediaTek MT7628AN (SoC)
  - 5 GHz : MediaTek MT7612E
- Ethernet : 10/100 Mbps x2
  - Switch : MT7628AN (SoC)
- LEDs/Keys : 6x, 3x (2x buttons, 1x slide-switch)
- UART : through-hole on PCB
  - J1: 3.3V, GND, TX, RX from "J1" marking
  - 57600n8
- Power : 12 VDC, 1 A

Flash instruction using factory image:

1. Boot WRC-1167FS normally
2. Access to "" and open firmware update page
3. Select the OpenWrt factory image and click apply ("適用") button to
   perform firmware update
4. Wait ~120 seconds to complete flashing


- Last 0x800000 (8 MiB) in SPI-NOR flash is not used on stock firmware

- Additional padding in factory image is required to avoid incomplete
  flashing on stock firmware

MAC addresses:

- LAN : BC:5C:4C:xx:xx:68 (Config, ethaddr (text) / Factory, 0x28   (hex))
- WAN : BC:5C:4C:xx:xx:69 (Config, wanaddr (text) / Factory, 0x22   (hex))
- 2.4GHz: BC:5C:4C:xx:xx:6A (Config, rmac    (text) / Factory, 0x4    (hex))
- 5GHz : BC:5C:4C:xx:xx:6B (Config, rmac2   (text) / Factory, 0x8004 (hex))

Signed-off-by: INAGAKI Hiroshi <>
9 months agokernel: bump 5.4 to 5.4.97
John Audia [Wed, 10 Feb 2021 16:20:24 +0000 (11:20 -0500)]
kernel: bump 5.4 to 5.4.97

Ran in a fresh clone without any existing toolchains.

Manually rebased:

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

No dmesg regressions/everything functional.

Signed-off-by: John Audia <>
[remove quilt comment, fix/adjust 820-usb-* layerscape patches]
Signed-off-by: Adrian Schmutzler <>
9 months agoarm-trusted-firmware-tools: add patch to pass LDFLAGS
Daniel Golle [Wed, 10 Feb 2021 19:18:04 +0000 (19:18 +0000)]
arm-trusted-firmware-tools: add patch to pass LDFLAGS

This should hopefully fix builds on the buildbot.

Signed-off-by: Daniel Golle <>
9 months agoat91: use SPDX license identifiers on DTS files
Adrian Schmutzler [Wed, 10 Feb 2021 14:39:01 +0000 (15:39 +0100)]
at91: use SPDX license identifiers on DTS files

Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Adrian Schmutzler <>
9 months agotarget: use SPDX license identifiers on scripts
Adrian Schmutzler [Wed, 10 Feb 2021 14:14:52 +0000 (15:14 +0100)]
target: use SPDX license identifiers on scripts

Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Adrian Schmutzler <>
9 months agotarget: use SPDX license identifiers on Makefiles
Adrian Schmutzler [Wed, 10 Feb 2021 13:52:34 +0000 (14:52 +0100)]
target: use SPDX license identifiers on Makefiles

Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Adrian Schmutzler <>
9 months agobcm4908: update Ethernet driver
Rafał Miłecki [Wed, 10 Feb 2021 10:27:44 +0000 (11:27 +0100)]
bcm4908: update Ethernet driver

Use the latest version sent upsteram.

Signed-off-by: Rafał Miłecki <>
9 months agoarm-trusted-firmware-mediatek: mark @BROKEN until bromimage gets fixed
Daniel Golle [Wed, 10 Feb 2021 02:45:05 +0000 (02:45 +0000)]
arm-trusted-firmware-mediatek: mark @BROKEN until bromimage gets fixed

The 'bromimage' tool which is used to wrap bl2 with a MediaTek-specific
header is distributed in binary form only and unfortunately tries to
dynamically link against libopenssl, which fails on the buildbots.
Wait for MTK to provide a at least static executable instead, in the
meantime, mark the package as broken.

Signed-off-by: Daniel Golle <>
9 months agoarm-trusted-firmware-tools: fix passing of CFLAGS
Daniel Golle [Wed, 10 Feb 2021 01:05:00 +0000 (01:05 +0000)]
arm-trusted-firmware-tools: fix passing of CFLAGS

HOST_CFLAGS were ignored as they were passed on incorrectly which lead
to build failure if OpenSSL wasn't present on the build host.
Fix that by properly passing HOST_CFLAGS when building each tool.

Signed-off-by: Daniel Golle <>
9 months agowolfssl: Backport fix for CVE-2021-3336
Hauke Mehrtens [Mon, 8 Feb 2021 23:53:09 +0000 (00:53 +0100)]
wolfssl: Backport fix for CVE-2021-3336

This should fix CVE-2021-3336:
DoTls13CertificateVerify in tls13.c in wolfSSL through 4.6.0 does not
cease processing for certain anomalous peer behavior (sending an
ED22519, ED448, ECC, or RSA signature without the corresponding

The patch is backported from the upstream wolfssl development branch.

Signed-off-by: Hauke Mehrtens <>
9 months agoarm-trusted-firmware-tools: remove tools which require libopenssl
Daniel Golle [Tue, 9 Feb 2021 20:20:32 +0000 (20:20 +0000)]
arm-trusted-firmware-tools: remove tools which require libopenssl

They are anyway not used for now, so only build fiptool and sptool.

Signed-off-by: Daniel Golle <>
9 months agoglibc: update to 2.33
Curtis Deptuck [Mon, 8 Feb 2021 21:20:11 +0000 (14:20 -0700)]
glibc: update to 2.33


Refresh patch:
None required

Signed-off-by: Curtis Deptuck <>
9 months agoramips: add support for Cudy WR1300
Andrew Pikler [Wed, 27 Jan 2021 17:35:49 +0000 (19:35 +0200)]
ramips: add support for Cudy WR1300

 - SoC: MediaTek MT7621AT
 - RAM: 128 MB (DDR3)
 - Flash: 16 MB (SPI NOR)
 - WiFi: MediaTek MT7603E, MediaTek MT7612E
 - Switch: 1 WAN, 4 LAN (Gigabit)
 - Ports: 1 USB 3.0
 - Buttons: Reset, WPS
 - LEDs: Power, System, Wan, Lan 1-4, WiFi 2.4G, WiFi 5G, WPS, USB
 - Power: DC 12V 1A tip positive

UART Serial:
  115200 baud
  Located on unpopulated 4 pin header near J4:

  [o] Rx
  [o] Tx
  [o] GND
  [ ] Vcc - Do not connect


Download and flash the manufacturer's built OpenWRT image available at
Install the new OpenWRT image via luci (System -> Backup/Flash firmware)
Be sure to NOT keep settings. The force upgrade may need to be checked
due to differences in router naming conventions.

 - Loads only signed manufacture firmware due to bootloader RSA verification
 - serve tftp-recovery image as /recovery.bin on
 - connect to any lan ethernet port
 - power on the device while holding the reset button
 - wait at least 8 seconds before releasing reset button for image to
 - See

MAC addresses as verified by OEM firmware:

use   address   source
LAN   *:f0      label
WAN   *:f1      label + 1
2g    *:f0      label
5g    *:f2      label + 2

The label MAC address is found in bdinfo 0xde00.

Signed-off-by: Andrew Pikler <>
9 months agoath79: add support for D-Link DAP-3662 A1
Sebastian Schaper [Tue, 1 Dec 2020 21:34:34 +0000 (22:34 +0100)]
ath79: add support for D-Link DAP-3662 A1

 * QCA9557, 16 MiB Flash, 128 MiB RAM, 802.11n 2T2R
 * QCA9882, 802.11ac 2T2R
 * 2x Gigabit LAN (1x 802.11af PoE)
 * IP68 pole-mountable outdoor case

 * Factory Web UI is at
   login with 'admin' and blank password, flash factory.bin
 * Recovery Web UI is at
   connect network cable, hold reset button during power-on and keep it
   pressed until uploading has started (only required when checksum is ok,
   e.g. for reverting back to oem firmware), flash factory.bin

After flashing factory.bin, additional free space can be reclaimed by
flashing sysupgrade.bin, since the factory image requires some padding
to be accepted for upgrading via OEM Web UI.

Both ethernet ports are set to LAN by default, matching the labelling on
the case. However, since both GMAC Interfaces eth0 and eth1 are connected
to the switch (QCA8337), the user may create an additional 'wan' interface
as desired and override the vlan id settings to map br-lan / wan to either
the PoE or non-PoE port, depending on the individual scenario of use.

So, the LAN and WAN ports would then be connected to different GMACs, e.g.

config interface 'lan'
option ifname 'eth0.1'

config interface 'wan'
option ifname 'eth1.2'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 0t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '2 6t'

Signed-off-by: Sebastian Schaper <>
[add configuration example]
Signed-off-by: Adrian Schmutzler <>
9 months agoramips: add support for JCG Y2
Chukun Pan [Mon, 8 Feb 2021 08:28:10 +0000 (16:28 +0800)]
ramips: add support for JCG Y2

JCG Y2 is an AC1300M router

Hardware specs:
  SoC: MediaTek MT7621AT
  Flash: Winbond W25Q128JVSQ 16MiB
  RAM: Nanya NT5CB128M16 256MiB
  WLAN: 2.4/5 GHz 2T2R (1x MediaTek MT7615)
  Ethernet: 10/100/1000 Mbps x5
  Button: Reset
  Power: DC 12V,1A

Flash instructions:
  Upload factory.bin in stock firmware's upgrade page.

MAC addresses map:
  0x0004  *:c8  wlan2g/wlan5g/label
  0xe000  *:c7  lan
  0xe006  *:c6  wan

Signed-off-by: Chukun Pan <>
9 months agouboot-envtools: Update to version 2021.01
Hauke Mehrtens [Sun, 31 Jan 2021 16:08:05 +0000 (17:08 +0100)]
uboot-envtools: Update to version 2021.01

Signed-off-by: Hauke Mehrtens <>
9 months agotools: mkimage: Update U-Boot to version 2021.01
Hauke Mehrtens [Wed, 6 Jan 2021 18:36:44 +0000 (19:36 +0100)]
tools: mkimage: Update U-Boot to version 2021.01

* The fit image is now created with 0666 permission in upstream U-Boot
  remove our patch switch creates it with 0744
* The generated/autoconf.h file is created now as an empty file, it is
  not needed to remove this include any more.
* Upstream lib/rsa/rsa-sign.c now includes stdlib.h instead of malloc.h
* ALIGN_MASK was moved to imagetool.h, own patch should not be needed
  any more.

Signed-off-by: Hauke Mehrtens <>
9 months agoltq-dsl-base: remove usused
Andre Heider [Tue, 26 Jan 2021 08:00:52 +0000 (09:00 +0100)]
ltq-dsl-base: remove usused

All users have been converted to ubus.

Signed-off-by: Andre Heider <>
Tested-by: Martin Schiller <>
9 months agoltq-adsl-app: use ubus to provide metrics
Andre Heider [Tue, 26 Jan 2021 08:00:51 +0000 (09:00 +0100)]
ltq-adsl-app: use ubus to provide metrics

luci now uses ubus directly, so remove 'lucistat'.
For manual usage just print the ubus output, use luci for a pretty

Signed-off-by: Andre Heider <>
9 months agoltq-vdsl-app: use ubus to provide metrics
Andre Heider [Tue, 26 Jan 2021 08:00:50 +0000 (09:00 +0100)]
ltq-vdsl-app: use ubus to provide metrics

luci now uses ubus directly, so remove 'lucistat'.
For manual usage just print the ubus output, use luci for a pretty

Signed-off-by: Andre Heider <>
Tested-by: Martin Schiller <>
9 months agoltq-adsl-app: add ubus support to get metrics
Andre Heider [Tue, 26 Jan 2021 08:00:49 +0000 (09:00 +0100)]
ltq-adsl-app: add ubus support to get metrics

As with ltq-vdsl-app, see previous commit.

Signed-off-by: Andre Heider <>
9 months agoltq-vdsl-app: add ubus support to get metrics
Andre Heider [Tue, 26 Jan 2021 08:00:48 +0000 (09:00 +0100)]
ltq-vdsl-app: add ubus support to get metrics

Add a 'dsl' ubus object with a 'metrics' function to replace the
expensive shell parsing done by /etc/init.d/dsl_control [dsl|luci]stat.

All metrics are gathered by using syscalls. An additional thread is started
to handle ubus events.

$ time /etc/init.d/dsl_control dslstat
real 0m 2.66s
user 0m 0.90s
sys 0m 1.76s

$ time ubus call dsl metrics
real 0m 0.02s
user 0m 0.00s
sys 0m 0.01s

Example output:
"api_version": "",
"firmware_version": "",
"chipset": "Lantiq-VRX200",
"driver_version": "",
"state": "Showtime with TC-Layer sync",
"up": true,
"uptime": 3891,
"atu_c": {
"vendor_id": [
"vendor": "Broadcom 178.26",
"system_vendor_id": [
"system_vendor": "Broadcom",
"version": [
"serial": [
"power_state": "L0 - Synchronized",
"xtse": [
"annex": "B",
"standard": "G.993.2",
"profile": "17a",
"mode": "G.993.2 (VDSL2, Profile 17a, with down- and upstream vectoring)",
"upstream": {
"vector": true,
"trellis": true,
"bitswap": true,
"retx": true,
"virtual_noise": false,
"interleave_delay": 0,
"data_rate": 31999000,
"latn": 8.500000,
"satn": 8.400000,
"snr": 12.700000,
"actps": -90.100000,
"actatp": 13.400000,
"attndr": 37180000
"downstream": {
"vector": true,
"trellis": true,
"bitswap": true,
"retx": true,
"virtual_noise": false,
"interleave_delay": 140,
"data_rate": 89998000,
"latn": 9.500000,
"satn": 9.600000,
"snr": 13.300000,
"actps": -90.100000,
"actatp": -1.600000,
"attndr": 116315372
"errors": {
"near": {
"es": 1,
"ses": 0,
"loss": 3,
"uas": 424,
"lofs": 0,
"fecs": 0,
"hec": 0,
"ibe": 0,
"crc_p": 0,
"crcp_p": 0,
"cv_p": 0,
"cvp_p": 0,
"rx_corrupted": 27740,
"rx_uncorrected_protected": 27010,
"rx_retransmitted": 0,
"rx_corrected": 730,
"tx_retransmitted": 16222
"far": {
"es": 242,
"ses": 71,
"loss": 0,
"uas": 424,
"lofs": 0,
"fecs": 22687,
"hec": 0,
"ibe": 0,
"crc_p": 0,
"crcp_p": 0,
"cv_p": 0,
"cvp_p": 0,
"rx_corrupted": 1383552,
"rx_uncorrected_protected": 1220215,
"rx_retransmitted": 0,
"rx_corrected": 163337,
"tx_retransmitted": 1574051

Signed-off-by: Andre Heider <>
Tested-by: Martin Schiller <>
9 months agoltq-vdsl-app: shutdown upon sigterm
Andre Heider [Tue, 26 Jan 2021 08:00:47 +0000 (09:00 +0100)]
ltq-vdsl-app: shutdown upon sigterm

procd sends sigterm to stop daemons, hook it up.

This speeds up the shutdown sequence and gets rid of the following message: procd: Instance dsl_control::instance1 pid 15408 not stopped on SIGTERM, sending SIGKILL instead

Signed-off-by: Andre Heider <>
Tested-by: Martin Schiller <>
9 months agoath79: use internal switch for EAP300 v2
Michael Pratt [Mon, 11 Jan 2021 08:34:33 +0000 (03:34 -0500)]
ath79: use internal switch for EAP300 v2

Have the port use GMAC1 with internal switch
which fixes the issue of the ethernet LED not functioning
The LED is triggered by the internal switch, not a GPIO.

The GPIO for the ethernet LED was added in ath79
as it was defined in the ar71xx target
but it was not functioning in ath79 for a previously unknown reason.

It is unknown why that GPIO was defined as an LED in ar71xx.

Signed-off-by: Michael Pratt <>
[drop unrelated changes: model property and SPI max frequency]
Signed-off-by: Adrian Schmutzler <>
9 months agoath79: make all eth ports LAN for Engenius APs
Michael Pratt [Fri, 1 Jan 2021 22:23:04 +0000 (17:23 -0500)]
ath79: make all eth ports LAN for Engenius APs

 - ENH202 v1
 - ENS202EXT v1
 - EnstationAC v1
 - EWS511AP

For EWS511AP, have default behavior as static ip
to match the behavior of all other APs in ath79

These boards are sold as
Client Bridge or Point to Point or Access Point
so there is probably no benefit to have WAN by default
for one of the ports, to prevent user confusion.

Signed-off-by: Michael Pratt <>
9 months agokernel: bump 5.4 to 5.4.96
John Audia [Sun, 7 Feb 2021 17:36:29 +0000 (12:36 -0500)]
kernel: bump 5.4 to 5.4.96

Ran in a fresh clone without any existing toolchains.

Build system: x86_64
Build-tested: ipq806x/R7800, bcm27xx/bcm2711
Run-tested: ipq806x/R7800
Run-tested [*]: ramips/mt7621 (R6800, DIR-878 A1, EAP235-Wall)

Signed-off-by: John Audia <>
Tested-by: Stijn Segers <> [*]
9 months agodnsmasq: Bump to v2.84
Kevin Darbyshire-Bryant [Sun, 24 Jan 2021 22:19:33 +0000 (22:19 +0000)]
dnsmasq: Bump to v2.84

dnsmasq v2.84rc2 has been promoted to release.

No functional difference between v2.83test3 and v2.84/v2.84rc2

Backport 2 patches to fix the version reporting

Signed-off-by: Kevin Darbyshire-Bryant <>
9 months agobcm4908: add board.d network setup
Rafał Miłecki [Mon, 8 Feb 2021 11:05:04 +0000 (12:05 +0100)]
bcm4908: add board.d network setup

Signed-off-by: Rafał Miłecki <>
9 months agobcm4908: add Ethernet driver
Rafał Miłecki [Mon, 8 Feb 2021 10:45:03 +0000 (11:45 +0100)]
bcm4908: add Ethernet driver

This commit picks up pending netdev patches.

Signed-off-by: Rafał Miłecki <>
9 months agodnsmasq: switch to ubus-based hotplug call
Daniel Golle [Fri, 1 Jan 2021 12:47:11 +0000 (12:47 +0000)]
dnsmasq: switch to ubus-based hotplug call

Use new ubus-based hotplug call in
As sysntpd now makes use of the new ubus-based hotplug calls, dnsmasq
no longer needs to ship ACL to cover ntpd-hotplug.

Signed-off-by: Daniel Golle <>
9 months agobusybox: sysntpd: make use of new ubus hotplug.ntp object
Daniel Golle [Fri, 1 Jan 2021 12:45:48 +0000 (12:45 +0000)]
busybox: sysntpd: make use of new ubus hotplug.ntp object

Signed-off-by: Daniel Golle <>
9 months agoprocd: add hotplug-call dispatcher ubus objects
Daniel Golle [Mon, 21 Dec 2020 23:05:19 +0000 (23:05 +0000)]
procd: add hotplug-call dispatcher ubus objects

Add per-subsystem ubus objects exposing hotplug-call.

Signed-off-by: Daniel Golle <>
9 months agoacx-mac80211: replace dead URLs with OpenWrt CDN
Ilya Lipnitskiy [Sat, 6 Feb 2021 05:11:20 +0000 (21:11 -0800)]
acx-mac80211: replace dead URLs with OpenWrt CDN no longer exists; attempting to connect to it during package
download results in lengthy timeouts. Use the new OpenWrt CDN alias to
download from reliable OpenWrt mirrors.

Signed-off-by: Ilya Lipnitskiy <>
9 months agoramips: disable default build for HooToo HT-TM02
Szabolcs Hubai [Tue, 15 Dec 2020 00:46:54 +0000 (01:46 +0100)]
ramips: disable default build for HooToo HT-TM02

While the latest version of 19.07 release is usable,
the current master is unbootable on the device in a normal way.

"Normal way" installations includes:
- sysupgrade (e.g. from 19.07)
- RESET button recovery with Ron Curry's (Wingspinner) UBoot image
  ( + "Kernal.bin")
- RESET button recovery with original U-Boot
  ( + "kernel")

One could flash and boot the latest master sysupgrade image successfully
with serial access to the device. But a sysupgrade from this state still
breaks the U-Boot and soft-bricks the device.

Signed-off-by: Szabolcs Hubai <>
9 months agoramips: mt7621: use preferred logic in lib/upgrade/
Adrian Schmutzler [Sun, 7 Feb 2021 20:42:19 +0000 (21:42 +0100)]
ramips: mt7621: use preferred logic in lib/upgrade/

shellcheck recommends || and && over "-a" and "-o" because the
latter are not well defined.

Signed-off-by: Adrian Schmutzler <>
9 months agoramips: add support for I-O DATA WN-DX1200GR
INAGAKI Hiroshi [Tue, 26 Jan 2021 14:50:51 +0000 (23:50 +0900)]
ramips: add support for I-O DATA WN-DX1200GR

I-O DATA WN-DX1200GR is a 2.4/5 GHz band 11ac (WiFi-5) router, based on


- SoC : MediaTek MT7621A
- RAM : DDR3 128 MiB
- Flash : raw NAND 128 MiB
- WLAN : 2.4/5 GHz 2T2R
  - 2.4 GHz : MediaTek MT7603E
  - 5 GHz : MediaTek MT7613BE
- Ethernet : 10/100/1000 Mbps x5
  - Switch : MediaTek MT7530 (SoC)
- LEDs/keys : 2x/3x (2x buttons, 1x slide-switch)
- UART : through-hole on PCB
  - J5: 3.3V, TX, RX, NC, GND from triangle-mark
  - 57600n8
- Power : 12 VDC, 1 A

Flash instruction using initramfs image:

1. Boot WN-DX1200GR normally
2. Access to "" and open firmware update page
3. Select the OpenWrt initramfs image and click update ("更新") button
   to perform firmware update
4. On the initramfs image, perform sysupgrade with the
   squashfs-sysupgrade image
5. Wait ~120 seconds to complete flashing


- currently, mt7615e driver in mt76 doesn't fully support MT7613
  (MT7663) wifi chip
  - the eeprom data in flash is not used by mt7615e driver and the
    driver reports the tx-power up to 3dBm
  - the correct MAC address for MT7613BE in eeprom data cannot be
    assigned to the phy

- last 0x80000 (512 KiB) in NAND flash is not used on stock firmware

- stock firmware requires "customized uImage header" (called as "combo
  image") by MSTC (MitraStar Technology Corp.), but U-Boot doesn't

  - uImage magic ( 0x0 - 0x3 ) : 0x434F4D43 ("COMC")
  - header crc32 ( 0x4 - 0x7 ) : with "data length" and "data crc32"
  - image name   (0x20 - 0x37) : model ID and firmware versions
  - data length  (0x38 - 0x3b) : kernel + rootfs
  - data crc32   (0x3c - 0x3f) : kernel + rootfs

MAC addresses:

LAN: 50:41:B9:xx:xx:08 (Ubootenv, ethaddr (text) / Factory, 0x1E000 (hex))
WAN: 50:41:B9:xx:xx:0A (Factory,  0x1E006 (hex))
2.4GHz: 50:41:B9:xx:xx:08 (Factory,  0x4     (hex))
5GHz: 50:41:B9:xx:xx:09 (Factory,  0x8004  (hex))

Signed-off-by: INAGAKI Hiroshi <>
[add check whether dflag_offset is set]
Signed-off-by: Adrian Schmutzler <>
9 months agobcm63xx: kernel: reenable the TRNG
Daniel González Cabanelas [Sun, 7 Feb 2021 16:37:47 +0000 (17:37 +0100)]
bcm63xx: kernel: reenable the TRNG

The hardware random number generator driver for bcm63xx was merged with
the one used by the Raspberry Pi. Now this driver is lost.

Reenable the HW_RANDOM kernel config with the new driver.

Signed-off-by: Daniel González Cabanelas <>
[refresh kernel config]
Signed-off-by: Álvaro Fernández Rojas <>
9 months agompc85xx: refresh kernel config
Pawel Dembicki [Sun, 10 Jan 2021 20:12:44 +0000 (21:12 +0100)]
mpc85xx: refresh kernel config

Simple "make kernel_oldconfig" was done.

Signed-off-by: Pawel Dembicki <>
9 months agotreewide: unify OpenWrt hosted source via @OPENWRT
Paul Spooren [Sat, 30 Jan 2021 20:54:44 +0000 (10:54 -1000)]
treewide: unify OpenWrt hosted source via @OPENWRT

Multiple sources are hosted on OpenWrts source server only. The source
URLs to point to the server vary based on different epochs in OpenWrts

Replace all by @OPENWRT which is an "empty" mirror, therefore using the
fallback servers and

Signed-off-by: Paul Spooren <>
9 months agokirkwood: use 3 temperature sensors for Zyxel NSA310B
Thomas Beckler [Sat, 30 May 2020 21:40:03 +0000 (23:40 +0200)]
kirkwood: use 3 temperature sensors for Zyxel NSA310B

Instead of taking the input of one temperature sensor (temp1), the
script takes into account three temperature sensors to control the
PWM of the cooling fan.

temp1 -> placed on main board
temp2 -> placed on main board
temp3 -> placed on or close to chipset

All three temperatures give valid input for the PWM of the fan on
NSA310 and are actually changing.

Tested on two NSA310.

Signed-off-by: Thomas Beckler <>
Reviewed-by: Alberto Bursi <>
[commit title/message facelift, code cleanup]
Signed-off-by: Adrian Schmutzler <>
9 months agotplink-safeloader: add support for TP-Link Archer A7 v5 (RU)
Alexey Kunitskiy [Sun, 13 Dec 2020 16:48:58 +0000 (18:48 +0200)]
tplink-safeloader: add support for TP-Link Archer A7 v5 (RU)

Although provided in separate zip archives, the firmwares for EU
and RU version are byte-identical. This adds the missing ID compared
to the support-list in the vendor firmware.

Note (since I checked it anyway):

Partitions and support list are unchanged for all three existing
firmware versions:

  * 20200721-rel40773
  * 20201029-rel43238
  * 20201120-rel50399

Signed-off-by: Alexey Kunitskiy <>
[rewrite commit message]
Signed-off-by: Adrian Schmutzler <>
9 months agoath79: wrap ucidef_add_switch in 02_network
Adrian Schmutzler [Fri, 5 Feb 2021 19:53:26 +0000 (20:53 +0100)]
ath79: wrap ucidef_add_switch in 02_network

Wrap line to be consistent with all other definitions.

Signed-off-by: Adrian Schmutzler <>
9 months agobuild: move elx-header into
Yanase Yuki [Thu, 5 Nov 2020 10:59:06 +0000 (19:59 +0900)]
build: move elx-header into

ELECOM WAB-I1750-PS will need this in ath79, so move it to common

Signed-off-by: Yanase Yuki <>
9 months agokirkwood: refresh kernel config
Sungbo Eo [Fri, 25 Dec 2020 11:16:41 +0000 (20:16 +0900)]
kirkwood: refresh kernel config

Refresh config with make kernel_oldconfig.

Signed-off-by: Sungbo Eo <>
9 months agolantiq: change phy-mode to mii for FRITZ!Box 7412
Aleksander Jan Bajkowski [Tue, 3 Nov 2020 20:29:21 +0000 (21:29 +0100)]
lantiq: change phy-mode to mii for FRITZ!Box 7412

FRITZ!Box 7412 loads the firmware for fast ethernet PHY and mii is
more accurate in this case.
Gmii is used by Gigabit ethernet PHYs.

Signed-off-by: Aleksander Jan Bajkowski <>
Reviewed-by: Mathias Kresin <>
[minor commit title/message adjustments]
Signed-off-by: Adrian Schmutzler <>
9 months agoipq806x: replace full-text BSC license by SPDX identifier
Adrian Schmutzler [Fri, 5 Feb 2021 17:28:30 +0000 (18:28 +0100)]
ipq806x: replace full-text BSC license by SPDX identifier

This replaces a full-text BSD clause by the corresponding SPDX

This should make it easier to identify the license both by humans
and machines.

Signed-off-by: Adrian Schmutzler <>
9 months agoramips: replace full-text licenses by SPDX identifier
Adrian Schmutzler [Fri, 5 Feb 2021 17:18:00 +0000 (18:18 +0100)]
ramips: replace full-text licenses by SPDX identifier

This replaces several full-text and abbreviated licenses found in
DTS files by the corresponding SPDX identifiers.

This should make it easier to identify the license both by humans
and machines.

Signed-off-by: Adrian Schmutzler <>
9 months agoramips: add support for UniElec U7621-01
David Bentham [Sat, 21 Nov 2020 14:04:49 +0000 (14:04 +0000)]
ramips: add support for UniElec U7621-01

UniElec U7621-01 is a router platform board, the smaller model of
the U7621-06.
The device has the following specifications:

- MT7621AT (880 MHz)
- 256 of RAM (DDR3)
- 16 MB of FLASH (SPI NOR)
- 5x 1 Gbps Ethernet (MT7621 built-in switch)
- 1x 2.4Ghz MT7603E
- 1x 5Ghz MT7612
- 1x miniPCIe slots (PCIe bus only)
- 1x miniSIM slot
- 1x USB 2.0 (uses the usb 3.0 driver)
- 8x LEDs (1x GPIO-controlled)
- 1x reset button
- 1x UART header (4-pins)
- 1x GPIO header (30-pins)
- 1x DC jack for main power (12 V)

The following has been tested and is working:

- Ethernet switch
- 1x 2.4Ghz MT7603E (wifi)
- 1x 5Ghz MT7612 (wifi)
- miniPCIe slots (tested with Wi-Fi cards and LTE modem cards)
- miniSIM slot (works with normal size simcard)
- sysupgrade
- reset button


This board has no locked down bootloader. The seller can be asked to
install openwrt v18.06, so upgrades are standard sysupgrade method.


This board contains a Chinese, closed-source bootloader called Breed
(Boot and Recovery Environment for Embedded Devices). Breed supports web
recovery and to enter it, you keep the reset button pressed for around
5 seconds during boot. Your machine will be assigned an IP through DHCP
and the router will use IP address The recovery website is
in Chinese, but is easy to use. Click on the second item in the list to
access the recovery page, then the second item on the next page is where
you select the firmware. In order to start the recovery, you click the
button at the bottom.

LEDs list (left to right):

- ESW_P0_LED_0
- ESW_P1_LED_0
- ESW_P2_LED_0
- ESW_P3_LED_0
- ESW_P4_LED_0
- CTS2_N (GPIO10, configured as "status" LED)
- LED_WLAN# (connected with pin 44 in wifi1 slot)

Signed-off-by: David Bentham <>
[add DEVICE_VARIANT, fix DEVICE_PACKAGES, remove &gpio]
Signed-off-by: Adrian Schmutzler <>
9 months agoath79: add support for Meraki MR12
Martin Kennedy [Sat, 28 Nov 2020 02:03:32 +0000 (02:03 +0000)]
ath79: add support for Meraki MR12

Port device support for Meraki MR12 from the ar71xx target to ath79.


  - SoC: AR7242-AH1A CPU
  - RAM: 64MiB (NANYA NT5DS32M16DS-5T)
  - NOR Flash: 16MiB (MXIC MX25L12845EMI-10G)
  - Ethernet: 1 x PoE Gigabit Ethernet Port (SoC MAC + AR8021-BL1E PHY)
  - Ethernet: 1 x 100Mbit port (SoC MAC+PHY)
  - Wi-Fi: Atheros AR9283-AL1A (2T2R, 11n)


  1. Requires TFTP server at, w/ initramfs & sysupgrade .bins
  2. Open shell case
  3. Connect a USB->TTL cable to headers furthest from the RF shield
  4. Power on the router; connect to U-boot over 115200-baud connection
  5. Interrupt U-boot process to boot Openwrt by running:
       setenv bootcmd bootm 0xbf0a0000; saveenv;
       tftpboot 0c00000 <filename-of-initramfs-kernel>.bin;
       bootm 0c00000;
  6. Copy sysupgrade image to /tmp on MR12
  7. sysupgrade /tmp/<filename-of-sysupgrade>.bin


  - kmod-owl-loader is still required to load the ART partition into the

  - The manner of storing MAC addresses is updated from ar71xx; it is
    at 0x66 of the 'config' partition, where it was discovered that the
    OEM firmware stores it. This is set as read-only. If you are
    migrating from ar71xx and used the method mentioned above to
    upgrade, use kmod-mtd-rw or UCI to add the MAC back in. One more
    method for doing this is described below.

  - Migrating directly from ar71xx has not been thoroughly tested, but
    one method has been used a couple of times with good success,
    migrating 18.06.2 to a full image produced as of this commit. Please
    note that these instructions are only for experienced users, and/or
    those still able to open their device up to flash it via the serial
    headers should anything go wrong.

    1) Install kmod-mtd-rw and uboot-envtools
    2) Run `insmod mtd-rw.ko i_want_a_brick=1`
    3) Modify /etc/fw_env.config to point to the u-boot-env partition.
       The file /etc/fw_env.config should contain:

       # MTD device   env offset  env size    sector size
       /dev/mtd1      0x00000     0x10000     0x10000

       for more details.

    4) Run `fw_printenv` to verify everything is correct, as per the
       link above.
    5) Run `fw_setenv bootcmd bootm 0xbf0a0000` to set a new boot address.
    6) Manually modify /lib/upgrade/'s get_image function:
       Change ...

       cat "$from" 2>/dev/null | $cmd

       ... into ...

         dd if=/dev/zero bs=1 count=$((0x66)) ; # Pad the first 102 bytes
         echo -ne '\x00\x18\x0a\x12\x34\x56'  ; # Add in MAC address
         dd if=/dev/zero bs=1 count=$((0x20000-0x66-0x6)) ; # Pad the rest
         cat "$from" 2>/dev/null
       ) | $cmd

       ... which, during the upgrade process, will pad the image by
       128K of zeroes-plus-MAC-address, in order for the ar71xx's
       firmware partition -- which starts at 0xbf080000 -- to be
       instead aligned with the ath79 firmware partition, which
       starts 128K later at 0xbf0a0000.

    7) Copy the sysupgrade image into /tmp, as above
    8) Run `sysupgrade -F /tmp/<sysupgrade>.bin`, then wait

    Again, this may BRICK YOUR DEVICE, so make *sure* to have your
    serial cable handy.

Signed-off-by: Martin Kennedy <>
[add LED migration and extend compat message]
Signed-off-by: Adrian Schmutzler <>
9 months agoramips: add support for Hi-Link HLK-7688A
Ewan Parker [Sat, 31 Oct 2020 09:29:54 +0000 (09:29 +0000)]
ramips: add support for Hi-Link HLK-7688A


  - SoC: MediaTek MT7688AN
  - RAM: 128 MB
  - Flash: 32 MB
  - Ethernet: 5x 10/100 (1x WAN, 4x LAN)
  - Wireless: built in 2.4GHz (bgn)
  - USB: 1x USB 2.0 port
  - Buttons: 1x Reset
  - LEDs: 1x (WiFi)

Flash instructions:

  - Configure TFTP server with IP address
  - Name the firmware file as firmware.bin
  - Connect any Ethernet port to the TFTP server's LAN
  - Choose option 2 in U-Boot
  - Alternatively choose option 7 to upload firmware to the built-in
    web server

MAC addresses as verified by OEM firmware:

  use   address   source
  2g    *:XX      factory 0x4
  LAN   *:XX+1    factory 0x28
  WAN   *:XX+1    factory 0x2e


This board is ostensibly a module containing the MediaTek MT7688AN SoC,
128 MB DDR2 SDRAM and 32 MB flash storage.  The SoC can be operated in
IoT Gateway Mode or IoT Device Mode.

From some vendors the U-Boot that comes installed operates on UART 2
which is inaccessible in gateway mode and operates unreliably in the
Linux kernel when using more than 64 MB of RAM.  For those, updating
U-Boot is recommended.

Signed-off-by: Ewan Parker <>
[add WLAN to 01_leds]
Signed-off-by: Adrian Schmutzler <>
9 months agobuild: use SPDX license tags
Paul Spooren [Tue, 22 Sep 2020 02:48:37 +0000 (16:48 -1000)]
build: use SPDX license tags

The license folder is a core part of OpenWrt and all GPL-2.0 licensed.
Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Paul Spooren <>
[rebase, keep some Copyright lines, sharpen commit message]
Signed-off-by: Adrian Schmutzler <>
9 months agoselinux-policy: update to version 0.6
Daniel Golle [Fri, 5 Feb 2021 13:16:21 +0000 (13:16 +0000)]
selinux-policy: update to version 0.6

Signed-off-by: Daniel Golle <>
9 months agokernel: add defaults for new SELinux options
Daniel Golle [Tue, 2 Feb 2021 12:56:16 +0000 (12:56 +0000)]
kernel: add defaults for new SELinux options

Signed-off-by: Daniel Golle <>
9 months agokernel: bump 5.4 to 5.4.95
John Audia [Thu, 4 Feb 2021 02:09:56 +0000 (21:09 -0500)]
kernel: bump 5.4 to 5.4.95

Ran in a fresh clone without any existing toolchains.

Removed upstreamed patches:
 imx6: 303-ARM-dts-imx6qdl-gw52xx-fix-duplicate-regulator-namin.patch

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

No dmesg regressions, everything functional

Signed-off-by: John Audia <>
9 months agohostapd: add forgotten patch for P2P vulnerability fix
Petr Štetiar [Thu, 4 Feb 2021 08:10:05 +0000 (09:10 +0100)]
hostapd: add forgotten patch for P2P vulnerability fix

Commit 7c8c4f1be648 ("hostapd: fix P2P group information processing
vulnerability") was missing the actual patch for the vulnerability.

Fixes: 7c8c4f1be648 ("hostapd: fix P2P group information processing vulnerability")
Signed-off-by: Petr Štetiar <>
9 months agohostapd: fix P2P group information processing vulnerability
Daniel Golle [Thu, 4 Feb 2021 01:01:36 +0000 (01:01 +0000)]
hostapd: fix P2P group information processing vulnerability

A vulnerability was discovered in how wpa_supplicant processing P2P
(Wi-Fi Direct) group information from active group owners.
This issue was discovered by fuzz testing of wpa_supplicant by Google's

Signed-off-by: Daniel Golle <>
9 months add PKG_CPE_ID
Daniel Golle [Wed, 3 Feb 2021 15:38:14 +0000 (15:38 +0000)] add PKG_CPE_ID

Vulnerabilities of Trusted Firmware A are tracked as

Signed-off-by: Daniel Golle <>
9 months agoarm-trusted-firmware-mediatek: make use of
Daniel Golle [Wed, 3 Feb 2021 14:48:45 +0000 (14:48 +0000)]
arm-trusted-firmware-mediatek: make use of

Signed-off-by: Daniel Golle <>
9 months agotfa-layerscape: don't build fiptool
Daniel Golle [Wed, 3 Feb 2021 14:42:51 +0000 (14:42 +0000)]
tfa-layerscape: don't build fiptool

tfa-fiptool is now provided by an extra package. Use that instead.

Signed-off-by: Daniel Golle <>
9 months agoarm-trusted-firmware-tools: add package
Daniel Golle [Wed, 3 Feb 2021 14:41:50 +0000 (14:41 +0000)]
arm-trusted-firmware-tools: add package

Package ARM Trusted Firmware host tools separately.
(instead of building tfa-fiptool as part of tfa-layerscape)

Signed-off-by: Daniel Golle <>
9 months agoiptables: update to 1.8.7
Curtis Deptuck [Mon, 1 Feb 2021 21:03:47 +0000 (14:03 -0700)]
iptables: update to 1.8.7


Refresh patch:
None required

Signed-off-by: Curtis Deptuck <>
9 months agobcm63xx: sprom: override the PCI device ID
Daniel González Cabanelas [Tue, 2 Feb 2021 11:11:09 +0000 (12:11 +0100)]
bcm63xx: sprom: override the PCI device ID

The PCI device ID detected by the wifi drivers on devices using a fallback
SPROM is wrong. Currently the chipnum is used for this parameter.

Most SSB based Broadcom wifi chips are 2.4 and 5GHz capable. But on
devices without a physical SPROM, the only one way to detect if the device
suports both bands or only the 5GHz band, is by reading the device ID from
the fallback SPROM.

In some devices, this may lead to a non working wifi on a 5GHz-only card,
or in the best case a working 2.4GHz-only in a dual band wifi card.

The offset for the deviceid in SSB SPROMs is 0x0008, whereas in BCMA is
0x0060. This is true for any SPROM version.

Override the PCI device ID with the one defined at the fallback SPROM, to
detect the correct wifi card model and allow using the 5GHz band if

The patch has been tested with the following wifi radios:

BCM43222: b43: both 2.4/5GHz working
          brcm-wl: both 2.4/5GHz working

BCM43225: b43: 2.4GHz, working
 brcmsmac: working
 brcm-wl: it lacks support

BCM43217: b43: 2.4GHz, working
 brcmsmac: it lacks support
 brcm-wl: it lacks support

Signed-off-by: Daniel González Cabanelas <>
[amend commit description, rework patch to avoid using a new global variable
and keep ssb sprom extraction code as close to ssb/pci.c as possible]
Signed-off-by: Álvaro Fernández Rojas <>
9 months agobcm63xx: backport upstream SSB SPROM extraction
Álvaro Fernández Rojas [Tue, 2 Feb 2021 10:02:39 +0000 (11:02 +0100)]
bcm63xx: backport upstream SSB SPROM extraction

New upstream changes extract more SPROM values and fix the antenna gain.
These changes can be found in linux drivers/ssb/pci.c.

Signed-off-by: Álvaro Fernández Rojas <>
9 months agoarm-trusted-firmware-mediatek: add ATF builds for MT7622
Daniel Golle [Tue, 2 Feb 2021 18:04:33 +0000 (18:04 +0000)]
arm-trusted-firmware-mediatek: add ATF builds for MT7622

ATF bl2 comes in 4 variants for MT7622 depending on the boot media:
 * nor
 * snand
 * emmc
 * sdmmc

Additional binary headers needed for emmc and sdmmc are downloaded as
well and provided along with bl2*.bin and bl31.bin to allow building
images including ATF for MT7622.

Signed-off-by: Daniel Golle <>
9 months agoprocd: update to git HEAD
Daniel Golle [Tue, 2 Feb 2021 13:28:09 +0000 (13:28 +0000)]
procd: update to git HEAD

 0aee1c3 hotplug.c: set nl_pid to zero
 d6dda31 procd: fix compiler warning
 92c8e8f jail: remove duplicate check for hook file permissions
 0a74c06 jail: only output BPF instr. table header if debugging
 fd18379 jail: cgroups: fix uninitialized variabl

Signed-off-by: Daniel Golle <>
10 months agokernel: bump 5.4 to 5.4.94
John Audia [Sat, 30 Jan 2021 14:37:13 +0000 (09:37 -0500)]
kernel: bump 5.4 to 5.4.94

All modification made by in a fresh clone without
existing toolchains.

Build-tested: bcm27xx/bcm2711, ipq806x/R7800,
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <>
10 months agomac80211: fix station rate table updates on assoc
Felix Fietkau [Mon, 1 Feb 2021 08:59:49 +0000 (09:59 +0100)]
mac80211: fix station rate table updates on assoc

If the driver uses .sta_add, station entries are only uploaded after the sta
is in assoc state. Fix early station rate table updates by deferring them
until the sta has been uploaded

Signed-off-by: Felix Fietkau <>
10 months agomac80211: fix incorrect parameter
David Bauer [Tue, 19 Jan 2021 01:36:14 +0000 (02:36 +0100)]
mac80211: fix incorrect parameter

he_mu_beamformer only accepts values of 0 and 1 according to the hostapd

Signed-off-by: David Bauer <>
10 months agoath79: ag71xx: add ethtool statistics support
Leon Leijssen [Tue, 12 Jan 2021 09:56:36 +0000 (10:56 +0100)]
ath79: ag71xx: add ethtool statistics support

Add statistics to ethtool. The statistics can be useful to
debug network issues.

The code is backported from mainline ag71xx.c driver.

Signed-off-by: Leon Leijssen <>
10 months agouboot-rockchip: fix RockPro64 boot from eMMC
Marty Jones [Sat, 23 Jan 2021 16:10:36 +0000 (11:10 -0500)]
uboot-rockchip: fix RockPro64 boot from eMMC

With upstream commit f81f9f0ebac5 ("rockchip: rockpro64: initialize USB in
preboot") CONFIG_USE_PREBOOT was enabled on the RockPro64, which is causing
boot issues when a eMMC is used, as a workaround will temporarily disable
this option.

Signed-off-by: Marty Jones <>
[Improve patch description]
Signed-off-by: David Bauer <>
10 months agoath79: add support for Ubiquiti UniFi AP Outdoor+
David Bauer [Wed, 9 Dec 2020 21:18:43 +0000 (22:18 +0100)]
ath79: add support for Ubiquiti UniFi AP Outdoor+

Atheros AR7241
64M DDR2
Atheros AR9283 2T2R b/g/n
2x Fast Ethernet (built-in)


Transfer the Firmware update to the device using SCP.

Install using fwupdate.real -m <openwrt.bin> -d

Signed-off-by: David Bauer <>
10 months agomac80211: convert UniFi Outdoor+ HSR support to OF
David Bauer [Thu, 7 Jan 2021 00:03:05 +0000 (01:03 +0100)]
mac80211: convert UniFi Outdoor+ HSR support to OF

Enable support for the Ubiquiti UniFi Outdoor+ RF filter via
device-tree. The old way of using platform data is not required anymore,
as it was only used on the now removed ar71xx target.

Signed-off-by: David Bauer <>
10 months agoutil-linux: remove custom pkgconfig patch
Rosen Penev [Thu, 28 Jan 2021 05:17:07 +0000 (21:17 -0800)]
util-linux: remove custom pkgconfig patch

Replace with sed as done elsewhere.

Fixes error with at least btrfs-progs:

Package '@LIBSELINUX@', required by 'mount', not found
Package '@LIBCRYPTSETUP@', required by 'mount', not foun

Signed-off-by: Rosen Penev <>