openwrt/staging/svanheule.git
2 years agoath79: use rtl8366rb as a module
Luiz Angelo Daros de Luca [Tue, 26 Apr 2022 21:51:32 +0000 (18:51 -0300)]
ath79: use rtl8366rb as a module

It looks like rtl8366rb is used only by tplink_tl-wr1043nd-v1 and
buffalo_wzr-hp-g300nh-rb. There is no need to have it built-in as it
works as a loadable module.

Tested both failsafe and normal boot on tl-wr1043nd-v1.
buffalo_wzr-hp-g300nh-rb was not tested.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
2 years agokernel: netdevices: load rtl8366rb on boot
Luiz Angelo Daros de Luca [Tue, 26 Apr 2022 21:50:08 +0000 (18:50 -0300)]
kernel: netdevices: load rtl8366rb on boot

This external switch driver should be loaded on boot for network
support in failsafe mode.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
2 years agoramips: improve YunCore AX820 LEDs
Thibaut VARÈNE [Thu, 30 Jun 2022 08:06:35 +0000 (10:06 +0200)]
ramips: improve YunCore AX820 LEDs

At least two AX820 hardware variants are known to exist, but they cannot
be distinguished (same hardware revision, no specific markings).

They appear to have the same LED hardware, but wired differently:

- One has a red system LED at GPIO 15, a green wlan2g LED at GPIO 14 and
  a blue wlan5g LED at GPIO 16;
- The other only offers a green system LED at GPIO 15, with GPIO 14 and
  16 being apparently not connected

Finally, a Yuncore datasheet says the canonical wiring should be:
- Blue wlan2g GPIO 14, green system GPIO 15, red wlan5g GPIO 16

All GPIOs are tied to a single RGB LED which is exposed via lightpipe on
the device front casing.

Considering the above, this patch exposes all three LEDs, preserves the
common system LED (GPIO 15) as the openwrt status LED, and removes the
color information from the LEDs names since it is not consistent across
hardware. The LED naming is made consistent with other YunCore devices.
A note is added in DTS to ensure this information is always available
and prevent unwanted changes in the future.

Fixes: #10131 "YunCore AX820: GPIO LED not correct"
Reviewed-by: Sander Vanheule <sander@svanheule.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2 years agotoolchain: fix dangling symlink to self in FixupLibdir
Sven Wegener [Thu, 17 Dec 2015 10:59:24 +0000 (11:59 +0100)]
toolchain: fix dangling symlink to self in FixupLibdir

This avoids a dangling symlink to self when reinstalling the toolchain:

./staging_dir/toolchain-mips_24kc_gcc-9.3.0_musl/lib/lib -> lib

This is caused by the fact that in the toolchain dir we have

'lib64 -> lib'

and on executing

'ln lib ./staging_dir/toolchain-mips_24kc_gcc-9.3.0_musl/lib64'

ln dereference the symbolic link 'lib64' to 'lib' so the REAL command is

'ln lib ./staging_dir/toolchain-mips_24kc_gcc-9.3.0_musl/lib'

