openwrt/staging/blocktrron.git
2 years agolantiq: enable interrupts on second VPEs
Aleksander Jan Bajkowski [Sat, 10 Sep 2022 18:13:58 +0000 (20:13 +0200)]
lantiq: enable interrupts on second VPEs

This patch is needed to handle interrupts by the second VPE on the Lantiq
ARX100, xRX200, xRX300 and xRX330 SoCs. Switching some ICU interrupts to
the second VPE results in a hang. Currently, the vsmp_init_secondary()
function is responsible for enabling these interrupts. It only enables
Malta-specific interrupts (SW0, SW1, HW4 and HW5).

The MIPS core has 8 interrupts defined. On Lantiq SoCs, hardware
interrupts are wired to an ICU instance. Each VPE has an independent
instance of the ICU. The mapping of the ICU interrupts is shown below:
SW0(IP0) - IPI call,
SW1(IP1) - IPI resched,
HW0(IP2) - ICU 0-31,
HW1(IP3) - ICU 32-63,
HW2(IP4) - ICU 64-95,
HW3(IP5) - ICU 96-127,
HW4(IP6) - ICU 128-159,
HW5(IP7) - timer.

This patch enables all interrupt lines on the second VPE.

This problem affects multithreaded SoCs with a custom interrupt controller.
SOCs with 1004Kc core and newer use the MIPS GIC. At this point, I am aware
that the Realtek RTL839x and RTL930x SoCs may need a similar fix. In the
future, this may be replaced with some generic solution.

Tested on Lantiq xRX200.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2 years agoramips: add support for SNR SNR-CPE-ME2-Lite
Alexey Kosmakov [Mon, 30 May 2022 08:46:34 +0000 (13:46 +0500)]
ramips: add support for SNR SNR-CPE-ME2-Lite

SNR SNR-CPE-ME2-Lite is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based on MT7621A.

Specification:
    - SoC           : MediaTek MT7621A
    - RAM           : DDR3 128 MiB
    - Flash         : SPI-NOR 16 MiB
    - WLAN          : 2.4 GHz 2T2R (MediaTek MT7603E)
                      5 GHz 2T2R (MediaTek MT7613BE)
    - Ethernet      : 10/100/1000 Mbps x5
      - Switch      : MediaTek MT7530 (SoC)
    - UART          : through-hole on PCB
      - J4: 3.3V, GND, TX, RX
      - 57600n8
    - Power         : 12 VDC, 1.5 A

Flash instruction via WEB (firmware 1.10.4 and later)
    1. Boot SNR-CPE-ME2-Lite normally with "Router" mode
    2. Access to "http://192.168.1.1/" and open "Administration -> Management" page
    3. Select the OpenWrt factory image in "Firmware update" section and click "Update" button
    4. Wait ~120 seconds to complete flashing

Flash instruction via TFTP (all version):
    1. Boot SNR-CPE-ME2-Lite to recovery mode (hold the reset button while power on)
    2. Send firmware via TFTP client:
       TFTP Server address: 192.168.1.1
       TFTP Client address: 192.168.1.131
    3. Wait ~120 seconds to complete flashing

Signed-off-by: Alexey Kosmakov <a.kosmakov@nagtech.ru>
2 years agoramips: enable LZMA loader to fix Linksys RE6500 boot
Mark King [Sun, 25 Sep 2022 20:53:52 +0000 (21:53 +0100)]
ramips: enable LZMA loader to fix Linksys RE6500 boot

At some point after 21.02.3 and before 22.03.0, the size limits of the
Linksys RE6500 were reached and prevent booting from the 22.03.0 release
or builds of current SNAPSHOT. This patch allows builds of master to boot
again and has been tested on my device.

Fixes: #8577
Signed-off-by: Mark King <mark@vemek.co>
2 years agokernel: bump 5.10 to 5.10.146
John Audia [Wed, 28 Sep 2022 20:05:00 +0000 (16:05 -0400)]
kernel: bump 5.10 to 5.10.146

All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.10 to 5.10.145
John Audia [Fri, 23 Sep 2022 20:58:05 +0000 (16:58 -0400)]
kernel: bump 5.10 to 5.10.145

Manually rebased:
  hack-5.10/780-usb-net-MeigLink_modem_support.patch

Removed upstreamed:
  patches-5.10/110-gpio-mpc8xxx-Fix-support-for-IRQ_TYPE_LEVEL_LOW-flow.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.145&id=24196210b198e8e39296e277bb93b362aa207775

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agokernel: bump 5.15 to 5.15.71
John Audia [Wed, 28 Sep 2022 17:26:15 +0000 (13:26 -0400)]
kernel: bump 5.15 to 5.15.71

Removed upstreamed:
  uml/patches-5.15/001-um-fix-default-console-kernel-parameter.patch[1]

All other patches automatically rebased

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.71&id=e1dbe8a62098b20f5093cf75ade2f2dc9259b006

Signed-off-by: John Audia <therealgraysky@proton.me>
Compile-tested: mvebu/cortexa72 (RB5009UG+S+IN)
Run-tested: mvebu/cortexa72 (RB5009UG+S+IN)

2 years agokernel: bump 5.15 to 5.15.70
John Audia [Fri, 23 Sep 2022 19:27:54 +0000 (15:27 -0400)]
kernel: bump 5.15 to 5.15.70

Manually rebased:
  hack-5.15/780-usb-net-MeigLink_modem_support.patch

Removed upstreamed:
  patches-5.15/110-gpio-mpc8xxx-Fix-support-for-IRQ_TYPE_LEVEL_LOW-flow.patch[1]

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.70&id=89cfddd416bac41ff35f37f928ed3d7fefef908e

Signed-off-by: John Audia <therealgraysky@proton.me>
2 years agotools/cmake: update to 3.24.2
Nick Hainke [Wed, 14 Sep 2022 13:04:13 +0000 (15:04 +0200)]
tools/cmake: update to 3.24.2

Release Notes:
https://www.kitware.com/cmake-3-24-2-is-available-for-download/

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agotools/expat: switch to tar.xz to save bandwidth
Nick Hainke [Sun, 2 Oct 2022 09:22:23 +0000 (11:22 +0200)]
tools/expat: switch to tar.xz to save bandwidth

The tar.xz download is a bit smaller. Use this download to save traffic.

Suggested-by: hardfalcon
Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agotools/expat: update to 2.4.9
Nick Hainke [Fri, 30 Sep 2022 06:27:44 +0000 (08:27 +0200)]
tools/expat: update to 2.4.9

Fixes CVE-2022-40674.

Release Notes:
https://github.com/libexpat/libexpat/blob/R_2_4_9/expat/Changes

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agotools/meson: backport WSL2 fix
Rosen Penev [Thu, 22 Sep 2022 22:41:28 +0000 (15:41 -0700)]
tools/meson: backport WSL2 fix

For some reason, Microsoft's Plan9 driver returns IOError on missing
file.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoath79: fix LibreRouter-v1 watchdog and poe_pass
Santiago Piccinini [Fri, 30 Sep 2022 13:44:04 +0000 (10:44 -0300)]
ath79: fix LibreRouter-v1 watchdog and poe_pass

Watchdog and poe_passthrough gpios require the jtag disabled.

Signed-off-by: Santiago Piccinini <spiccinini@altermundi.net>
2 years agomt76: update to the latest version
Felix Fietkau [Sat, 1 Oct 2022 14:05:05 +0000 (16:05 +0200)]
mt76: update to the latest version

e4fa68a9b3b3 linux-firmware: update firmware for MT7921 WiFi device
60fcf08fe659 linux-firmware: update firmware for MT7921 WiFi device
9d601f4eee8f linux-firmware: update firmware for MT7922 WiFi device
e49b6063fb4b wifi: mt76: move mt76_rate_power from core to mt76x02 driver code
3f27f6adb1ab wifi: mt76: mt76x02: simplify struct mt76x02_rate_power
c07f3d2d5ede wifi: mt76: mt7921: fix antenna signal are way off in monitor mode
9059a5de3bd0 wifi: mt76: Remove unused inline function mt76_wcid_mask_test()
d75f15ddeb90 wifi: mt76: mt7915: fix bounds checking for tx-free-done command
06df7e689294 wifi: mt76: mt7915: reserve 8 bits for the index of rf registers
ad3d0f8db00b wifi: mt76: mt7915: rework eeprom tx paths and streams init
66065073177b wifi: mt76: mt7915: deal with special variant of mt7916
b0114a0abb57 wifi: mt76: mt7915: rework testmode tx antenna setting
6dee964e1f36 wifi: mt76: connac: introduce mt76_connac_spe_idx()
48c116d92939 wifi: mt76: mt7915: add spatial extension index support
db6db4ded0fd wifi: mt76: mt7915: set correct antenna for radar detection on MT7915D
2b8f56a72d76 wifi: mt76: mt7915: fix mt7915_mac_set_timing()
d554a02554db wifi: mt76: mt7915: move wed init routines in mmio.c
61ce40e65852 wifi: mt76: mt7915: enable wed for mt7986 chipset
584a96ec4a0f wifi: mt76: mt7915: enable wed for mt7986-wmac chipset
172d68b6253d mt76: mt76x02: fix vht rate power array overrun
72b87836d368 Revert "mt76: use IEEE80211_OFFLOAD_ENCAP_ENABLED instead of MT_DRV_AMSDU_OFFLOAD"

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agorealtek: use correct CAUSEF_DC macro in prom.c
Sander Vanheule [Sat, 1 Oct 2022 07:55:01 +0000 (09:55 +0200)]
realtek: use correct CAUSEF_DC macro in prom.c

The workaround for an already-enabled R4K timer used a non-existent
macro CAUSE_DC. Fix compiling by using the actual macro CAUSEF_DC.

Fixes: b7aab1958591 ("realtek: SMP handling of R4K timer interrupts")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2 years agorealtek: SMP handling of R4K timer interrupts
Markus Stockhausen [Fri, 30 Sep 2022 06:03:38 +0000 (08:03 +0200)]
realtek: SMP handling of R4K timer interrupts

Until now there has been no good explanation why we mess with the R4K
timer on SMP. After extensive testing and looking at the SDK code it
becomes clear what it is all about.

When we disable the CEVT_R4K module (we will do with the new timer
driver) the R4K timer hardware still fires interrupts on the secondary
CPU. To get around this we have two options:

- Disable IRQ 7
- Stop the counter completely

This patch selects option two because this is the root of evil.. To be
on the safe side we will do it only in case the CEVT_R4K module is
disabled.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
2 years agorealtek: fix SMP startup
Markus Stockhausen [Mon, 26 Sep 2022 06:46:08 +0000 (08:46 +0200)]
realtek: fix SMP startup

The scope of the SMP startup structure is wrong. It is created on the
stack and not as a global variable. This can lead to startup failures.

Fixes: 3f41360eb70c ("realtek: use upstream recommendation for CPU start")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de
2 years agorealtek: Convert incorrect v5.10 patches
Olliver Schinagl [Tue, 20 Sep 2022 10:01:48 +0000 (12:01 +0200)]
realtek: Convert incorrect v5.10 patches

OpenWRT's developer guide prefers having actual patches so they an be
sent upstream more easily.

However, in this case, Adding proper fields also allows for `git am` to
properly function. Some of these patches are quite old, and lack much
traceable history.

This commit tries to rectify that, by digging in the history to find
where and how it was first added.

It is by no means perfect and also shows some patches that should have
been long gone.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoath79: Convert incorrect 5.10 and 5.15 patches
Olliver Schinagl [Tue, 20 Sep 2022 10:01:48 +0000 (12:01 +0200)]
ath79: Convert incorrect 5.10 and 5.15 patches

OpenWRT's developer guide prefers having actual patches so they an be
sent upstream more easily.

However, in this case, Adding proper fields also allows for `git am` to
properly function. Some of these patches are quite old, and lack much
traceable history.

This commit tries to rectify that, by digging in the history to find
where and how it was first added.

It is by no means perfect and also shows some patches that should have
been long gone.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agogeneric: Convert incorrect generic/5.10 patches
Olliver Schinagl [Tue, 20 Sep 2022 10:01:48 +0000 (12:01 +0200)]
generic: Convert incorrect generic/5.10 patches

OpenWRT's developer guide prefers having actual patches so they an be
sent upstream more easily.

However, in this case, Adding proper fields also allows for `git am` to
properly function. Some of these patches are quite old, and lack much
traceable history.

This commit tries to rectify that, by digging in the history to find
where and how it was first added.

It is by no means perfect and also shows some patches that should have
been long gone.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2 years agoCI: use tools:latest container to speedup kernel workflow
Christian Marangi [Mon, 5 Sep 2022 21:18:00 +0000 (23:18 +0200)]
CI: use tools:latest container to speedup kernel workflow

Use tools:latest container with prebuilt host tools to speedup kernel
compilation in kernel workflow.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts/ext-tools: introduce new script to install prebuilt tools
Christian Marangi [Fri, 30 Sep 2022 17:36:06 +0000 (19:36 +0200)]
scripts/ext-tools: introduce new script to install prebuilt tools

Add a simple script to make it easier to install a prebuilt tools tar.
Currently it will be used by our tools container and kernel workflow on
github.

Simple script that take a tar that contains prebuilt host tools, extract
them and refresh the timestamps to skip recompilation of such host
tools.

By default it refresh timestamps of build_dir/host and
staging_dir/host/stamp.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoCI: create Docker container containing compiled tools
Paul Spooren [Mon, 8 Aug 2022 21:37:54 +0000 (23:37 +0200)]
CI: create Docker container containing compiled tools

Currently each Kernel compilation takes about 30 minutes of which 20
minutes are used to compile our tools. While the toolchain is downloaded
and instantly ready the tools are missing.

This commit starts uploading a Docker container including compiled tools
which are ready to use. It is automatically updated whenever any tools
are changed.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agotools: add option BUILD_ALL_HOST_TOOLS to compile all host tools
Christian Marangi [Fri, 9 Sep 2022 20:53:01 +0000 (22:53 +0200)]
tools: add option BUILD_ALL_HOST_TOOLS to compile all host tools

Add option to compile all host tools even if not needed.
This can be useful to prepare a universal precompiled host tools
archive to use in another buildroot and speedup compilation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agobuild: make find_md5 reproducible with AUTOREMOVE
Christian Marangi [Tue, 6 Sep 2022 14:48:37 +0000 (16:48 +0200)]
build: make find_md5 reproducible with AUTOREMOVE

While experimenting with the AUTOREMOVE option in search of a way to use
prebuilt host tools in different buildroot, it was discovered that the
md5 generated by find_md5 in depends.mk is not reproducible.

Currently the hash is generated by the path of the file in addition to
the file mod time. Out of confusion, probably, there was an idea that
such command was used on the package build_dir. Reality is that this
command is run on the package files. (Makefile, patches, src)

This is problematic because the package Makefile (for example) change at
each git clone and base the hash on the Makefile mtime doesn't really
reflect if the Makefile actually changes across a buildroot or not.

A better approach is to generate an hash of each file and then generate
an hash on the sort hash list. This way we remove the problem of git
clone setting a wrong mtime while keeping the integrity of checking if a
file changed for the package as any change will result in a different
hash.

Introduce a new kind of find_md5 function, find_md5_reproducible that
apply this new logic and limit it only with AUTOREMOVE option set to
prevent any kind of slowdown due to additional hash generation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agotools/cmake: fix compilation with host libzstd-dev
Rosen Penev [Fri, 30 Sep 2022 08:42:51 +0000 (01:42 -0700)]
tools/cmake: fix compilation with host libzstd-dev

cmake's find_package looks at host paths first for some reason. Switch
to using pkgconfig for the search, matching other modules.

Fixes: 3848cf458ef9 ("tools/cmake: Build without some included libs")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoCI: use buildbot container for building
Paul Spooren [Sun, 20 Mar 2022 20:02:08 +0000 (20:02 +0000)]
CI: use buildbot container for building

Instead of using a fresh Linux installation which is setup every time
use the Buildbot container which is used for our own Buildbot
infrastructure, too.
While at it also tidy up the workflow to make it more consistent with
other workflow.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts/download.pl: add tsinghua and ustc mirrors
Bradford Zhang [Fri, 30 Sep 2022 05:28:28 +0000 (13:28 +0800)]
scripts/download.pl: add tsinghua and ustc mirrors