this results in the dangling symlink to self.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
[ add more details to the commit description and fix title ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoqoriq: enable Book-E Watchdog Timer
Stijn Tintel [Fri, 1 Jul 2022 13:17:37 +0000 (16:17 +0300)]
qoriq: enable Book-E Watchdog Timer

Enable PowerPC Book-E Watchdog Timer support. Having this enabled
in-kernel will result in procd starting it during boot.

This effectively solves the problem of the WDT in the Winbond W83793 chip
potentially resetting the system during sysupgrade, which could result
in an unbootable device. While the driver is modular, resulting in procd
not starting the WDT during boot (because that happens before kmod
load), the WDT handover during sysupgrade results in the WDT being
started. This normally shouldn't be a problem, but the W83793 WDT does
not like procd's defaults, nor the handover happening during sysupgrade.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agobcm27xx: add support for Raspberry Pi Zero 2
Stijn Tintel [Mon, 1 Nov 2021 21:39:48 +0000 (23:39 +0200)]
bcm27xx: add support for Raspberry Pi Zero 2

Due to licensing uncertainty, we do not include the firmwares for the
wireless chips used in the Raspberry Pi Zero 2 W. To have working
wireless, follow the instructions below.

For people building their own images:

  mkdir -p files/lib/firmware/brcm
  wget -P files/lib/firmware/brcm/ https://github.com/RPi-Distro/firmware-nonfree/raw/bullseye/debian/config/brcm80211/brcm/brcmfmac43436-sdio.bin
  wget -P files/lib/firmware/brcm/ https://github.com/RPi-Distro/firmware-nonfree/raw/bullseye/debian/config/brcm80211/brcm/brcmfmac43436-sdio.txt
  wget -P files/lib/firmware/brcm/ https://github.com/RPi-Distro/firmware-nonfree/raw/bullseye/debian/config/brcm80211/brcm/brcmfmac43436s-sdio.bin
  wget -P files/lib/firmware/brcm/ https://github.com/RPi-Distro/firmware-nonfree/raw/bullseye/debian/config/brcm80211/brcm/brcmfmac43436s-sdio.txt

Now build the OpenWrt image as usual, and it will include the firmware
files in the correct location.

For people using ext4 images:

Write the ext4 image to the sdcard, then mount the 2nd partition and put
the firmware files from the links above in /lib/firmware/brcm relative
from the mount point where the partition is mounted.

For people using squashfs images:

Write the squashfs image to the sdcard, place it in the Raspberry Pi
Zero 2 W, boot it and wait for the overlay filesystem to be created.
Find the offset of the overlay filesystem in sysfs:

  # cat /sys/devices/virtual/block/loop0/loop/offset
  25755648

Shut down the device, unplug the power and move the SD card to a Linux
computer. Mount the 2nd partition of the sdcard as a loop device with
the offset found earlier.

  sudo mount /dev/sdh2 -o loop,offset=25755648 /mnt/temp

Put the firmware files from the links above in /upper/lib/firmware/brcm
relative to the mount point where the loop device is mounted.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Tested-by: Peter van Dijk <peter@7bits.nl>
2 years agomac80211: read alternative brcm fw names from DT
Stijn Tintel [Wed, 18 May 2022 18:40:51 +0000 (21:40 +0300)]
mac80211: read alternative brcm fw names from DT

This patch is required for the Raspberry Pi Zero 2 W.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agoath79: add support for ASUS RP-AC51
Tamas Balogh [Tue, 28 Jun 2022 10:35:05 +0000 (12:35 +0200)]
ath79: add support for ASUS RP-AC51

Asus RP-AC51 Repeater
Category:
AC750 300+433 (OEM w. unstable driver)
AC1200 300+866 (OpenWrt w. stable driver)

Hardware specifications:
Board: AP147
SoC: QCA9531 2.4G b/g/n
WiFi: QCA9886 5G n/ac
DRAM: 128MB DDR2
Flash: gd25q128 16MB SPI-NOR
LAN/WAN: AR8229 1x100M
Clocks: CPU:650MHz, DDR:600MHz, AHB:200MHz

MAC addresses as verified by OEM firmware:
use address source
Lan/W2G *:C8 art 0x1002 (label)
5G *:CC art 0x5006

Installation:

Asus windows recovery tool:

install the Asus firmware restoration utility
unplug the router, hold the reset button while powering it on
release when the power LED flashes slowly
specify a static IP on your computer:
IP address: 192.168.1.75
Subnet mask 255.255.255.0
Start the Asus firmware restoration utility, specify the factory image
and press upload
Do not power off the device after OpenWrt has booted until the LED flashing.
TFTP Recovery method:

set computer to a static ip, 192.168.1.10
connect computer to the LAN 1 port of the router
hold the reset button while powering on the router for a few seconds
send firmware image using a tftp client; i.e from linux:
$ tftp
tftp> binary
tftp> connect 192.168.1.1
tftp> put factory.bin
tftp> quit

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2 years agoath79: add support for ASUS PL-AC56
Tamas Balogh [Tue, 28 Jun 2022 10:31:59 +0000 (12:31 +0200)]
ath79: add support for ASUS PL-AC56

Asus PL-AC56 Powerline Range Extender Rev.A1
(in kit with Asus PL-E56P Powerline-slave)

Hardware specifications:
Board: AP152
SoC: QCA9563 2.4G n 3x3
PLC: QCA7500
WiFi: QCA9882 5G ac 2x2
Switch: QCA8337 3x1000M
Flash: 16MB 25L12835F SPI-NOR
DRAM SoC: 64MB w9751g6kb-25
DRAM PLC: 128MB w631gg6kb-15

Clocks: CPU:775.000MHz, DDR:650.000MHz, AHB:258.333MHz, Ref:25.000MHz

MAC addresses as verified by OEM firmware:
use address source
Lan/Wan/PLC *:10 art 0x1002 (label)
2G *:10 art 0x1000
5G *:14 art 0x5000

Important notes:

the PLC firmware has to be provided and copied manually onto the
device! The PLC here has no dedicated flash, thus the firmware file
has to be uploaded to the PLC controller at every system start
the PLC functionality is managed by the script /etc/init.d/plc_basic,
a very basic script based on the the one from Netadair (netadair dot de)
Installation:

Asus windows recovery tool:

have to have the latest Asus firmware flashed before continuing!
install the Asus firmware restoration utility
unplug the router, hold the reset button while powering it on
release when the power LED flashes slowly
specify a static IP on your computer:
IP address: 192.168.1.75
Subnet mask 255.255.255.0
start the Asus firmware restoration utility, specify the factory image
and press upload
do NOT power off the device after OpenWrt has booted until the LED flashing
TFTP Recovery method:

have to have the latest Asus firmware flashed before continuing!
set computer to a static ip, 192.168.1.75
connect computer to the LAN 1 port of the router
hold the reset button while powering on the router for a few seconds
send firmware image using a tftp client; i.e from linux:
$ tftp
tftp> binary
tftp> connect 192.168.1.1
tftp> put factory.bin
tftp> quit
do NOT power off the device after OpenWrt has booted until the LED flashing
Additional notes:

the pairing buttons have to have pressed for at least half a second,
it doesn't matter on which plc device (master or slave) first
it is possible to pair the devices without the button-pairing requirement
simply by pressing reset on the slave device. This will default to the
firmware settings, which is also how the plc_basic script is setting up
the master device, i.e. configuring it to firmware defaults
the PL-E56P slave PLC has its dedicated 4MByte SPI, thus it is capable
to store all firmware currently available. Note that some other
slave devices are not guarantied to have the capacity for the newer
~1MByte firmware blobs!
To have a good overlook about the slave device, here are its specs:
same QCA7500 PLC controller, same w631gg6kb-15 128MB RAM,
25L3233F 4MB SPI-NOR and an AR8035-A 1000M-Transceiver

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2 years agokernel: bump 5.10 to 5.10.127
John Audia [Wed, 29 Jun 2022 08:22:49 +0000 (04:22 -0400)]
kernel: bump 5.10 to 5.10.127

All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.10 to 5.10.126
John Audia [Mon, 27 Jun 2022 20:40:48 +0000 (16:40 -0400)]
kernel: bump 5.10 to 5.10.126

No patches rebased, just checksum update for this refresh.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agomac80211: add patch for mwifiex to fix cryptic errors/warnings
Josef Schlehofer [Tue, 28 Jun 2022 11:42:26 +0000 (13:42 +0200)]
mac80211: add patch for mwifiex to fix cryptic errors/warnings

In Turris MOX SDIO card [1], which uses Marvell 88W997 and its driver
mwifiex, you might get cryptic messages, which are not helpful to use.
@pali created patch, which improves messages by the driver and he will
send this to Linux kernel soon.

Before:
[   81.026156] mwifiex_sdio mmc1:0001:1: CMD_RESP: cmd 0x20 error, result=0x1

After:
[   15.784018] mwifiex_sdio mmc1:0001:1: CMD_RESP: cmd RF_ANTENNA (0x20) error, result=0x1

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agomac80211: mwl: add patch to raise global limit of SSID up to 4
Josef Schlehofer [Tue, 28 Jun 2022 11:10:55 +0000 (13:10 +0200)]
mac80211: mwl: add patch to raise global limit of SSID up to 4

SDIO chip 88W9997 from NXP [1] is quite limited by its firmware and
driver. Add hacky patch to allow up to 4 SSID instead of 3 SSID.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agomvebu: add Methode euroDPU support
Robert Marko [Wed, 30 Mar 2022 12:04:10 +0000 (14:04 +0200)]
mvebu: add Methode euroDPU support

Add support for Methode euroDPU which is based on uDPU but does not
have a second SFP cage, instead of which a Maxlinear G.hn IC is used.

PHY mode is set to 1000Base-X despite Maxlinear IC being capable of
2500Base-X since until 5.15 support for mvebu is available trying to use
2500Base-X will cause buffer overruns for which the fix is not easily
backportable.

Installation instructions:
1. Boot the FIT initramfs image (openwrt-mvebu-cortexa53-methode_edpu-initramfs.itb)
2. sysupgrade using the openwrt-mvebu-cortexa53-methode_edpu-firmware.tgz

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 years agomvebu: update and refactor uDPU DTS
Robert Marko [Mon, 28 Mar 2022 12:26:47 +0000 (14:26 +0200)]
mvebu: update and refactor uDPU DTS

uDPU DTS has pending upstream fixups, so backport those as well as split
the DTS into a DTSI and DTS in preparation for euroDPU support which
uses uDPU as the base.

Ethernet aliases have not yet been sent upstream but will be soon in order
for U-boot to set the correct MAC on both ethernet interfaces instead of
just one.

Since U-boot environment now has its own partition, update the envtools
config script to search for it instead.

Patch hardcoding PHY mode is also not applicable anymore, so drop it and
set in the uDPU DTS directly.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 years agoath79: add support for RouterBOARD mAP
Thibaut VARÈNE [Sun, 12 Jun 2022 19:48:40 +0000 (21:48 +0200)]
ath79: add support for RouterBOARD mAP

The MikroTik mAP-2nd (sold as mAP) is an indoor 2.4Ghz AP with
802.3af/at PoE input and passive PoE passthrough.

See https://mikrotik.com/product/RBmAP2nD for more details.

Specifications:
 - SoC: QCA9533
 - RAM: 64MB
 - Storage: 16MB NOR
 - Wireless: QCA9533 802.11b/g/n 2x2
 - Ethernet: 2x 10/100 ports,
    802.3af/at PoE in port 1, 500 mA passive PoE out on port 2
 - 7 user-controllable LEDs

Note: the device is a tiny AP and does not distinguish between both
ethernet ports roles, so they are both assigned to lan.
With the current setup, ETH1 is connected to eth1 and ETH2 is connected
to eth0 via the embedded switch port 2.

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. The "ETH1" port
 must be used to upload the TFTP image. Follow common MikroTik procedure
 as in https://openwrt.org/toh/mikrotik/common.

Tested-By: Andrew Powers-Holmes <aholmes@omnom.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2 years agoipq40xx: mikrotik: make RouterBoot partition writeable
Thibaut VARÈNE [Fri, 17 Jun 2022 10:43:43 +0000 (12:43 +0200)]
ipq40xx: mikrotik: make RouterBoot partition writeable

Linux MTD requires the parent partition be writable for a child
partition to be allowed write permission.
In order for soft_config to be writeable (and modifiable via sysfs),
the parent RouterBoot partition must be writeable

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2 years agoath79: mikrotik: add rw soft_config to extra devices
John Thomson [Tue, 17 May 2022 23:23:14 +0000 (09:23 +1000)]
ath79: mikrotik: add rw soft_config to extra devices

Linux MTD requires the parent partition be writable for a child
partition to be allowed write permission.

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
2 years agokernel: fix variable erasesize patch
John Thomson [Tue, 17 May 2022 01:15:45 +0000 (11:15 +1000)]
kernel: fix variable erasesize patch

Update this pending patch to remove the untested (variable eraseregions)
section, alongside simplifying the patch.

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
[refresh and split out unrelated refreshes]
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2 years agokernel: cut broken SPI_NOR 4K eraseblock LIMIT patch
John Thomson [Tue, 28 Sep 2021 10:51:56 +0000 (20:51 +1000)]
kernel: cut broken SPI_NOR 4K eraseblock LIMIT patch

Since 4e0c54bc5bc8 ("kernel: add support for kernel 5.4"),
the spi-nor limit 4k erasesize to spi-nor chips below a configured size
patch has not functioned as intended.

For uniform erasesize SPI-NOR devices, both
nor->erase_opcode & mtd->erasesize are used in erase operations.
These are set before, and not modified by, this
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT patch.
Thus, an SPI-NOR device with CONFIG_MTD_SPI_NOR_USE_4K_SECTORS will
always use 4k erasesize (where the device supports it).

If this patch was fixed to function as intended, there would be
cases where devices change from a 4K to a 64K erasesize.

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
2 years agox86: 64: Add kmod-igc to default packages
Hauke Mehrtens [Tue, 28 Jun 2022 22:15:36 +0000 (00:15 +0200)]
x86: 64: Add kmod-igc to default packages

This adds the igc driver for the Intel 2.5GBit Ethernet chip to the
default packages.

Fixes: #10064
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agoramips: add support for ASUS RP-AC87
Tamas Balogh [Mon, 20 Jun 2022 09:02:15 +0000 (11:02 +0200)]
ramips: add support for ASUS RP-AC87

Asus RP-AC87 ac2600 Repeater
2.4GHz 800Mbps
5GHz 1733Mbps

Hardware specifications:
SoC: MT7621A 2 cores 4 threads @880MHz
WiFi2G: MT7615E 2G 4x4 b/g/n
Wifi5G: MT7615E 5G 4x4 n/ac
DRAM: 128MB DDR3 @1200mhz
Flash: 16MB MX25L12805D SPI-NOR
LAN/WAN: MT7530 1x1000M

MAC addresses as verified by OEM firmware:
use address source
Lan/W5G *:B0 factory 0x8004 (label)
W2G *:B4 factory 0x0

Installation:

Asus windows recovery tool:

install the Asus firmware restoration utility
unplug the router, hold the reset button while powering it on
release when the power LED flashes slowly
specify a static IP on your computer:
IP address: 192.168.1.75
Subnet mask 255.255.255.0
Start the Asus firmware restoration utility, specify the factory image
and press upload
Do not power off the device after OpenWrt has booted until the LED flashing.
TFTP Recovery method:

set computer to a static ip, 192.168.1.2
connect computer to the LAN 1 port of the router
hold the reset button while powering on the router for a few seconds
send firmware image using a tftp client; i.e from linux:
$ tftp
tftp> binary
tftp> connect 192.168.1.1
tftp> put factory.bin
tftp> quit

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2 years agoiptables: default to ip(6)tables-nft
Etienne Champetier [Sun, 26 Jun 2022 04:54:45 +0000 (04:54 +0000)]
iptables: default to ip(6)tables-nft

OpenWrt now uses firewall4 (nft) by default,
so iptables should also default to nftables backend.

When multiple packages provide the same virtual package,
opkg pick the first one by alphabetical order,
so we rename iptables-legacy to iptables-zz-legacy and add
iptables-legacy in PROVIDES.

We also need to remove IPTABLES_NFTABLES config as
this cause recursive dependencies.

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2 years agoqoriq: add kernel 5.15 support
Stijn Tintel [Mon, 28 Mar 2022 13:45:52 +0000 (16:45 +0300)]
qoriq: add kernel 5.15 support

Add support for kernel 5.15 as testing kernel for qoriq.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agoqoriq: enable HARDENED_USERCOPY
Stijn Tintel [Tue, 28 Jun 2022 21:51:41 +0000 (00:51 +0300)]
qoriq: enable HARDENED_USERCOPY

The random crashes observed with HARDENED_USERCOPY enabled no longer
seem to occur. Enable HARDENED_USERCOPY to improve security.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agoqoriq: disable CONFIG_COMPAT
Stijn Tintel [Tue, 28 Jun 2022 21:12:23 +0000 (00:12 +0300)]
qoriq: disable CONFIG_COMPAT

We do not need support for 32 bit applications, as we're building
everything for 64 bit.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agoqoriq: 02_network fix sweth globbing logic
Thibaut VARÈNE [Tue, 28 Jun 2022 14:40:05 +0000 (16:40 +0200)]
qoriq: 02_network fix sweth globbing logic

This prevents invalid configuration of non-existent sweth devices.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2 years agoqoriq: define reset button for Firebox M300
Thibaut VARÈNE [Tue, 14 Jun 2022 13:54:48 +0000 (15:54 +0200)]
qoriq: define reset button for Firebox M300

This patch provides support for the Firebox M300 reset button.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2 years agoqoriq: define leds for Firebox M300
Thibaut VARÈNE [Tue, 14 Jun 2022 13:54:48 +0000 (15:54 +0200)]
qoriq: define leds for Firebox M300

This patch provides support for the Firebox M300 only user-controllable
bi-color LED, and makes the green "shield" LED act as the typical
OpenWrt status led.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2 years agokernel: add missing symbol to 5.15 config
Stijn Tintel [Tue, 28 Jun 2022 21:08:39 +0000 (00:08 +0300)]
kernel: add missing symbol to 5.15 config

Kernel 5.15.49 introduced a new symbol 'LIB_MEMNEQ'. Add it to the
generic 5.15 config.

Fixes: f1cd14448221 ("kernel: bump 5.15 to 5.15.49")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agokernel: add missing symbol to 5.10 config
Stijn Tintel [Tue, 28 Jun 2022 21:00:51 +0000 (00:00 +0300)]
kernel: add missing symbol to 5.10 config

Kernel 5.10.124 introduced a new symbol 'LIB_MEMNEQ'. Add it to the
generic 5.10 config.

Fixes: 9e5d743422ed ("kernel: bump 5.10 to 5.10.124")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agorealtek: add DGS-1210-28 factory image
Luiz Angelo Daros de Luca [Thu, 23 Jun 2022 20:50:03 +0000 (17:50 -0300)]
realtek: add DGS-1210-28 factory image

DGS-1210 switches support dual image, with each image composed of a
kernel and a rootfs partition. For image1, kernel and rootfs are in
sequence. The current OpenWrt image (written using a serial console),
uses those partitions together as the firmware partition, ignoring the
partition division. The current OEM u-boot fails to validate image1 but
it will only trigger firmware recovery if both image1 and image2 fail,
and it does not switch the boot image in case one of them fails the
check.

The OEM factory image is composed of concatenated blocks of data, each
one prefixed with a 0x40-byte cameo header. A normal OEM firmware will
have two of these blocks (kernel, rootfs). The OEM firmware only checks
the header before writing unconditionally the data (except the header)
to the correspoding partition.

The OpenWrt factory image mimics the OEM image by cutting the
kernel+rootfs firmware at the exact size of the OEM kernel partition
and packing it as "the kernel partition" and the rest of the kernel and
the rootfs as "the rootfs partition". It will only work if written to
image1 because image2 has a sysinfo partition between kernel2 and
rootfs2, cutting the kernel code in the middle.

Steps to install:

1) switch to image2 (containing an OEM image), using web or these CLI
   commands:
   - config firmware image_id 2 boot_up
   - reboot