Add https://mirrors.tuna.tsinghua.edu.cn/ and https://mirrors.ustc.edu.cn/ mirrors into download.pl to speed up download in China.

Signed-off-by: Bradford Zhang <zyc@zyc.name>
2 years agoramips: add led driver to UniFi FlexHD defaut package set
Daniel Golle [Fri, 30 Sep 2022 12:21:16 +0000 (13:21 +0100)]
ramips: add led driver to UniFi FlexHD defaut package set

Add kmod-leds-ubnt-ledbar to the packages selected by default on the
UniFi FlexHD access point.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agoubnt-ledbar: make package available on other targets
Daniel Golle [Fri, 30 Sep 2022 12:17:07 +0000 (13:17 +0100)]
ubnt-ledbar: make package available on other targets

As also ramips/mt7621 now has a user of the ubnt-ledbar driver, make
the package available on all targets by removing the dependency on
@TARGET_mediatek_mt7622.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agomediatek: add support t-phy settings from efuse on MT7986
Daniel Golle [Wed, 28 Sep 2022 18:37:43 +0000 (19:37 +0100)]
mediatek: add support t-phy settings from efuse on MT7986

Import patches from mtk-openwrt-feeds (MTK SDK) to support reading
t-phy settings affecting PCIe as well as USB2 and USB3 from efuse.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agomediatek: filogic: add efuse layout to mt7986a.dtsi
Daniel Golle [Thu, 29 Sep 2022 17:50:23 +0000 (18:50 +0100)]
mediatek: filogic: add efuse layout to mt7986a.dtsi

efuse is used to store board-specific settings of some of the in-SoC
peripherals. Add it to device tree, so it gets probed on boot and can
be accessed by other drivers.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agomediatek: add patch allowing 1-byte wide access to efuse
Daniel Golle [Wed, 14 Sep 2022 01:15:32 +0000 (02:15 +0100)]
mediatek: add patch allowing 1-byte wide access to efuse

Allow byte-wise access to mtk-efuse as some drivers require that.
Patch imported from mtk-openwrt-feeds (MTK SDK).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agokernel: fold lzma debloat patch into the patch adding the code
Felix Fietkau [Fri, 30 Sep 2022 10:52:35 +0000 (12:52 +0200)]
kernel: fold lzma debloat patch into the patch adding the code

Reduces the number of hack patches

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agokernel: move kernel image cmdline hack to the octeon target
Felix Fietkau [Fri, 30 Sep 2022 09:48:21 +0000 (11:48 +0200)]
kernel: move kernel image cmdline hack to the octeon target

It is the only remaining user of this hack

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agokernel: remove hack patch, move kirkwood specific kmods to target modules.mk
Felix Fietkau [Fri, 30 Sep 2022 09:42:06 +0000 (11:42 +0200)]
kernel: remove hack patch, move kirkwood specific kmods to target modules.mk

Tweaking the KCONFIG line of kmod-ata-marvell-sata makes the hack patch
unnecessary

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agokernel: move ubnt ledbar driver to a separate package
Felix Fietkau [Fri, 30 Sep 2022 09:26:47 +0000 (11:26 +0200)]
kernel: move ubnt ledbar driver to a separate package

Simplifies the tree by removing a non-upstream kernel patch and related kconfig
symbols

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agokernel: remove udp tunnel kconfig selection hack
Felix Fietkau [Fri, 30 Sep 2022 09:07:02 +0000 (11:07 +0200)]
kernel: remove udp tunnel kconfig selection hack

The corresponding kmod package is marked as HIDDEN and selected by all
other kernel modules that need it, so the kconfig side will be in sync
without manual selection

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agomac80211: fix decap offload for stations on AP_VLAN interfaces
Felix Fietkau [Wed, 28 Sep 2022 11:57:55 +0000 (13:57 +0200)]
mac80211: fix decap offload for stations on AP_VLAN interfaces

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agotools/cmake: Build without some included libs
Rosen Penev [Sat, 24 Sep 2022 23:57:40 +0000 (16:57 -0700)]
tools/cmake: Build without some included libs

Saves a little bit of time when compiling cmake.

Added patches to fix searching liblzma and zlib. The issue is that
because pkgconfig is not used, the system libraries get used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/expat: build with autotools again
Rosen Penev [Sun, 25 Sep 2022 00:11:52 +0000 (17:11 -0700)]
tools/expat: build with autotools again

Allows to set expat as a dependency to cmake and save on compilation
time.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/zlib: switch to configure script
Rosen Penev [Sun, 25 Sep 2022 07:22:24 +0000 (00:22 -0700)]
tools/zlib: switch to configure script

A future commit will make tools/cmake use this.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agowolfssl: fix TLSv1.3 RCE in uhttpd by using 5.5.1-stable (CVE-2022-39173)
Petr Å tetiar [Wed, 28 Sep 2022 09:28:06 +0000 (11:28 +0200)]
wolfssl: fix TLSv1.3 RCE in uhttpd by using 5.5.1-stable (CVE-2022-39173)

Fixes denial of service attack and buffer overflow against TLS 1.3
servers using session ticket resumption. When built with
--enable-session-ticket and making use of TLS 1.3 server code in
wolfSSL, there is the possibility of a malicious client to craft a
malformed second ClientHello packet that causes the server to crash.

This issue is limited to when using both --enable-session-ticket and TLS
1.3 on the server side. Users with TLS 1.3 servers, and having
--enable-session-ticket, should update to the latest version of wolfSSL.

Thanks to Max at Trail of Bits for the report and "LORIA, INRIA, France"
for research on tlspuffin.

Complete release notes https://github.com/wolfSSL/wolfssl/releases/tag/v5.5.1-stable

Fixes: CVE-2022-39173
Fixes: https://github.com/openwrt/luci/issues/5962
References: https://github.com/wolfSSL/wolfssl/issues/5629
Tested-by: Kien Truong <duckientruong@gmail.com>
Reported-by: Kien Truong <duckientruong@gmail.com>
Signed-off-by: Petr Å tetiar <ynezz@true.cz>
2 years agoRevert "wolfssl: fix TLSv1.3 RCE in uhttpd by using latest 5.5.1-stable release"
Petr Å tetiar [Thu, 29 Sep 2022 05:50:07 +0000 (07:50 +0200)]
Revert "wolfssl: fix TLSv1.3 RCE in uhttpd by using latest 5.5.1-stable release"

This reverts commit a596a8396b1ef23cd0eda22d9a628392e70e1e1a as I've
just discovered private email, that the issue has CVE-2022-39173
assigned so I'm going to reword the commit and push it again.

Signed-off-by: Petr Å tetiar <ynezz@true.cz>
2 years agowolfssl: refresh patches
Petr Å tetiar [Wed, 28 Sep 2022 09:58:22 +0000 (11:58 +0200)]
wolfssl: refresh patches

So they're tidy and apply cleanly.

Signed-off-by: Petr Å tetiar <ynezz@true.cz>
2 years agowolfssl: fix TLSv1.3 RCE in uhttpd by using latest 5.5.1-stable release
Petr Å tetiar [Wed, 28 Sep 2022 09:28:06 +0000 (11:28 +0200)]
wolfssl: fix TLSv1.3 RCE in uhttpd by using latest 5.5.1-stable release

Fixes denial of service attack and buffer overflow against TLS 1.3
servers using session ticket resumption. When built with
--enable-session-ticket and making use of TLS 1.3 server code in
wolfSSL, there is the possibility of a malicious client to craft a
malformed second ClientHello packet that causes the server to crash.

This issue is limited to when using both --enable-session-ticket and TLS
1.3 on the server side. Users with TLS 1.3 servers, and having
--enable-session-ticket, should update to the latest version of wolfSSL.

Thanks to Max at Trail of Bits for the report and "LORIA, INRIA, France"
for research on tlspuffin.

Complete release notes https://github.com/wolfSSL/wolfssl/releases/tag/v5.5.1-stable

Fixes: https://github.com/openwrt/luci/issues/5962
References: https://github.com/wolfSSL/wolfssl/issues/5629
Signed-off-by: Petr Å tetiar <ynezz@true.cz>
2 years agobcm53xx: backport clk driver fix for DT nodes names
Rafał Miłecki [Thu, 29 Sep 2022 03:51:25 +0000 (05:51 +0200)]
bcm53xx: backport clk driver fix for DT nodes names

It allows dropping downstream patch renaming DT nodes.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobuild: fix warnings from grep
Chris Osgood [Thu, 15 Sep 2022 12:09:38 +0000 (08:09 -0400)]
build: fix warnings from grep

Fixes build warnings when using newer versions of grep.

Signed-off-by: Chris Osgood <chris_github@functionalfuture.com>
Tested-by: Georgi Valkov <gvalkov@gmail.com>
2 years agoscripts/download.pl: generilize and simplify download tool check
Christian Marangi [Wed, 28 Sep 2022 12:22:49 +0000 (14:22 +0200)]
scripts/download.pl: generilize and simplify download tool check

Generilize download tool check and skip other check if a download tool
has been found.
While at it also reintroduce c836ca84e8f641e10a8349a8f9b7432b33d6cec1
that was previously dropped with aria2c support.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoramips: update MAC address configuration for Buffalo WSR-1166DHP
Kazuhiro Ito [Tue, 30 Aug 2022 12:54:38 +0000 (21:54 +0900)]
ramips: update MAC address configuration for Buffalo WSR-1166DHP

Convert MAC address and label_mac configuration of Buffalo
WSR-1166DHP to use the generic function of OpenWrt.

Apply commit 770cfe9 for WCR-1166DS to WSR-1166DHP too.

Tested on the device and MAC address is kept before and after this
change.

Signed-off-by: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
2 years agokernel: mtk_ppe: use MTK_FOE_STATE_INVALID instead of *_UNBIND
Daniel Golle [Tue, 27 Sep 2022 20:08:04 +0000 (21:08 +0100)]
kernel: mtk_ppe: use MTK_FOE_STATE_INVALID instead of *_UNBIND

Instead of dropping *fix-typo-in-__mtk_foe_entry.patch which effectively
means keeping the (also wrong) assignment of MTK_FOE_STATE_BIND, rather
use MTK_FOE_STATE_INVALID as that works well on both older (NETSYS_V1)
and newer (NETSYS_V2) MediaTek SoCs.

Suggested-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agorealtek: rtl931x: fix missing CONFIG_COMMON_CLK_REALTEK config flag
Christian Marangi [Tue, 27 Sep 2022 23:13:24 +0000 (01:13 +0200)]
realtek: rtl931x: fix missing CONFIG_COMMON_CLK_REALTEK config flag

When the realtek clock driver was introduced, CONFIG_COMMON_CLK_REALTEK
was not correctly disabled for other subtarget. Add the missing config
flag to fix compilation error on buildbot.

Fixes: 4850bd887c3a ("realtek: add RTL83XX clock driver")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agotools: fix firmware-utils depends
Rosen Penev [Tue, 27 Sep 2022 22:35:41 +0000 (15:35 -0700)]
tools: fix firmware-utils depends

When firmware-utils was converted to use cmake, the dependency was not
updated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoRevert "toolchain/gcc: use zstd from tools"
Christian Marangi [Tue, 27 Sep 2022 21:17:03 +0000 (23:17 +0200)]
Revert "toolchain/gcc: use zstd from tools"

This reverts commit e6cc3ded0709aa6c7a190c31575bb5c19e204cd2.
Require more testing as it does cause compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoRevert "tools/zstd: build libraries as static"
Christian Marangi [Tue, 27 Sep 2022 21:16:46 +0000 (23:16 +0200)]
Revert "tools/zstd: build libraries as static"

This reverts commit e3989094b801da63b7b65b2460ea30dfeb324cd3.
Require more testing as it does cause compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agotools/zstd: build libraries as static
Rosen Penev [Sun, 25 Sep 2022 01:42:59 +0000 (18:42 -0700)]
tools/zstd: build libraries as static

Enables to get rid of rpath hack for all users.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoccache: update to 4.6.3
Nick Hainke [Sun, 28 Aug 2022 13:00:54 +0000 (15:00 +0200)]
ccache: update to 4.6.3

Release Notes:
https://ccache.dev/releasenotes.html#_ccache_4_6_3

Refresh patch:
- 100-honour-copts.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agotools/ccache: update to 4.6.2
Nick Hainke [Wed, 24 Aug 2022 08:57:35 +0000 (10:57 +0200)]
tools/ccache: update to 4.6.2

Release notes:
https://ccache.dev/releasenotes.html#_ccache_4_6_2

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agotools/ccache: update to 4.6.1
Nick Hainke [Thu, 18 Aug 2022 05:53:00 +0000 (07:53 +0200)]
tools/ccache: update to 4.6.1

Release notes:
https://ccache.dev/releasenotes.html#_ccache_4_6_1

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agokernel: rename upstreamed patches and import fixes
Daniel Golle [Sun, 25 Sep 2022 15:56:45 +0000 (16:56 +0100)]
kernel: rename upstreamed patches and import fixes

Move and rename patches which were merged upstream and import follow-up
fixes for MediaTek Ethernet offloading features on MT7622 and Filogic
platforms. Remove patch
793-net-ethernet-mtk_eth_soc-fix-typo-in-__mtk_foe_entry.patch
which breaks hardware flow offloading on MT7622, it will be reverted
upstream as well.

Fixes: c93c5365c0 ("kernel: pick patches for MediaTek Ethernet from linux-next")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agoqos-scripts: fix trailing whitespace in config files
Manas Sambhus [Thu, 4 Aug 2022 11:24:18 +0000 (16:54 +0530)]
qos-scripts: fix trailing whitespace in config files

Signed-off-by: Manas Sambhus <manas.sambhus+github@gmail.com>
2 years agoqos-scripts: replace modprobe by rmmod
Manas Sambhus [Sat, 9 Jul 2022 06:33:43 +0000 (12:03 +0530)]
qos-scripts: replace modprobe by rmmod

modprobe -r is not available on all platforms, hence use rmmod

Signed-off-by: Manas Sambhus <manas.sambhus+github@gmail.com>
2 years agokernel: netsupport: replace insmod by modprobe
Manas Sambhus [Sat, 9 Jul 2022 06:30:25 +0000 (12:00 +0530)]
kernel: netsupport: replace insmod by modprobe

Replace insmod by modprobe in TEQL hotplug script

Signed-off-by: Manas Sambhus <manas.sambhus+github@gmail.com>
2 years agoppp: use modprobe in place of insmod
Manas Sambhus [Sat, 9 Jul 2022 06:26:09 +0000 (11:56 +0530)]
ppp: use modprobe in place of insmod

This will prevent `module is already loaded` lines from
appearing in the logs when a PPP connection is reconnecting

Signed-off-by: Manas Sambhus <manas.sambhus+github@gmail.com>
2 years agoinclude/prereq-build: fix ldconfig-stub symlink on macos and BSD OSs
Christian Marangi [Tue, 27 Sep 2022 14:54:42 +0000 (16:54 +0200)]
include/prereq-build: fix ldconfig-stub symlink on macos and BSD OSs

Some OS may have the true bin to a different location than /bin/true.
BSD based system and macos have true on /usr/bin/true.

Fix this by checking both location and take the one available in the
system.

Reported-by: Sergey V. Lobanov <sergey@lobanov.in>
Suggested-by: Huangbin Zhan <zhanhb88@gmail.com>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoMakefile: fix stray \ warnings with grep-3.8
Nick Hainke [Sun, 11 Sep 2022 06:15:52 +0000 (08:15 +0200)]
Makefile: fix stray \ warnings with grep-3.8

We simply grep for "/usr". So no need for "-E" or "\/". Furthermore, in
the new grep versions this creates warnings.

As written in the grep-3.8 announcement:
  Regular expressions with stray backslashes now cause warnings, as
  their unspecified behavior can lead to unexpected results.
  For example, '\a' and 'a' are not always equivalent
  <https://bugs.gnu.org/39678>.

Fixes warnings in the form of:
  grep: warning: stray \ before /

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agotoolchain/gdb: fix expat location
Rosen Penev [Sun, 25 Sep 2022 05:00:40 +0000 (22:00 -0700)]
toolchain/gdb: fix expat location

GDB is not finding tools/expat. This fixes it. Move it up with the other
tools.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotoolchain/gcc: use zstd from tools
Rosen Penev [Sun, 25 Sep 2022 04:46:38 +0000 (21:46 -0700)]
toolchain/gcc: use zstd from tools