2) flash the factory_image1.bin to image1. OEM web (v6.30.016)
   is crashing for any upload (ssh keys, firmware), even applying OEM
   firmwares. These CLI commands can upload a new firmware to the other
   image location (not used to boot):
   - download firmware_fromTFTP <tftpserver> factory_image1.bin
   - config firmware image_id 1 boot_up
   - reboot

To debrick the device, you'll need serial access. If you want to
recover to an OpenWrt, you can replay the serial installation
instructions. For returning to the original firmware, press ESC during
the boot to trigger the emergency firmware recovery procedure. After
that, use D-Link Network Assistant v2.0.2.4 to flash a new firmware.

The device documentation does describe that holding RESET for 12s
trigger the firmware recovery. However, the latest shipped U-Boot
"2011.12.(2.1.5.67086)-Candidate1" from "Aug 24 2021 - 17:33:09" cannot
trigger that from a cold boot. In fact, any U-Boot procedure that relies
on the RESET button, like reset settings, will only work if started from
a running original firmware. That, in practice, cancels the benefit of
having two images and a firmware recovery procedure (if you are not
consider dual-booting OpenWrt).

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
2 years agoscripts: add cameo image header generator
Luiz Angelo Daros de Luca [Fri, 24 Jun 2022 19:05:16 +0000 (16:05 -0300)]
scripts: add cameo image header generator