pkgconfig is not used for some reason. Match other used tools.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agobuild: fix issues with targets installed via feeds
Felix Fietkau [Tue, 27 Sep 2022 11:39:12 +0000 (13:39 +0200)]
build: fix issues with targets installed via feeds

- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoscripts/download.pl: fix support for aria2c download tool on macos
Christian Marangi [Mon, 26 Sep 2022 18:48:25 +0000 (20:48 +0200)]
scripts/download.pl: fix support for aria2c download tool on macos

Currently we use /dev/shm to place aria2c tmp file. This is not present
on macos. Use the openwrt tmp directory instead of the linux-only
/dev/shm to save compatibility with more os.

Fixes: d39123626931 ("download.pl: add aria2c support")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts/download.pl: fix mirrors regression for curl and wget
Christian Marangi [Sun, 25 Sep 2022 19:43:43 +0000 (21:43 +0200)]
scripts/download.pl: fix mirrors regression for curl and wget

With the introduction of aria2c support, curl and wget no longer try to
download the file from mirrors. Fix this regression by emptying the
remaining mirrors list only when aria2c is used.

Fixes: d39123626931 ("download.pl: add aria2c support")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agonftables: backport fix to interval based rules
Kevin Darbyshire-Bryant [Tue, 20 Sep 2022 14:16:37 +0000 (15:16 +0100)]
nftables: backport fix to interval based rules

'rule inet dscpclassify dscp_match  meta l4proto { udp }  th dport { 3478 }
 th sport { 3478-3497, 16384-16387 } goto ct_set_ef' works with
'nft add', but not 'nft insert', the latter yields:
"BUG: unhandled op 4".

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2 years agosysfsutils: Define START early in file
Kevin Darbyshire-Bryant [Mon, 26 Sep 2022 08:57:43 +0000 (09:57 +0100)]
sysfsutils: Define START early in file

The luci ucode rewrite exposed the definition of START as being over 1K
from start of file.  Initial versions limited the search for START &
STOP to within the 1st 1K of a file.  Whilst the search has been
expanded, it doesn't do any harm to define START early in the file like
all other init scripts seen so far.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2 years agoRevert "mt76: fix compilation error with mt7915 and kernel >= 5.15.61"
Christian Marangi [Sun, 25 Sep 2022 18:34:46 +0000 (20:34 +0200)]
Revert "mt76: fix compilation error with mt7915 and kernel >= 5.15.61"

This reverts commit 6e9613844ca1ddea7e36abc44a513c89ef0598ff.

The patch was wrong in the first place as we base everything on
backports package and the compilation error was caused by an ath11k
present downstream. (will be needed later when backports package will be
updated but not now)

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agorealtek: fix RTL839x egress tag for ports >= 32
Jan Hoffmann [Sun, 25 Sep 2022 12:32:31 +0000 (14:32 +0200)]
realtek: fix RTL839x egress tag for ports >= 32

Don't overwrite AS_DPM and L2LEARNING flags when dest_port is >= 32.

Fixes: 1773264a0c6d ("realtek: correct egress frame port verification")
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2 years agomt76: fix compilation error with mt7915 and kernel >= 5.15.61
Christian Marangi [Sun, 25 Sep 2022 14:04:58 +0000 (16:04 +0200)]
mt76: fix compilation error with mt7915 and kernel >= 5.15.61

With kernel 5.15.61 the define IEEE80211_MAX_AMPDU_BUF got changed to
IEEE80211_MAX_AMPDU_BUF_HE. Add patch to fix compilation error on next
5.15 kernel versions.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoscripts/download.pl: fix whitespace in mirror urls and drop for
Christian Marangi [Sun, 25 Sep 2022 13:54:12 +0000 (15:54 +0200)]
scripts/download.pl: fix whitespace in mirror urls and drop for

Fix whitespace in mirror urls and replace for loop with join+map logic.

Fixes: d39123626931 ("download.pl: add aria2c support")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agowolfssl: prefer regular libwolfssl over cpu-crypto
Eneas U de Queiroz [Fri, 23 Sep 2022 11:43:59 +0000 (08:43 -0300)]
wolfssl: prefer regular libwolfssl over cpu-crypto

Rename libwolfssl-cpu-crypto to libwolfsslcpu-crypto so that the
regular libwolfssl version comes first when running:
opkg install libwolfssl

Normally, if the package name matches the opkg parameter, that package
is preferred.  However, for libraries, the ABI version string is
appended to the package official name, and the short name won't match.
Failing a name match, the candidate packages are sorted in alphabetical
order, and a dash will come before any number.  So in order to prefer
the original library, the dash should be removed from the alternative
library.

Fixes: c3e7d86d2b (wolfssl: add libwolfssl-cpu-crypto package)
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2 years agowolfssl: ABI version shouldn't depend on benchmark
Eneas U de Queiroz [Fri, 23 Sep 2022 11:26:51 +0000 (08:26 -0300)]
wolfssl: ABI version shouldn't depend on benchmark

Move CONFIG_PACKAGE_libwolfssl-benchmark from the top of
PKG_CONFIG_DEPENDS to after PKG_ABI_VERSION is set.

This avoids changing the ABI version hash whether the bnechmark package
package is selected or not.

Fixes: 05df135cac (wolfssl: Rebuild when libwolfssl-benchmark gets changes)
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2 years agodownload.pl: add aria2c support
Bradford Zhang [Tue, 13 Sep 2022 23:54:04 +0000 (07:54 +0800)]
download.pl: add aria2c support

Use aria2c download tool by default on package download if available in
the system.
aria2c permits to use multiple mirrors and may improve download speed on
special context where servers are hard to reach.

Co-authored-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Bradford Zhang <zyc@zyc.name>
[ fix wrong var in the script and improve commit description ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 years agoocteon: fix imagebuilder generation by introducing generic target
Nick Hainke [Sun, 11 Sep 2022 11:52:31 +0000 (13:52 +0200)]
octeon: fix imagebuilder generation by introducing generic target

The generic imagebuilder does not have a generic in the name, although
this is the default naming scheme. Use bcm53xx as template for this fix.

Before the fix:
  openwrt-imagebuilder-octeon.Linux-x86_64.tar.xz

After:
  openwrt-imagebuilder-octeon-generic.Linux-x86_64.tar.xz

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agox86/config-5.10: geode: add missing CONFIG_WATCHDOG_CORE option
Florian Eckert [Tue, 19 Oct 2021 14:15:08 +0000 (16:15 +0200)]
x86/config-5.10: geode: add missing CONFIG_WATCHDOG_CORE option

If this module is not set to y, then I get the following compilation
error during geode build.

Package kmod-w83627hf-wdt is missing dependencies for the following libraries:
watchdog.ko

Setting the linux CONFIG_WATCHDOG_CORE to y as in all other targets
fixes this issue.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2 years agox86/config-5.15: geode: add missing CONFIG_WATCHDOG_CORE option
Florian Eckert [Fri, 5 Aug 2022 09:58:26 +0000 (11:58 +0200)]
x86/config-5.15: geode: add missing CONFIG_WATCHDOG_CORE option

If this module is not set to y, then I get the following compilation
error during geode build.

Package kmod-w83627hf-wdt is missing dependencies for the following
libraries:
watchdog.ko

Setting the linux CONFIG_WATCHDOG_CORE to y as in all other targets
fixes this issue.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2 years agolinux/x86: add missing CONFIG_WATCHDOG_CORE to *-wdt
Florian Eckert [Wed, 3 Aug 2022 14:22:12 +0000 (16:22 +0200)]
linux/x86: add missing CONFIG_WATCHDOG_CORE to *-wdt

The packages also need a dependency to watchdog core. This commit adds the
needed WATCHDOG_CORE dependency.

https://github.com/torvalds/linux/blob/master/drivers/watchdog/Kconfig

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2 years agoipq40xx: Add ZTE MF289F
Giammarco Marzano [Wed, 14 Sep 2022 12:20:43 +0000 (14:20 +0200)]
ipq40xx: Add ZTE MF289F

It's a 4G Cat.20 router used by Vodafone Italy (called Vodafone FWA)
and Vodafone DE\T-Mobile PL (called GigaCube).

Modem is a MiniPCIe-to-USB based on Snapdragon X24,
it supports 4CA aggregation.

There are currently two hardware revisions, which
differ on the 5Ghz radio:

AT1 = QCA9984 5Ghz Radio on PCI-E bus
AT2 = IPQ4019 5Ghz Radio inside IPQ4019 like 2.4Ghz

Device specification
--------------------
SoC Type: Qualcomm IPQ4019
RAM: 256 MiB
Flash: 128 MiB SPI NAND (Winbond W25N01GV)
ROM: 2MiB SPI Flash (GD25Q16)
Wireless 2.4 GHz (IP4019): b/g/n, 2x2
Wireless 5 GHz:
(QCA9984): a/n/ac, 4x4 HW REV AT1
(IPA4019): a/n/ac, 2x2 HW REV AT2
Ethernet: 2xGbE (WAN/LAN1, LAN2)
USB ports: No
Button: 2 (Reset/WPS)
LEDs: 3 external leds: Network (white or red), Wifi, Power and 1 internal (blue)
Power: 12 VDC, 1 A
Connector type: Barrel
Bootloader: U-Boot

Installation
------------
1. Place OpenWrt initramfs image for the device on a TFTP
   in the server's root. This example uses Server IP: 192.168.0.2
2. Connect serial console (115200,8n1) to serial connector
   GND (which is right next to the thing with MF289F MIMO-V1.0), RX, TX
   (refer to this image: https://ibb.co/31Gngpr).
3. Connect TFTP server to RJ-45 port (WAN/LAN1).
4. Stop in u-Boot (using ESC button) and run u-Boot commands:

setenv serverip 192.168.0.2
setenv ipaddr 192.168.0.1
set fdt_high 0x85000000
tftp openwrt-ipq40xx-generic-zte_mf289f-initramfs-fit-zImage.itb
bootm $loadaddr

5. Please make backup of original partitions, if you think about revert to
   stock, specially mtd16 (Web UI) and mtd17 (rootFS).
Use /tmp as temporary storage and do:

WEB PARITION
--------------------------------------
cat /dev/mtd16 > /tmp/mtd16.bin
scp /tmp/mtd16.bin root@YOURSERVERIP:/
rm /tmp/mtd16.bin

ROOT PARITION
--------------------------------------
cat /dev/mtd17 > /tmp/mtd17.bin
scp /tmp/mtd17.bin root@YOURSERVERIP:/
rm /tmp/mtd17.bin

6. Login via ssh or serial and remove stock partitions
   (default IP 192.168.0.1):

 # this can return an error, if ubi was attached before
 # or rootfs part was erased before.
ubiattach -m 17

 # it could return error if rootfs part was erased before
ubirmvol /dev/ubi0 -N ubi_rootfs
 # some devices doesn't have it
ubirmvol /dev/ubi0 -N ubi_rootfs_data

7. download and install image via sysupgrade -n
 (either use wget/scp to copy the mf289f's squashfs-sysupgrade.bin
 to the device's /tmp directory)

 sysupgrade -n /tmp/openwrt-...-zte_mf289f-squashfs-sysupgrade.bin

Sometimes it could print ubi attach error, but please ignore it
if process goes forward.

Flash Layout

NAND:
mtd8: 000a0000 00020000 "fota-flag"
mtd9: 00080000 00020000 "0:ART"
mtd10: 00080000 00020000 "mac"
mtd11: 000c0000 00020000 "reserved2"
mtd12: 00400000 00020000 "cfg-param"
mtd13: 00400000 00020000 "log"
mtd14: 000a0000 00020000 "oops"
mtd15: 00500000 00020000 "reserved3"
mtd16: 00800000 00020000 "web"
mtd17: 01d00000 00020000 "rootfs"
mtd18: 01900000 00020000 "data"
mtd19: 03200000 00020000 "fota"
mtd20: 0041e000 0001f000 "kernel"
mtd21: 0101b000 0001f000 "ubi_rootfs"

SPI:
mtd0: 00040000 00010000 "0:SBL1"
mtd1: 00020000 00010000 "0:MIBIB"
mtd2: 00060000 00010000 "0:QSEE"
mtd3: 00010000 00010000 "0:CDT"
mtd4: 00010000 00010000 "0:DDRPARAMS"
mtd5: 00010000 00010000 "0:APPSBLENV"
mtd6: 000c0000 00010000 "0:APPSBL"
mtd7: 00050000 00010000 "0:reserved1"

Back to Stock (!!! need original dump taken from initramfs !!!)
-------------
1. Place mtd16.bin and mtd17.bin initramfs image
   for the device on a TFTP in the server's root.
   This example uses Server IP: 192.168.0.2
2. Connect serial console (115200,8n1) to serial console
   connector (refer to the pin-out from above).
3. Connect TFTP server to RJ-45 port (WAN/LAN1).
4. rename mtd16.bin to web.img and mtd17.bin to root_uImage_s
5. Stop in u-Boot (using ESC button) and run u-Boot commands:

This will erase RootFS+Web:
nand erase 0x1000000 0x800000
nand erase 0x1800000 0x1D00000

This will restore RootFS:
tftpboot 0x84000000 ${dir}root_uImage_s
nand erase 0x1800000 0x1D00000
nand write $fileaddr 0x1800000 $filesize

This will restore Web Interface:
tftpboot 0x84000000 ${dir}web.img
nand erase 0x1000000 0x800000
nand write $fileaddr 0x1000000 $filesize

After first boot on stock firwmare, do a factory reset.
Push reset button for 5 seconds so all parameters will
be reverted to the one printed on label on bottom of the router

Signed-off-by: Giammarco Marzano <stich86@gmail.com>
Reviewed-by: Lech Perczak <lech.perczak@gmail.com>
(Warning: commit message did not conform to UTF-8 - hopefully fixed?,
added description of the pin-out if image goes down, reformatted
commit message to be hopefully somewhat readable on git-web,
redid some of the gpio-buttons & leds DT nodes, etc.)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoipq40xx: add support for Sony NCP-HG100/Cellular
INAGAKI Hiroshi [Sun, 4 Sep 2022 12:27:11 +0000 (21:27 +0900)]
ipq40xx: add support for Sony NCP-HG100/Cellular

Sony NCP-HG100/Cellular is a IoT Gateway with 2.4/5 GHz band 11ac
(WiFi-5) wireless function, based on IPQ4019.

Specification:

- SoC                   : Qualcomm IPQ4019
- RAM                   : DDR3 512 MiB (H5TC4G63EFR)
- Flash                 : eMMC 4 GiB (THGBMNG5D1LBAIT)
- WLAN                  : 2.4/5 GHz 2T2R (IPQ4019)
- Ethernet              : 10/100/1000 Mbps x2
  - Transceiver         : Qualcomm QCA8072
- WWAN                  : Telit LN940A9
- Z-Wave                : Silicon Labs ZM5101
- Bluetooth             : Qualcomm CSR8811
- Audio DAC             : Realtek ALC5629
- Audio Amp.            : Realtek ALC1304
- Voice Input Processor : Conexant CX20924
- Micro Controller Unit : Nuvoton MINI54FDE
  - RGB LED, Fan, Temp. sensors
- Touch Sensor          : Cypress CY8C4014LQI
- RGB LED driver        : TI LP55231 (2x)
- LEDs/Keys             : 11x, 6x
- UART                  : through-hole on PCB
  - J1: 3.3V, TX, RX, GND from tri-angle marking
  - 115200n8
- Power                 : 12 VDC, 2.5 A

Flash instruction using initramfs image:

1. Prepare TFTP server with the IP address 192.168.132.100 and place the
   initramfs image to TFTP directory with the name "C0A88401.img"

2. Boot NCP-HG100/Cellular and interrupt after the message
   "Hit any key to stop autoboot:  2"

3. Perform the following commands and set bootcmd to allow booting from
   eMMC

   setenv bootcmd "mmc read 0x84000000 0x2e22 0x4000 && bootm 0x84000000"
   saveenv

4. Perform the following command to load/boot the OpenWrt initramfs image

   tftpboot && bootm

5. On the initramfs image, perform sysupgrade with the sysupgrade image
   (if needed, backup eMMC partitions by dd command and download to
   other place before performing sysupgrade)

6. Wait for ~120 seconds to complete flashing

Known issues:

- There are no drivers for audio-related chips/functions in Linux Kernel
  and OpenWrt, they cannot be used.

- There is no driver for MINI54FDE Micro-Controller Unit, customized for
  this device by the firmware in the MCU. This chip controls the
  following functions, but they cannot be controlled in OpenWrt.

  - RGB LED
  - Fan
    this fan is controlled automatically by MCU by default, without
    driver
  - Thermal Sensors (2x)

- Currently, there is no driver or tool for CY8C4014LQI and cannot be
  controlled. It cannot be exited from "booting mode" and moved to "normal
  op mode" after booting. And also, the 4x buttons (mic mute, vol down,
  vol up, alexa trigger) connected to the IC cannot be controlled.

  - it can be exited from "booting mode" by installing and executing
    i2cset command:

    opkg update
    opkg install i2c-tools
    i2cset -y 1 0x14 0xf 1

- There is a connection issue on the control by uqmi for the WWAN module.
  But modemmanager can be used without any issues and the use of it is
  recommended.

- With the F2FS format, too many errors are reported on erasing eMMC
  partition "rootfs_data" while booting:

  [    1.360270] sdhci: Secure Digital Host Controller Interface driver
  [    1.363636] sdhci: Copyright(c) Pierre Ossman
  [    1.369730] sdhci-pltfm: SDHCI platform and OF driver helper
  [    1.374729] sdhci_msm 7824900.sdhci: Got CD GPIO
  ...
  [    1.413552] mmc0: SDHCI controller on 7824900.sdhci [7824900.sdhci] using ADMA 64-bit
  [    1.528325] mmc0: new HS200 MMC card at address 0001
  [    1.530627] mmcblk0: mmc0:0001 004GA0 3.69 GiB
  [    1.533530] mmcblk0boot0: mmc0:0001 004GA0 partition 1 2.00 MiB
  [    1.537831] mmcblk0boot1: mmc0:0001 004GA0 partition 2 2.00 MiB
  [    1.542918] mmcblk0rpmb: mmc0:0001 004GA0 partition 3 512 KiB, chardev (247:0)
  [    1.550323] Alternate GPT is invalid, using primary GPT.
  [    1.561669]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17
  ...
  [    8.841400] mount_root: loading kmods from internal overlay
  [    8.860241] kmodloader: loading kernel modules from //etc/modules-boot.d/*
  [    8.863746] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
  [    9.240465] block: attempting to load /etc/config/fstab
  [    9.246722] block: unable to load configuration (fstab: Entry not found)
  [    9.246863] block: no usable configuration
  [    9.254883] mount_root: overlay filesystem in /dev/mmcblk0p17 has not been formatted yet
  [    9.438915] urandom_read: 5 callbacks suppressed
  [    9.438924] random: mkfs.f2fs: uninitialized urandom read (16 bytes read)
  [   12.243332] mmc_erase: erase error -110, status 0x800
  [   12.246638] mmc0: cache flush error -110
  [   15.134585] mmc_erase: erase error -110, status 0x800
  [   15.135891] mmc_erase: group start error -110, status 0x0
  [   15.139850] mmc_erase: group start error -110, status 0x0
  ...(too many the same errors)...
  [   17.350811] mmc_erase: group start error -110, status 0x0
  [   17.356197] mmc_erase: group start error -110, status 0x0
  [   17.439498] sdhci_msm 7824900.sdhci: Card stuck in wrong state! card_busy_detect status: 0xe00
  [   17.446910] mmc0: tuning execution failed: -5
  [   17.447111] mmc0: cache flush error -110
  [   18.012440] F2FS-fs (mmcblk0p17): Found nat_bits in checkpoint
  [   18.062652] F2FS-fs (mmcblk0p17): Mounted with checkpoint version = 428fa16b
  [   18.198691] block: attempting to load /etc/config/fstab
  [   18.198972] block: unable to load configuration (fstab: Entry not found)
  [   18.203029] block: no usable configuration
  [   18.211371] mount_root: overlay filesystem has not been fully initialized yet
  [   18.214487] mount_root: switching to f2fs overlay

  So, this support uses ext4 format instead which has no errors.

Note:

- The primary uart is shared for debug console and Z-Wave chip. The
  function is switched by GPIO15 (Linux: 427).

  value:

    1: debug console
    0: Z-Wave

- NCP-HG100/Cellular has 2x os-image pairs in eMMC.

  - 0:HLOS, rootfs
  - 0:HLOS_1, rootfs_1

  In OpenWrt, the first image pair is used.

- "bootipq" command in U-Boot requires authentication with signed-image
  by default. To boot unsigned image of OpenWrt, use "mmc read" and
  "bootm" command instead.

- This support is for "Cellular" variant of NCP-HG100 and not tested on
  "WLAN" (non-cellular) variant.

- The board files of ipq-wifi may also be used in "WLAN" variant of
  NCP-HG100, but unconfirmed and add files as for "Cellular" variant.

- "NET" LED is used to indicate WWAN status in stock firmware.

- There is no MAC address information in the label on the case, use the
  address included in UUID in the label as "label-MAC" instead.

- The "CLOUD" LEDs are partially used for indication of system status in
  stock firmware, use they as status LEDs in OpenWrt instead of RGB LED
  connected to the MCU.

MAC addresses:

LAN    : 5C:FF:35:**:**:ED (ART, 0x6    (hex))
WAN    : 5C:FF:35:**:**:EF (ART, 0x0    (hex))
2.4 GHz: 5C:FF:35:**:**:ED (ART, 0x1006 (hex))
5 GHz  : 5C:FF:35:**:**:EE (ART, 0x5006 (hex))

partition layout in eMMC (by fdisk, GPT):

Disk /dev/mmcblk0: 7733248 sectors, 3776M
Logical sector size: 512
Disk identifier (GUID): ****
Partition table holds up to 20 entries
First usable sector is 34, last usable sector is 7634910

Number  Start (sector)    End (sector)  Size Name
     1              34            1057  512K 0:SBL1
     2            1058            2081  512K 0:BOOTCONFIG
     3            2082            3105  512K 0:QSEE
     4            3106            4129  512K 0:QSEE_1
     5            4130            4641  256K 0:CDT
     6            4642            5153  256K 0:CDT_1
     7            5154            6177  512K 0:BOOTCONFIG1
     8            6178            6689  256K 0:APPSBLENV
     9            6690            8737 1024K 0:APPSBL
    10            8738           10785 1024K 0:APPSBL_1
    11           10786           11297  256K 0:ART
    12           11298           11809  256K 0:HSEE
    13           11810           28193 8192K 0:HLOS
    14           28194           44577 8192K 0:HLOS_1
    15           44578          306721  128M rootfs
    16          306722          568865  128M rootfs_1
    17          568866         3958065 1654M rootfs_data

[initial work]
Signed-off-by: Iwao Yuki <dev.clef@gmail.com>
Co-developed-by: Iwao Yuki <dev.clef@gmail.com>
[adjustments, cleanups, commit message, sending patch]
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
(dropped clk_unused_ignore, dropped 901-* patches, renamed
key nodes, changed LEDs chan/labels to match func-en, made
:net -> (w)wan leds)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoipq40xx: base-files: properly close case
Tomasz Maciej Nowak [Fri, 23 Sep 2022 12:48:12 +0000 (14:48 +0200)]
ipq40xx: base-files: properly close case

Fix this occurrence during boot:
/bin/board_detect: line 10: Unsupported: not found

Fixes: 80baffd2aa91 (" ipq40xx: add support for Pakedge WR-1")
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agoipq40xx: luma_wrtq-329acn: differentiate ethernet mac addresses
Tomasz Maciej Nowak [Fri, 23 Sep 2022 12:47:39 +0000 (14:47 +0200)]
ipq40xx: luma_wrtq-329acn: differentiate ethernet mac addresses

On OEM firmware both addresses for In and Out ports are different. Set
them as such also in OpenWrt.

Fixes: e24635710c7e (" ipq40xx: add support for Luma Home WRTQ-329ACN")
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2 years agoapm821xx: make 5.15 kernel default
Christian Lamparter [Fri, 16 Sep 2022 20:32:58 +0000 (22:32 +0200)]
apm821xx: make 5.15 kernel default

5.15 has been available for some time for testing.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoapm821xx: refresh 5.15 config
Christian Lamparter [Fri, 16 Sep 2022 22:09:27 +0000 (00:09 +0200)]
apm821xx: refresh 5.15 config

use the toolchain's default CPU (464fp) as the CPU option.
This fixes a CPU selection prompt which shows up now.

CPU selection
> 1. Generic 32 bits powerpc (POWERPC_CPU) (NEW)
  2. Rely on the toolchain's implicit default CPU (TOOLCHAIN_DEFAULT_CPU) (NEW)

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agoipq40xx: fix RUTX10 Wi-Fi woes
Kasparas Elzbutas [Mon, 18 Jul 2022 07:05:33 +0000 (10:05 +0300)]
ipq40xx: fix RUTX10 Wi-Fi woes

This partially reverts:
commit cfc13c44595d ("ipq40xx: utilize nvmem-cells for macs & (pre-)calibration data")

U-Boot on these devices mangles the device tree,
so nvmem-cell type calibration doesn't work.

Fixes: cfc13c44595d ("ipq40xx: utilize nvmem-cells for macs & (pre-)calibration data")
Signed-off-by: Kasparas Elzbutas <elzkas@gmail.com>
(added reference to commit, rewrote commit message)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agofirmware: intel-microcode: update to 20220809
Christian Lamparter [Mon, 22 Aug 2022 08:35:28 +0000 (10:35 +0200)]
firmware: intel-microcode: update to 20220809

Debian's changelog by Henrique de Moraes Holschuh <hmh@debian.org>:

  * New upstream microcode datafile 20220809
    * Fixes INTEL-SA-00657, CVE-2022-21233
      Stale data from APIC leaks SGX memory (AEPIC leak)
    * Fixes unspecified errata (functional issues) on Xeon Scalable
    * Updated Microcodes:
      sig 0x00050653, pf_mask 0x97, 2022-03-14, rev 0x100015e, size 34816
      sig 0x00050654, pf_mask 0xb7, 2022-03-08, rev 0x2006e05, size 44032
      sig 0x000606a6, pf_mask 0x87, 2022-04-07, rev 0xd000375, size 293888
      sig 0x000706a1, pf_mask 0x01, 2022-03-23, rev 0x003c, size 75776
      sig 0x000706a8, pf_mask 0x01, 2022-03-23, rev 0x0020, size 75776
      sig 0x000706e5, pf_mask 0x80, 2022-03-17, rev 0x00b2, size 112640
      sig 0x000806c2, pf_mask 0xc2, 2022-03-19, rev 0x0028, size 97280
      sig 0x000806d1, pf_mask 0xc2, 2022-03-28, rev 0x0040, size 102400
      sig 0x00090672, pf_mask 0x03, 2022-06-07, rev 0x0022, size 216064
      sig 0x00090675, pf_mask 0x03, 2022-06-07, rev 0x0022, size 216064
      sig 0x000906a3, pf_mask 0x80, 2022-06-15, rev 0x0421, size 216064
      sig 0x000906a4, pf_mask 0x80, 2022-06-15, rev 0x0421, size 216064
      sig 0x000a0671, pf_mask 0x02, 2022-03-17, rev 0x0054, size 103424
      sig 0x000b06f2, pf_mask 0x03, 2022-06-07, rev 0x0022, size 216064
      sig 0x000b06f5, pf_mask 0x03, 2022-06-07, rev 0x0022, size 216064

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agouml: add Kernel 5.15 support via testing
Christian Lamparter [Sat, 6 Aug 2022 17:44:02 +0000 (19:44 +0200)]
uml: add Kernel 5.15 support via testing

Add the latest default Kernel for testing.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agouml: fix 5.10 build
Christian Lamparter [Sat, 24 Sep 2022 21:42:42 +0000 (23:42 +0200)]
uml: fix 5.10 build

the 5.10 uml build currently breaks with:

/usr/bin/ld: arch/um/os-Linux/signal.o: in function `sigusr1_handler':
arch/um/os-Linux/signal.c:141: undefined reference to `uml_pm_wake'

But there's an upstream fix for this. Backport the fix
for now but also let upstream know so it finds its way
through the -stable releases.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agouml: headers are not exportable
Christian Lamparter [Sat, 24 Sep 2022 17:57:26 +0000 (19:57 +0200)]
uml: headers are not exportable

When building UML this showed up as of late (2022-09-01):
| Makefile:1335: *** Headers not exportable for UML.  Stop.

This message popped up because of an upstream patch that
fixed this error not showing up sooner. For more information see:
<https://lore.kernel.org/lkml/20220901011252.550830-1-masahiroy@kernel.org/T/>

Now, I don't think we can just skip the kernel headers.
Some userspace applications are going to need these. So,
The next best alternative I can think of, is to go with
the headers by the host arch the UML is compiled for.
(Technically, ARCH= should be safe for all other targets
as well... But let's not poke a hornet's nest)

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agomac80211: fix parameter reading for AC_BE tx bursting
Alberto Martinez-Alvarez [Fri, 5 Aug 2022 21:10:54 +0000 (07:10 +1000)]
mac80211: fix parameter reading for AC_BE tx bursting

The "tx_burst" option which should control the value was
expecting more of a list and hence tx_queue_data2_burst
value wasn't updated.

Yes, it would make sense to have a list for this, the
existing  code only updates tx_queue_data2_burst and
not the other tx_queue_data[0134]_burst values.

Signed-off-by: Alberto Martinez-Alvarez <amteza@gmail.com>
(formatted commit message, wrote extra information into commit,
moved tx_burst to existing json_get_vars)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2 years agokernel: Move some IOMMU options to generic
Hauke Mehrtens [Sat, 24 Sep 2022 11:33:37 +0000 (13:33 +0200)]
kernel: Move some IOMMU options to generic

This adds some missing IOMMU related options for x86/64 and moves some
of them to generic for all targets.

On x86 IOMMU_DEFAULT_DMA_LAZY is used by default, on all other platforms
IOMMU_DEFAULT_DMA_STRICT is the default. we just follow the default
kernel configuration here.

Fixes: 8fea4a102ccd ("x86/64: enable IOMMU support")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agoath79: switch to 5.15 as default kernel
Nick Hainke [Fri, 16 Sep 2022 10:03:19 +0000 (12:03 +0200)]
ath79: switch to 5.15 as default kernel

The 5.15 kernel has new interesting features like MGLRU. Most of the
targets already have added support for testing kernel 5.15 since April
2022. Set 5.15 as default for all subtargets.

Testing support was added here:
ae6bfb7d67c1 ("ath79: tiny: add 5.15 support for tiny subtarget")
9a0155bc4fa3 ("ath79: add 5.15 support for generic subtarget")
5af9aafabbc0 ("ath79: mikrotik: add 5.15 support for mikrotik subtarget")
f3fa68e5153b ("ath79: nand: add 5.15 support for nand subtarget")

Tested on:
- Nanostation M5 XM (tiny)
- TP-Link EAP-225 Outdoor (generic)
- TP-Link CPE210 (generic)

Signed-off-by: Nick Hainke <vincent@systemli.org>
2 years agokernel: fix mac-address-increment on driver probe defer
Will Moss [Wed, 3 Aug 2022 13:56:28 +0000 (13:56 +0000)]
kernel: fix mac-address-increment on driver probe defer

Fixes situations where MAC address gets incremented multiple times
if device initialization fails at first and then is deferred.

Fixes: d284e6ef0f06 ("treewide: convert mtd-mac-address-increment* to generic implementation")
Signed-off-by: Will Moss <willormos@gmail.com>
2 years agomac80211: remove broken CFG80211_WEXT select from the r8723bs driver
Felix Fietkau [Fri, 23 Sep 2022 16:11:04 +0000 (18:11 +0200)]
mac80211: remove broken CFG80211_WEXT select from the r8723bs driver

Fixes a build error

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agomac80211: mark lib80211 as hidden
Felix Fietkau [Fri, 23 Sep 2022 10:04:12 +0000 (12:04 +0200)]
mac80211: mark lib80211 as hidden

Prevents build errors by ensuring that it is only selected when a wext based
driver that needs it is also selected

Signed-off-by: Felix Fietkau <nbd@nbd.name>