The cameo header is a 0x40-byte header used by D-Link DGS 1210 switches
and Apresia ApresiaLightGS series. cameo-imghdr.py is a clean-room
reimplementation of imghdr present in the DGS-1210-28-GPL package.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
[fix board_version argument's help text]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agohostapd: disable mbo by default
Stijn Tintel [Tue, 28 Jun 2022 19:14:29 +0000 (22:14 +0300)]
hostapd: disable mbo by default

Enabling mbo by default on 802.11ax devices breaks for encryption types
that do not enable 802.11w by default. Disable mbo by default to fix
this. Enabling mbo by default on 802.11ax devices was not explained in
the commit message anyway.

Fixes: 6eee9836565c ("hostapd: introduce mbo option")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agoath79: support for TP-Link EAP225 v4
Sven Hauer [Mon, 27 Jun 2022 20:25:12 +0000 (22:25 +0200)]
ath79: support for TP-Link EAP225 v4

This model is almost identical to the EAP225 v3.
Major difference is the RTL8211FS PHY Chipset.

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-MIMO
* Ethernet (RTL8211FS): 1× 1GbE, 802.3at PoE

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

Debricking:
* Serial port can be soldered on PCB J4 (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 192.168.1.1 # default, change as required
    setenv serverip 192.168.1.10 # 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.

Signed-off-by: Sven Hauer <sven.hauer+github@uniku.de>
2 years agohostapd: introduce min_tx_power option
Stijn Tintel [Mon, 27 Jun 2022 14:06:34 +0000 (17:06 +0300)]
hostapd: introduce min_tx_power option

Introduce a new option min_tx_power to configure the minimum permitted
max TX power (in dBm) for ACS and DFS channel selection.

Imagine the following regulatory rules:
  * 5180 MHz [36] (21.0 dBm)
  * 5200 MHz [40] (21.0 dBm)
  * 5220 MHz [44] (21.0 dBm)
  * 5240 MHz [48] (21.0 dBm)
  * 5260 MHz [52] (20.0 dBm) (radar detection)
  * 5280 MHz [56] (20.0 dBm) (radar detection)
  * 5300 MHz [60] (20.0 dBm) (radar detection)
  * 5320 MHz [64] (20.0 dBm) (radar detection)
  * 5500 MHz [100] (21.0 dBm) (radar detection)
  * 5520 MHz [104] (21.0 dBm) (radar detection)
  * 5540 MHz [108] (21.0 dBm) (radar detection)
  * 5560 MHz [112] (21.0 dBm) (radar detection)
  * 5580 MHz [116] (21.0 dBm) (radar detection)
  * 5600 MHz [120] (21.0 dBm) (radar detection)
  * 5620 MHz [124] (21.0 dBm) (radar detection)
  * 5640 MHz [128] (21.0 dBm) (radar detection)
  * 5660 MHz [132] (21.0 dBm) (radar detection)
  * 5680 MHz [136] (21.0 dBm) (radar detection)
  * 5700 MHz [140] (21.0 dBm) (radar detection)
  * 5720 MHz [144] (13.0 dBm) (radar detection)
  * 5745 MHz [149] (13.0 dBm)
  * 5765 MHz [153] (13.0 dBm)
  * 5785 MHz [157] (13.0 dBm)
  * 5805 MHz [161] (13.0 dBm)
  * 5825 MHz [165] (13.0 dBm)
  * 5845 MHz [169] (13.0 dBm)
  * 5865 MHz [173] (13.0 dBm)

When ACS or DFS end up selecting channel 144 or higher, some clients
might no longer be able to communicate with the AP due to the TX power
being limited to 13 dBm. Setting min_tx_power to 20 will result in
hostapd not considering these channels during ACS or after a DFS event.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: David Bauer <mail@david-bauer.net>
2 years agohostapd: introduce background_radar option
Stijn Tintel [Mon, 6 Jun 2022 13:36:27 +0000 (16:36 +0300)]
hostapd: introduce background_radar option

Introduce a new option background_radar to toggle hostapd's background
radar feature. Enabling this allows DFS CAC to run on dedicated radio RF
chains while the radio(s) are otherwise running normal AP activities on
other channels.

As OpenWrt configures hostapd to use a channel list even when a single
channel is configured, using this feature requires a list of channels in
/etc/config/wireless. Alternatively, channel can be set to auto.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: David Bauer <mail@david-bauer.net>
2 years agohostapd: support MBO in bss_transition_request
Stijn Tintel [Fri, 3 Jun 2022 08:22:50 +0000 (11:22 +0300)]
hostapd: support MBO in bss_transition_request

Support the use of MBO in the bss_transition_request ubus method.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: David Bauer <mail@david-bauer.net>
2 years agohostapd: introduce mbo option
Stijn Tintel [Mon, 6 Jun 2022 13:54:00 +0000 (16:54 +0300)]
hostapd: introduce mbo option

Introduce a new option mbo to toggle Multi Band Operation aka Agile
Multiband for a BSS.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: David Bauer <mail@david-bauer.net>
2 years agohostapd: enable MBO if 802.11ax is enabled
Stijn Tintel [Mon, 20 Jun 2022 16:25:22 +0000 (19:25 +0300)]
hostapd: enable MBO if 802.11ax is enabled

Multi Band Operation is required for 802.11ax certification, so let's
enable it if 802.11ax support is enabled.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: David Bauer <mail@david-bauer.net>
2 years agohostapd: add config symbol to enable MBO
Stijn Tintel [Mon, 20 Jun 2022 16:23:18 +0000 (19:23 +0300)]
hostapd: add config symbol to enable MBO

Multi Band Operation aka Agile Multiband introduces new Transition
and Transition Rejection Reason Codes that should improve client
steering. Add a config symbol to enable it, and enable it by default for
the full variants.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: David Bauer <mail@david-bauer.net>
2 years agokernel: backport RTL8211F clkout-disable patch
Sander Vanheule [Mon, 27 Jun 2022 18:36:32 +0000 (20:36 +0200)]
kernel: backport RTL8211F clkout-disable patch

In Linux v5.14 an extra feature was introduced for the RTL8211F phy,
allowing to disable a clock output from the phy. Part of that patch is to
always (soft) reset the phy upon initialisation.

This phy reset is required to have a working ethernet on the TP-Link
EAP225-Outdoor v3 and EAP225 v4 after a reboot. Otherwise the ethernet
port will only function properly on cold boots.

Tested-by: Andre Klärner <kandre@ak-online.be> # EAP225-Outdoor v3
Tested-by: Sven Hauer <sven.hauer+github@uniku.de> # EAP225 v4
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agofirmware-utils: bump to git HEAD
Sander Vanheule [Mon, 27 Jun 2022 19:24:24 +0000 (21:24 +0200)]
firmware-utils: bump to git HEAD

The support-list partition for the EAP225-V3 board ID became larger than
the allocated size, resulting in factory image generation for the
EAP225-Outdoor v3 and EAP225 v3 to fail. The make directive
Build/tplink-safeloader ignores this failure however, resulting in a
seemingly successful build with empty factory images.

Included changes:
    e609c5d75186 tplink-safeloader: drop unqualified EAP225-V3 IDs

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agoath10k: enable encapsulation offload by default
Tiago Gaspar [Thu, 23 Jun 2022 13:15:06 +0000 (14:15 +0100)]
ath10k: enable encapsulation offload by default

Enable ath10k offload by default. This improves wireless performance
without requiring user configuration.
This adds ath10k_core to the AUTOLOAD section so that the frame_mode
paramter can be added to /etc/modules.d and passed to the driver.
The frame_mode 2 enables ethernet mode on the firmware/driver.
This parameter is set by passing a different value to the frame_mode
value on kmod insmod.
Link to the original patchset:
https://patchwork.kernel.org/project/linux-wireless/cover/20220516032519.29831-1-ryazanov.s.a@gmail.com/

Signed-off-by: Tiago Gaspar <tiagogaspar8@gmail.com>
2 years agolantiq: dts: td-w8980: Remove duplicate PCI properties
Martin Blumenstingl [Sat, 25 Jun 2022 19:19:22 +0000 (21:19 +0200)]
lantiq: dts: td-w8980: Remove duplicate PCI properties

lantiq,bus-clock, interrupt-map-mask and interrupt-map are already
defined with these exact values in vr9.dtsi. Drop them from
vr9_tplink_tdw8980.dts to just have one place where these are
maintained.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2 years agokernel: bump 5.15 to 5.15.49
Rui Salvaterra [Wed, 22 Jun 2022 13:12:26 +0000 (14:12 +0100)]
kernel: bump 5.15 to 5.15.49

Deleted (upstreamed):
generic/backport-5.15/702-v5.19-34-net-ethernet-mtk_eth_soc-fix-misuse-of-mem-alloc-int.patch [1]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.49&id=fcba12a4308143f1f1dcb0face8b3ffb51edcc5c

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: bump 5.15 to 5.15.48
Rui Salvaterra [Thu, 16 Jun 2022 16:06:51 +0000 (17:06 +0100)]
kernel: bump 5.15 to 5.15.48

No patches needed rebasing.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: bump 5.15 to 5.15.47
Rui Salvaterra [Mon, 20 Jun 2022 09:50:45 +0000 (10:50 +0100)]
kernel: bump 5.15 to 5.15.47

Deleted (upstreamed):
generic/backport-5.15/702-v5.19-32-net-ethernet-mtk_eth_soc-out-of-bounds-read-in-mtk_h.patch [01]

[01] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.47&id=b24ca1cf846273361d5bd73a35de95a486a54b6d

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[Removed 702-v5.19-32-net-ethernet-mtk_eth_soc-out-of-bounds-read-in-mtk_h.patch]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agokernel: bump 5.15 to 5.15.46
Rui Salvaterra [Thu, 9 Jun 2022 13:19:03 +0000 (14:19 +0100)]
kernel: bump 5.15 to 5.15.46

Deleted (upstreamed):
generic/backport-5.15/400-mtdblock-warn-if-opened-on-NAND.patch [01]
generic/backport-5.15/420-v5.19-01-mtd-spinand-gigadevice-fix-Quad-IO-for-GD5F1GQ5UExxG.patch [02]
bcm27xx/patches-5.15/950-0029-Revert-mailbox-avoid-timer-start-from-callback.patch [03]
bcm27xx/patches-5.15/950-0417-bcm2711_thermal-Don-t-clamp-temperature-at-zero.patch [04]
bcm27xx/patches-5.15/950-0740-drm-vc4-hvs-Fix-frame-count-register-readout.patch [05]
bcm27xx/patches-5.15/950-0755-drm-vc4-hvs-Reset-muxes-at-probe-time.patch [06]
bcm27xx/patches-5.15/950-0759-drm-vc4-txp-Don-t-set-TXP_VSTART_AT_EOF.patch [07]
bcm27xx/patches-5.15/950-0760-drm-vc4-txp-Force-alpha-to-be-0xff-if-it-s-disabled.patch [08]
bcm53xx/patches-5.15/031-v5.17-0005-ARM-dts-BCM5301X-update-CRU-block-description.patch [09]
mediatek/patches-5.15/102-mt7629-enable-arch-timer.patch [10]

Manually rebased:
bcm27xx/patches-5.15/950-0741-drm-vc4-hvs-Use-pointer-to-HVS-in-HVS_READ-and-HVS_W.patch

[01] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=f41c9418c5898c01634675150696da290fb86796
[02] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=d5b66645305c6f3a1b2cf75cee4157b07f293309
[03] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=119f99209d8531359bcb935f252ec435f9d21b13
[04] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=c4e1280abead1552e1764684079a43e222ccd163
[05] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=08465a1889cb48ec64431e9db745b5be15399251
[06] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=0e26a6da02e63b75b629573d13966c36aa6264f0
[07] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=01c9020b2e7c85e394879f34851805179ac3d1d8
[08] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=d47f85cc0171a5d3c5bd8cbb8a98983ca3357cbd
[09] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=5151f24ac937ff7eb1f078257c66e3c0f0296010
[10] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.46&id=ffea838686b82fbb2801cdfad6ba5309d15c032d

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: 5.15: x86-64: enable CONFIG_SLS
Rui Salvaterra [Fri, 10 Jun 2022 08:07:31 +0000 (09:07 +0100)]
kernel: 5.15: x86-64: enable CONFIG_SLS

Starting with GCC 12, we have the possibility of mitigating straight-line
speculation vulnerabilities in x86-64 targets. Make it so.

Reported-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: bump 5.10 to 5.10.125
John Audia [Sat, 25 Jun 2022 17:28:25 +0000 (13:28 -0400)]
kernel: bump 5.10 to 5.10.125

All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.10 to 5.10.124
John Audia [Wed, 22 Jun 2022 15:58:33 +0000 (11:58 -0400)]
kernel: bump 5.10 to 5.10.124

All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.10 to 5.10.123
John Audia [Thu, 16 Jun 2022 18:47:54 +0000 (14:47 -0400)]
kernel: bump 5.10 to 5.10.123

No patches required a rebase, just updated checksum.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.10 to 5.10.122
John Audia [Tue, 14 Jun 2022 19:31:10 +0000 (15:31 -0400)]
kernel: bump 5.10 to 5.10.122

All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.10 to 5.10.121
John Audia [Sat, 11 Jun 2022 12:50:59 +0000 (08:50 -0400)]
kernel: bump 5.10 to 5.10.121

Manually rebased:
    oxnas/patches-5.10/100-oxnas-clk-plla-pllb.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agovalgrind: bump to 3.19.0
Rui Salvaterra [Mon, 23 May 2022 09:59:30 +0000 (10:59 +0100)]
valgrind: bump to 3.19.0

Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agoopkg: update to 2022-02-24
Josef Schlehofer [Wed, 15 Jun 2022 14:31:12 +0000 (16:31 +0200)]
opkg: update to 2022-02-24

Changes:
9c44557 opkg_remove: avoid remove pkg repeatly with option --force-removal-of-dependent-packages
2edcfad libopkg: set 'const' attribute for argv

This should fix the CI error in the packages repository, which happens with perl.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agodropbear: cherry-pick upstream commit 544f28a0
Konstantin Demin [Mon, 20 Jun 2022 07:37:15 +0000 (10:37 +0300)]
dropbear: cherry-pick upstream commit 544f28a0

Resolves #10081

Reported-By: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
2 years agotools/meson: update to 0.61.5
Rosen Penev [Tue, 21 Jun 2022 04:09:08 +0000 (21:09 -0700)]
tools/meson: update to 0.61.5

Mostly backports by a Red Hat employee as 0.62 and newer demands Python
3.7+. Same reason 0.61 is kept here.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoarptables: update to 0.0.5 and cleanup
Nick Hainke [Sat, 25 Jun 2022 14:24:18 +0000 (16:24 +0200)]
arptables: update to 0.0.5 and cleanup

Update to 0.0.5:

efae894 arptables 0.0.5 release
1f3c6bc libarptc: Simplify alloc_handle by using calloc()
4e5e23a Eliminate compiler warning about size passed to strncmp()
bf11d72 Add .gitignore
28b22d5 arptables: legacy renaming
988d6a4 arptables: cleanup sysvinit script
f4ab8f6 src: Remove support for libc5
047f37b src: Use stdint types
4bb2f83 arptables: Add MARK target
dbbe9f7 arptables: Add revision field for arptables userspace
935acea src: fix compilation warning
5700dbf src: cache in tree and use x_tables.h
4b7d6b0 arptables: remove dead dynamic hooks code
c299484 arptables: fix potential buffer overflow (author: dcb)
9fcaf70 arptables: add missing long option --set-counters and update documentation
36daba3 arptables: install man pages
f79b957 Add man pages for arptables-{save,restore}
c492c16 add GPL text
8f58693 fix potential buffer overflows reported by static analysis
ee4ec13 make static analysis tool happy (false positive)
b064d44 build an libarptc.a archive

Cleanup Makefile:
- Switch to release versions
- Use ftp(http) mirror
- Add PKG_LICENSE_FILES

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agoethtool: update to 5.18
Nick Hainke [Sat, 25 Jun 2022 14:41:18 +0000 (16:41 +0200)]
ethtool: update to 5.18

9eabf30 Release version 5.18.
2b3ddcb ethtool: fec: Change the prompt string to adapt to current situations
d660dde pretty: add missing message descriptions for rings
aaeb16a pretty: support u8 enumerated types
6b320b8 rings: add support to set/get cqe size
41fddc0 update UAPI header copies
42e6c28 help: fix alignment of rx-buf-len parameter
e1d0a19 ethtool.8: Fix typo in man page
37f0586 Release version 5.17.
8c2984c strset: do not put a pointer to a local variable to nlctx
8fd02a2 ioctl: add the memory free operation after send_ioctl call fails
b9f25ea ethtool: Add support for OSFP transceiver modules
6e79542 features: add --json support
5ed5ce5 Merge branch 'next' into  master
b90abbb man: document recently added parameters
51a9312 tunables: add support to get/set tx copybreak buf size
a081c2a rings: add support to set/get rx buf len
d699bab Merge branch 'master' into next
52db6b9 Merge branch 'review/module-extstate' into next
6407b52 monitor: add option for --show-module/--set-module
1f35786 ethtool: Add transceiver module extended state
2d4c5b7 ethtool: Add ability to control transceiver modules' power mode
005908b Update UAPI header copies

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agowolfssl: disable AES-NI by default for x86_64
Eneas U de Queiroz [Tue, 21 Jun 2022 18:21:44 +0000 (15:21 -0300)]
wolfssl: disable AES-NI by default for x86_64

WolfSSL is crashing with an illegal opcode in some x86_64 CPUs that have
AES instructions but lack other extensions that are used by WolfSSL
when AES-NI is enabled.

Disable the option by default for now until the issue is properly fixed.
People can enable them in a custom build if they are sure it will work
for them.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2 years agofirmware-utils: bump to git HEAD
Sander Vanheule [Sun, 26 Jun 2022 14:56:01 +0000 (16:56 +0200)]
firmware-utils: bump to git HEAD

Fixes the safeloader model identifiers for EAP225-Outdoor v1/v3 devices.

1e3d47292b2e tplink-safeloader: fix EAP225-Outdoor model IDs
9563fe8e78cb tplink-safeloader: add regionless EAP225-V3 IDs

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agomac80211: increase airtime scheduler quantum
Felix Fietkau [Sun, 26 Jun 2022 09:47:12 +0000 (11:47 +0200)]
mac80211: increase airtime scheduler quantum

improves performance by requiring fewer iterations over tx queues

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agorealtek: cleanup LAG logging
Markus Stockhausen [Sun, 26 Jun 2022 08:28:26 +0000 (10:28 +0200)]
realtek: cleanup LAG logging

Setting up DSA bond silently fails if mode is not 802.3ad. Add log message
to fix it. As we are already here harmonize all logging messages in the
add/delete functions.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2 years agomac80211: add airtime fairness improvements
Felix Fietkau [Sat, 18 Jun 2022 08:52:09 +0000 (10:52 +0200)]
mac80211: add airtime fairness improvements

This reverts the airtime scheduler back from the virtual-time based scheduler
to the deficit round robin scheduler implementation.
This reduces burstiness and improves fairness by improving interaction with AQL.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agorealtek: EnGenius EWS2910P: add support for SFP ports
Alexandru Gagniuc [Mon, 16 May 2022 02:54:47 +0000 (21:54 -0500)]
realtek: EnGenius EWS2910P: add support for SFP ports

The SFP cages 9F and 10F share the same SCL line. Currently, there
isn't a good way to model this. Thus, only one SFP port can be fully
supported.

Cage 10F is fully supported with an I2C bus and sfp handle. Linux
automatically handles enabling or disabling the TX laser.

Cage 9F is only parially supported, without the sfp handle. The SDA
line is hogged as an input, so that it remains high. SCL transitions
sould not affect modules connected to this cage. The default value of
the tx-disable line is high (active). It is exported as a gpio, but
the laser is off by default. To enable the laser:

    echo 0 > /sys/class/gpio/sff-p9-tx-disable/value

Thus, both modules can be used for networking, but only 10F will be
able to detect and identify a plugged in SFP module.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2 years agorealtek: add support for EnGenius EWS2910P
Alexandru Gagniuc [Sat, 14 May 2022 06:34:04 +0000 (01:34 -0500)]
realtek: add support for EnGenius EWS2910P

Add support for the Engenius EWS2910P PoE switch. This is an RTL8380
based switch with two SFP slots, and PoE 802.3af one every RJ-45 port.

The specs say 802.3af, but the vendor firmware configures the PSE for
a budget of 31W, indicating 802.3at support.

Specifications:
---------------
* SoC:       Realtek RTL8380M
* Flash:     32 MiB SPI flash Macronix MX25L25635E
* RAM:       256 MiB (As reported by bootloader)
* Ethernet:  16x 10/100/1000 Mbps with PoE
              2x SFP slots
* Buttons:   1 "Reset" button on front panel
             1 "LED mode: button on front panel
             1 "On/Off" Toggle switch on the back
* Power:     48V-54V DC barrel jack
* UART:      1 serial header (JP1) with populated 2.54mm pitch header
             Labeled GRTV for ground, rx, tx, and 3.3V respectively
* PoE:       1 STM ST32F100 microcontroller
             2 BCM59111 PSE chips
Works:
------
  - (8) RJ-45 ethernet ports
  - Switch functions
  - LEDs and buttons

Not yet enabled:
----------------
  - SFP ports (will be enabled in a subsequent change)
  - Power-over-Ethernet (requires realtek-poe package)

Install via web interface:
-------------------------

The factory firmware will accept and flash the initramfs image. It is
recommended to flash to "Partition 0". Flashing to "Partition 1" is
not supported at this point.

The factory web GUI will show the following warning:

 " Warning: The firmware version is v0.00.00-c0.0.00
     The firmware image you are uploading is older than the current
     firmware of the switch. The device will reset back to default
     settings. Are you sure you want to proceed?"

This is expected when flashing OpenWrt. After the initramfs image
boots, flash the -sysupgrade using either the commandline or LuCI.

Install via serial console/tftp:
--------------------------------

The u-boot firmware will not stop the boot, regardless of which key is
pressed. To access the u-boot console, ground out the CLK (pin 16) of
the ROM (U22) when u-boot is reading the linux image. If timed
correctly, the image CRC will fail, and u-boot will drop to a shell:
    > rtk network on
    > setenv ipaddr <address of tftp server>
    > tftp $(freemem) <name-of-initramfs-image.bin>
    > bootm

Then flash the -sysupgrade using either the commandline or luci.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
[gpio-led node names, OpenWrt and LuCI capitalization in commit message]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agoramips: add support for Asus RT-N12+ B1 and RT-N300 B1
Semih Baskan [Tue, 21 Jun 2022 05:43:50 +0000 (08:43 +0300)]
ramips: add support for Asus RT-N12+ B1 and RT-N300 B1

Asus RT-N12+ B1 and Asus RT-N300 B1 are the same device
with a different name.

The OEM firmwares have the same MD5 with Asus RT-N11P B1.

Same instructions for Asus RT-N11P B1 see:
commit c3dc52e39ac8 ("ramips: add support for Asus RT-N10P V3 / RT-N11P B1 / RT-N12 VP B1")

Signed-off-by: Semih Baskan <strstgs@gmail.com>
(Added id from the PR review to commit message)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoramips: add support for ASUS RT-AX53U
Chuncheng Chen [Tue, 14 Jun 2022 06:11:52 +0000 (14:11 +0800)]
ramips: add support for ASUS RT-AX53U

Specifications:
- Device: ASUS RT-AX53U
- SoC: MT7621AT
- Flash: 128MB
- RAM: 256MB
- Switch: 1 WAN, 3 LAN (10/100/1000 Mbps)
- WiFi: MT7905 2x2 2.4G + MT7975 2x2 5G
- Ports: USB 3.0
- LEDs: 1x POWER (blue, configurable)
        3x LAN (blue, configurable)
        1x WAN (blue, configurable)
        1x USB (blue, not configurable)
1x 2.4G (blue, not configurable)
1x 5G (blue, not configurable)

Flash by U-Boot TFTP method:
- Configure your PC with IP 192.168.1.2
- Set up TFTP server and put the factory.bin image on your PC
- Connect serial port(rate:115200) and turn on AP, then interrupt "U-Boot Boot Menu" by hitting any key
   Select "2. Upgrade firmware"
   Press enter when show "Run firmware after upgrading? (Y/n):"
   Select 0 for TFTP method
   Input U-Boot's IP address: 192.168.1.1
   Input TFTP server's IP address: 192.168.1.2
   Input IP netmask: 255.255.255.0
   Input file name: openwrt-ramips-mt7621-asus_rt-ax53u-squashfs-factory.bin
- Restart AP aftre see the log "Firmware upgrade completed!"

Signed-off-by: Chuncheng Chen <ccchen1984@gmail.com>
(replaced led label, added key-* prefix to buttons, added note about
BBT)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agokexec-tools: add kdump scripts util
Chen Minqiang [Sat, 30 Apr 2022 15:28:29 +0000 (23:28 +0800)]
kexec-tools: add kdump scripts util

This add back kdump scripts to save crashlog or vmcore to disk

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2 years agoapm821xx: WNDAP660: fix ethernet port ordering
Christian Lamparter [Fri, 24 Jun 2022 18:55:15 +0000 (20:55 +0200)]
apm821xx: WNDAP660: fix ethernet port ordering

Tim Small reported:
| Viewing the 'Network' -> 'Switch' config page in LuCI:
|
| The LuCI LAN 1 port corresponds to the port physically
|     labelled 2 at the rear of the device.
| [...]
|
| When a patch cord is attached to the port labelled 1 [...],
| the LED labelled 2 illuminates. [...]

=> Ports, LuCI and LEDs are reversed/don't match.

Reported-by: Tim Small
Fixes: #10111
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agox86: fix damaged config 5.10 refresh
Christian Lamparter [Fri, 24 Jun 2022 17:30:50 +0000 (19:30 +0200)]
x86: fix damaged config 5.10 refresh

Restore CONFIG_I8K + CONFIG_INTEL_INT0002_VGPIO that got
removed when I refreshed the config. Each x86 target gets
its own CONFIG_CRYPTO_BLAKE2S + LIB settings as only the
x86_64 can use the accelerated x86 version.

Also remove two extra spaces that sneaked into geode's config.

Fixes: 539e60539a2f ("generic: enable CRYPTO_LIB_BLAKE2S[_X86|_ARM]")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoocteon: add support for Ubiquiti UniFi Security Gateway
Clemens Hopfer [Sat, 28 May 2022 19:34:48 +0000 (21:34 +0200)]
octeon: add support for Ubiquiti UniFi Security Gateway

Ubiquiti UniFi Security Gateway (USG) is largely identical to
the EdgeRouter Lite (ERLite-3) apart from a different board ID
and two dome leds.

Device data (from WikiDev):
  CPU: Cavium Octeon Plus CN5020 @500MHz 2-cores
  Ethernet: 3x Atheros AR8035-A GbE PHY's
  Flash: On-board 4MB Flash
  Storage: Internal 3.8GB USB Flash (Kingston ID) drive
    w/ 1.5GB free for use occupies single internal USB port.
  Serial: 1x RJ45 port on front panel. 115200, 8N1
  Buttons: 1x Reset

Flash instructions are identical to EdgeRouter Lite.

Signed-off-by: Clemens Hopfer <openwrt@wireloss.net>
2 years agomt76: update to the latest version
Felix Fietkau [Fri, 24 Jun 2022 19:15:12 +0000 (21:15 +0200)]
mt76: update to the latest version

1696f9eb8b40 mt76: mt7915: do not copy ieee80211_ops pointer in mt7915_mmio_probe
a4db5869d660 mt76: mt7915: update mpdu density in 6g capability
500c18014d95 mt76: mt7915: add sta_rec with EXTRA_INFO_NEW for the first time only
3ef66fc7c714 mt76: do not check the ccmp pn for ONLY_MONITOR frame
dd682eead016 mt76: mt7915: update the maximum size of beacon offload
4fb991f2c997 mt76: mt7615: add sta_rec with EXTRA_INFO_NEW for the first time only
ba39ed3b44f1 mt76: mt76x02: improve reliability of the beacon hang check
fd8211cf7c59 mt76: mt7921: sync with updated patch
f2edd340ddb4 mt76: allow receiving frames with invalid CCMP PN via monitor interfaces
b6e865e2cc70 mt76: mt7615: fix throughput regression on DFS channels

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoath79: fix rootfs padding for D-Link DAP-2xxx
Sebastian Schaper [Wed, 22 Jun 2022 21:38:26 +0000 (23:38 +0200)]
ath79: fix rootfs padding for D-Link DAP-2xxx

It was observed that `rootfs_data` was sometimes not correctly erased
after performing sysupgrade, resulting in previous settings to prevail.

Add call to `wrgg-pad-rootfs` in sysupgrade image recipe to ensure any
previous jffs2 will be wiped, consistent with DAP-2610 from the ipq40xx
target, which introduced the double-flashing procedure for these devices.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
2 years agomac80211: brcmfmac: allow setting MAC from NVMEM cells
Tomasz Maciej Nowak [Mon, 20 Jun 2022 12:50:23 +0000 (14:50 +0200)]
mac80211: brcmfmac: allow setting MAC from NVMEM cells

The MAC can be stored in OTP memory or in flash memory, currently the
driver could read it only from OTP. Backport the patch allowing setting
the MAC address from flash. Some modules have the OTP programmed but
the ODM/OEM decided to overwrite it with value stored in flash.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agogeneric: enable CRYPTO_LIB_BLAKE2S[_X86|_ARM]
Tomasz Maciej Nowak [Mon, 20 Jun 2022 12:49:45 +0000 (14:49 +0200)]
generic: enable CRYPTO_LIB_BLAKE2S[_X86|_ARM]

This is now built-in, enable so it won't propagate on target configs.

Link: https://lkml.org/lkml/2022/1/3/168
Fixes: 79e7a2552e89 ("kernel: bump 5.15 to 5.15.44")
Fixes: 0ca93670693b ("kernel: bump 5.10 to 5.10.119")
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
(Link to Kernel's commit taht made it built-in,
CRYPTO_LIB_BLAKE2S[_ARM|_X86] as it's selectable, 5.10 backport)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agokernel: clean-up after kernel 5.4 removal
Tomasz Maciej Nowak [Mon, 20 Jun 2022 12:48:19 +0000 (14:48 +0200)]
kernel: clean-up after kernel 5.4 removal

These narrowments are no longer useful, since there's no lower version
than 5.10 supported in tree.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agonftables: update to 1.0.4
Nick Hainke [Tue, 7 Jun 2022 19:32:11 +0000 (21:32 +0200)]
nftables: update to 1.0.4

Needs libnftnl 1.2.2.

3eb0da9f build: Bump version to 1.0.4
a964d1b5 tests: shell: remove leftover modules on cleanup
818f7dde evaluate: reset ctx->set after set interval evaluation
3835de19 tests: shell: sets_with_ifnames release netns on exit
59bd944f optimize: segfault when releasing unsupported statement

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agolibnftnl: update to 1.2.2
Nick Hainke [Tue, 7 Jun 2022 19:27:12 +0000 (21:27 +0200)]
libnftnl: update to 1.2.2

build: libnftnl 1.2.2 release
accee9a set_elem: missing export symbol
e2514c0 exthdr: tcp option reset support

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agonftables: clean up Makefile
Nick Hainke [Wed, 1 Jun 2022 05:53:35 +0000 (07:53 +0200)]
nftables: clean up Makefile

Add PKG_LICENSE_FILES. Use SPDX.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agonftables: update to 1.0.3
Nick Hainke [Wed, 1 Jun 2022 05:43:13 +0000 (07:43 +0200)]
nftables: update to 1.0.3

Remove backport:
- 001-examples-compile-with-make-check.patch

87fdf683 build: Bump version to 1.0.3
c4ec825b nft: simplify chain lookup in do_list_chain
4f6724f1 intervals: fix compilation --with-mini-gmp
4c20fe95 json: update json output ordering to place rules after chains
57741350 netlink_delinearize: release last register on exit
d6fdb0d8 sets_with_ifnames: add test case for concatenated range
88b2345a segtree: add pretty-print support for wildcard strings in concatenated sets
806ab081 netlink: swap byteorder for host-endian concat data
c224aa6b intervals: deletion should adjust range not yet in the kernel
ea1f1c9f optimize: memleak in statement matrix
0a6dbfce optimize: merge nat rules with same selectors into map
743b0e81 optimize: do not clone unsupported statement
c8b35039 optimize: incorrect logic in verdict comparison
fc4da141 src: fix always-true assertions
d1289bff intervals: set on EXPR_F_KERNEL flag for new elements in set cache
721b9dec tests: add concat test case with integer base type subkey
22b750aa src: allow use of base integer types as set keys in concatenations
3ed9fada intervals: build list of elements to be added from cache
e45b4939 intervals: fix deletion of multiple ranges with automerge
3b7b22ae intervals: add elements with EXPR_F_KERNEL to purge list only
ea31855d netlink: remove unused argument from helper function
48204bd7 intervals: Simplify element sanity checks
ab1b21be intervals: unset EXPR_F_KERNEL for adjusted elements
e0beff27 src: restore interval sets work with string datatypes
3e8d934e intervals: support to partial deletion with automerge
7a6e1604 evaluate: allow for zero length ranges
3da9643f intervals: add support to automerge with kernel elements
7b061e63 mnl: update mnl_nft_setelem_del() to allow for more reuse
fdb8e0ff src: remove rbtree datastructure
81e36530 src: replace interval segment tree overlap and automerge
f1cc44ed src: add EXPR_F_KERNEL to identify expression in the kernel
ad43b84e segtree: add support for get element with sets that contain ifnames
06db2308 segtree: use correct byte order for 'element get'
4c6681a7 tests: add testcases for interface names in sets
5e393ea1 segtree: add string "range" reversal support
2fb4d7ea src: make interval sets work with string datatypes
403936c1 evaluate: string prefix expression must retain original length
ada50f84 segtree: split prefix and range creation to a helper function
ae7d32fc evaluate: keep prefix expression length
d2b23984 evaluate: make byteorder conversion on string base type a no-op
c36ecfc2 tests: py: Add meta time tests without 'meta' keyword
6fa4ff56 tests: py: Don't colorize output if stderr is redirected
f561a0cc tests: monitor: Hide temporary file names from error output
75fea8a5 tests: py: extend meta time coverage
4460b839 meta: fix compiler warning in date_type_parse()
02100978 meta: time: use uint64_t instead of time_t
4e0026dc include: add missing `#include`
ab74fb5b examples: add .gitignore file
bcad4761 tests: py: add inet/vmap tests
214494aa optimize: Restore optimization for raw payload expressions
82762ab6 src: allow to use integer type header fields via typeof set declaration
64bb3f43 src: allow to use typeof of raw expressions in set declaration
ff0f30e3 expression: typeof verdict needs verdict datatype
60f5c107 src: copy field_count for anonymous object maps as well
4cf97abf rule: Avoid segfault with anonymous chains
4e718641 evaluate: init cmd pointer for new on-stack context
1ea71c23 optimize: do not assume log prefix
3f36cc6c optimize: do not merge unsupported statement expressions
19960c8d optimize: incorrect assert() for unexpected expression type
3de1dbd2 optimize: more robust statement merge with vmap
99eb4696 optimize: fix vmap with anonymous sets
e8f0fa21 scanner: Fix for ipportmap nat statements
59d184be scanner: dup, fwd, tproxy: Move to own scopes
069a0450 scanner: meta: Move to own scope
2165324d scanner: at: Move to own scope
a67fce7f scanner: nat: Move to own scope
578467c1 scanner: policy: move to own scope
a1669709 scanner: flags: move to own scope
020372d9 scanner: reject: Move to own scope
543bf3c2 scanner: import, export: Move to own scopes
88105810 scanner: reset: move to own Scope
8a7e430a scanner: monitor: Move to own Scope
e5547017 scanner: rt: Extend scope over rt0, rt2 and srh
04c95f14 scanner: type: Move to own scope
62a95698 scanner: dst, frag, hbh, mh: Move to own scopes
a060d912 scanner: ah, esp: Move to own scopes
4e215fdf scanner: osf: Move to own scope
5166b298 scanner: dccp, th: Move to own scopes
3e04a6e2 scanner: udp{,lite}: Move to own scope
bbdcfbfa scanner: comp: Move to own scope.
232f2c32 scanner: synproxy: Move to own scope
26b53653 scanner: tcp: Move to own scope
f5722119 scanner: igmp: Move to own scope
a7d8cca9 scanner: icmp{,v6}: Move to own scope
5d837d27 src: add tcp option reset support
1d507ce7 build: explicitly pass --version-script to linker
e98a9b83 libnftables.map: export new nft_ctx_{get,set}_optimize API
9eb98b3b tests: add test case for flowtable with owner flag
18a08fb7 examples: compile with `make check' and add AM_CPPFLAGS

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agoath79: bsap18x0: specify FIS directory location in dts
Tomasz Maciej Nowak [Tue, 7 Jun 2022 13:58:32 +0000 (15:58 +0200)]
ath79: bsap18x0: specify FIS directory location in dts

The redboot-fis parser has option to specify the location of FIS
directory, use that, instead of patching the parser to scan for it, and
specifying location in kernel config.

Tested-by: Brian Gonyer <bgonyer@gmail.com>
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agotreewide: use upstream compatible for RedBoot FIS parser
Tomasz Maciej Nowak [Tue, 7 Jun 2022 13:58:31 +0000 (15:58 +0200)]
treewide: use upstream compatible for RedBoot FIS parser

No reason to keep that around, since upstream one does the same.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agoath79: bsap18x0: pad rootfs image
Tomasz Maciej Nowak [Tue, 7 Jun 2022 13:58:30 +0000 (15:58 +0200)]
ath79: bsap18x0: pad rootfs image

This image is supposed to be written with help of bootloader to the
flash, but as it stands, it's not aligned to block size and RedBoot will
happily create non-aligned partition size in FIS directory. This could
lead to kernel to mark the partition as read-only, therefore pad the
image to block erase size boundary.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agoath79: ja76pf2: use nvmem cells to specify MAC addresses
Tomasz Maciej Nowak [Tue, 7 Jun 2022 13:58:29 +0000 (15:58 +0200)]
ath79: ja76pf2: use nvmem cells to specify MAC addresses

The bootloader on this board hid the partition containig MAC addresses
and prevented adding this space to FIS directory, therefore those had to
be stored in RedBoot configuration as aliases to be able to assigne them
to proper interfaces. Now that fixed partition size are used instead of
redboot-fis parser, the partition containig MAC addresses could be
specified, and with marking it as nvmem cell, we can assign them without
userspace involvement.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agoath79: move image check for devices with RedBoot
Tomasz Maciej Nowak [Tue, 7 Jun 2022 13:58:28 +0000 (15:58 +0200)]
ath79: move image check for devices with RedBoot

Don't comence the switch to RAMFS when the image format is wrong. This
led to rebooting the device, which could lead to false impression that
upgrade succeded.
Being here, factor out the code responsible for upgrading RedBoot
devices to separate file.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agoath79: switch some RedBoot based devices to OKLI loader
Tomasz Maciej Nowak [Tue, 7 Jun 2022 13:58:27 +0000 (15:58 +0200)]
ath79: switch some RedBoot based devices to OKLI loader

After the kernel has switched version to 5.10, JA76PF2 and
RouterStations lost the capability to sysupgrade the OpenWrt version.
The cause is the lack of porting the patches responsible for partial
flash erase block writing and these boards FIS directory and RedBoot
config partitions share the same erase block. Because of that the FIS
directory can't be updated to accommodate kernel/rootfs partition size
changes. This could be remedied by bootloader update, but it is very
intrusive and could potentially lead to non-trivial recovery procedure,
if something went wrong. The less difficult option is to use OpenWrt
kernel loader, which will let us use static partition sizes and employ
mtd splitter to dynamically adjust kernel and rootfs partition sizes.
On sysupgrade from ath79 19.07 or 21.02 image, which still let to modify
FIS directory, the loader will be written to kernel partition, while the
kernel+rootfs to rootfs partition.

The caveats are:
* image format changes, no possible upgrade from ar71xx target images
* downgrade to any older OpenWrt version will require TFTP recovery or
  usage of bootloader command line interface

To downgrade to 19.07 or 21.02, or to upgrade if one is already on
OpenWrt with kernel 5.10, for RouterStations use TFTP recovery
procedure. For JA76PF2 use instructions from this commit message:
commit 0cc87b3bacee ("ath79: image: disable sysupgrade images for routerstations and ja76pf2"),
replacing kernel image with loader (loader.bin suffix) and rootfs
image with firmware (firmware.bin suffix).

Fixes: b10d6044599d ("kernel: add linux 5.10 support")
Fixes: 15aa53d7ee65 ("ath79: switch to Kernel 5.10")
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
(mkubntimage was moved to generic-ubnt.mk)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoath79: jj76pf2: enable TCN75 sensor
Tomasz Maciej Nowak [Tue, 7 Jun 2022 13:58:26 +0000 (15:58 +0200)]
ath79: jj76pf2: enable TCN75 sensor

This SBC has Microchip TCN75 sensor, wich measures ambient temperature.
Specify it in dts to allow readout by applications using kernel hwmon
API.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agoinclude/prereq-build.mk: macOS cross build improvements
Mark Mentovai [Thu, 9 Jun 2022 15:00:58 +0000 (11:00 -0400)]
include/prereq-build.mk: macOS cross build improvements

This updates prereq-build.mk to find a suitable realpath utility, and
adds another place to look for a suitable getopt utility.

realpath has been used most notably by scripts/ipkg-build since
commit bb95be9265a9 ("scripts,ipkg-build: use realpath for pkg_dir")
and there are assorted other uses of it during a build.
It is ordinarily provided by GNU coreutils. This adds a SetupHostCommand
to locate it either under its own name or under grealpath, the name that
it will be available as under MacPorts or Homebrew, which use
--program-prefix=g.

Similarly, update the SetupHostCommand for getopt to be able to locate a
util-linux getopt at the default path used by MacPorts, in the same
fashion that
commit cc16f5d73e77 ("build: try to find getopt in macOS homebrew's standard location")'
did for Homebrew. As there is no standard alternative --program-prefix
for util-linux utilities in the way that GNU packages often use a "g"
prefix, this path-based approach is required in case a non-util-linux
getopt (such as one provided by an OS) shadows the util-linux getopt
in the PATH.

Signed-off-by: Mark Mentovai <mark@moxienet.com>
2 years agoomap: enable 5.15 as testing kernel
Alexey Smirnov [Mon, 4 Apr 2022 08:59:25 +0000 (11:59 +0300)]
omap: enable 5.15 as testing kernel

Compiled for and run-tested on BBB

Signed-off-by: Alexey Smirnov <s.alexey@gmail.com>
2 years agoomap: update config for 5.15
Alexey Smirnov [Mon, 4 Apr 2022 08:58:48 +0000 (11:58 +0300)]
omap: update config for 5.15

This was done by executing make kernel_oldconfig

Signed-off-by: Alexey Smirnov <s.alexey@gmail.com>
2 years agoomap: copy config from 5.10 to 5.15
Alexey Smirnov [Mon, 4 Apr 2022 08:06:27 +0000 (11:06 +0300)]
omap: copy config from 5.10 to 5.15

copy config from 5.10 to 5.15

Signed-off-by: Alexey Smirnov <s.alexey@gmail.com>
2 years agokernel: add kmod-leds-turris-omnia
Stefan Kalscheuer [Thu, 19 May 2022 19:10:34 +0000 (21:10 +0200)]
kernel: add kmod-leds-turris-omnia

Add support for LEDs of the CZ.NIC Turris Omnia using the upstream
driver.

There is no generic way to control the LEDs in UCI manner, however
the kernel module is the first step to actually use the RGB LEDs in
custom logic.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
(removed DMARC notice, added driver to Turris Omnia, moved module
recipe to target/linux/mvebu/modules.mk)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoramips: force ZyXEL NR7101 to boot from "Kernel" partition
Bjørn Mork [Fri, 29 Apr 2022 14:38:27 +0000 (16:38 +0200)]
ramips: force ZyXEL NR7101 to boot from "Kernel" partition

Make sure BootingFlag points to the system partition we install to.

The BootingFlag variable selects which system partition the system
boots from (0 => "Kernel", 1 => "Kernel2"). OpenWrt does not yet have
device specific support for this dual image scheme, and can therefore
only boot from "Kernel".

This has not been an issue until now, since all known OEM firmware
versions have ignored "Kernel2" - leaving the BootingFlag fixed at 0.
But the newest OEM firmware has a new upgrade procedure, installing
to the "inactive" system partition and setting BootingFlag accordingly.

This workaround is needed until the dual image scheme is fully
supported.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2 years agoramips: mt7621-dts: fix claiming rgmii2 pin group for EdgeRouter X SFP
Arınç ÜNAL [Thu, 17 Mar 2022 13:10:08 +0000 (16:10 +0300)]
ramips: mt7621-dts: fix claiming rgmii2 pin group for EdgeRouter X SFP

For a TX->TX connected external phy to transmit/receive data, the rgmii2
pin group needs to be claimed with gpio function, at least for EdgeRouter X
SFP. We already claim the pin group under the pinctrl node with gpio
function on the gpio node on mt7621_ubnt_edgerouter-x.dtsi.

However, we should claim a pin group under its consumer node. It's the
ethernet node in this case, which we already claim the rgmii2 pin group
under it on mt7621.dtsi. Therefore, set the function as gpio on the rgmii2
node for EdgeRouter X SFP and get rid of claiming the rgmii2 pin group
under the pinctrl node. With this change, we also get to remove a
definition from mt7621_ubnt_edgerouter-x.dtsi which is specific to
EdgeRouter X SFP.

This change is tested on an EdgeRouter X SFP.

Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
2 years agobcm53xx: copy patch disabling GRO to kernel 5.15
Rafał Miłecki [Fri, 24 Jun 2022 07:09:02 +0000 (09:09 +0200)]
bcm53xx: copy patch disabling GRO to kernel 5.15

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobcm53xx: enable & setup packet steering
Rafał Miłecki [Fri, 10 Jun 2022 08:51:23 +0000 (10:51 +0200)]
bcm53xx: enable & setup packet steering

Packet steering can improve NAT masquarade performance on Northstar by
40-50%. It makes reaching 940-942 Mb/s possible on BCM4708 (and
obviously BCM47094 too). Add scripts setting up the most optimal
Northstar setup.

Below are testing results for running iperf TCP traffic from LAN to WAN.
They were used to pick up golden values.

┌──────────┬──────────┬────────────────────┬────────────────────┐
│   eth0   │  br-lan  │ flow_offloading=0  │ flow_offloading=1  │
│          │          ├─────────┬──────────┼─────────┬──────────┤
│ rps_cpus │ rps_cpus │ BCM4708 │ BCM47094 │ BCM4708 │ BCM47094 │
├──────────┼──────────┼─────────┼──────────┼─────────┼──────────┤
│        0 │        0 │     387 │      671 │     707 │      941 │
│        0 │        1 │     343 │      576 │     705 │      941 │
│        0 │        2 │   ✓ 574 │    ✓ 941 │     704 │      940 │
│        1 │        0 │     320 │      549 │     561 │      941 │
│        1 │        1 │     327 │      551 │     553 │      941 │
│        1 │        2 │     523 │    ✓ 940 │     559 │      940 │
│        2 │        0 │     383 │      652 │   ✓ 940 │      941 │
│        2 │        1 │     448 │      754 │   ✓ 942 │      941 │
│        2 │        2 │     404 │      655 │   ✓ 941 │      941 │
└──────────┴──────────┴─────────┴──────────┴─────────┴──────────┘

Above tests were performed with all eth0 interrupts handled by CPU0.
Setting "echo 2 > /proc/irq/38/smp_affinity" was tested on BCM4708 but
it didn't increased speeds (just required different steering):

┌──────────┬──────────┬───────────┐
│   eth0   │  br-lan  │ flow_offl │
│   rx-0   │   rx-0   │ oading=0  │
│ rps_cpus │ rps_cpus │  BCM4708  │
├──────────┼──────────┼───────────┤
│        0 │        0 │       384 │
│        0 │        1 │     ✓ 574 │
│        0 │        2 │       348 │
│        1 │        0 │       383 │
│        1 │        1 │       412 │
│        1 │        2 │       448 │
│        2 │        0 │       321 │
│        2 │        1 │       520 │
│        2 │        2 │       327 │
└──────────┴──────────┴───────────┘

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobcm53xx: disable GRO by default at kernel level
Rafał Miłecki [Mon, 20 Jun 2022 08:21:20 +0000 (10:21 +0200)]
bcm53xx: disable GRO by default at kernel level

This improves NAT masquarade network performance.

An alternative to kernel change would be runtime setup but that requires
ethtool and identifying relevant network interface and all related
switch ports interfaces.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>