ath79: add support for Dell SonicPoint ACi APL27-0B1
Dell/SonicWall APL27-0B1 (marketed as SonicPoint ACi) is a dual band
wireless access point. Very similar to already supported APL26-0AE,
which all antennas are external, while this variant has internal
antennas. End of life as of 2022-07-31.
Specification
SoC: QualcommAtheros QCA9550
RAM: 256 MB DDR2
Flash: 32 MB SPI NOR
WIFI: 2.4 GHz 3T3R integrated
5 GHz 3T3R QCA9890 oversized Mini PCIe card
Ethernet: 2x 10/100/1000 Mbps QCA8334
port labeled lan1 is PoE capable (802.3at)
USB: 1x 2.0
LEDs: LEDs: 6x which 5 are GPIO controlled and two of them are dual color
Buttons: 1x GPIO controlled
Serial: RJ-45 port, SonicWall pinout
baud: 115200, parity: none, flow control: none
Before flashing, be sure to have a copy of factory firmware, in case You
wish to revert to original firmware.
Installation
1. Prepare TFTP server with OpenWrt sysupgrade image and rename that
image to "ap135.bin".
2. Connect to one of LAN ports.
3. Connect to serial port.
4. Hold the reset button (small through hole on side of the unit),
power on the device and when prompted to stop autoboot, hit any key.
The held button can now be released.
5. Alter U-Boot environment with following commands:
setenv bootcmd bootm 0x9F110000
saveenv
6. Adjust "ipaddr" (access point, default is 192.168.1.1) and "serverip"
(TFTP server, default is 192.168.1.10) addresses in U-Boot
environment, then run following commands:
tftp 0x80060000 ap135.bin
erase 0x9F110000 +0x1EF0000
cp.b 0x80060000 0x9F110000 $filesize
7. After successful flashing, execute:
boot
8. The access point will boot to OpenWrt. Wait few minutes, until the
wrench LED will stop blinking, then it's ready for configuration.
Notes
By default no power is provided on USB port, so attached USB devices
won't enumerate. To change that enable regulator with:
echo "enabled" > /sys/devices/platform/output-usb-vbus/state
To disable power write "disabled" to the same file.
Ther regulator state will reset on reboot, consider running this command
on hotplug event or add it to /etc/rc.local. The hotplug event should
look like this:
if [ "${PRODUCT}" = "1d6b/2/606" ] && [ "${ACTION}" = "add" ]; then
echo "enabled" > /sys/devices/platform/output-usb-vbus/state
fi
Place it in /etc/hotplug.d/usb/10-usb-power.
Known issues
Initramfs image can't be bigger than specified kernel size, otherwise
bootloader will throw LZMA decompressing error. Switching to lzma-loader
should workaround that.
Allows to enable/disable attached regulators from userspace, i.e. by
simply writing value to a sysfs exported state file. Useful in case of
USB port VBUS toggled by GPIO.
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.
For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html
tegra: bring back workaround for spurious interrupts
Unfortunately they still apear with prolonged serial console usage.
While it's not common to use serial console past initial setup, alas
when the condition is hit the console is almost unusable.
toolchain: glibc: Update glibc 2.41 to recent HEAD
9f48a8abb2b2 Remove advisories from release branch 0a7c7a3e283a NEWS: start new section bdccbfbc52d3 math: Fix log10p1f internal table value (BZ 32626) d85a7719536f math: Fix sinhf for some inputs (BZ 32627) cb7f20653724 nptl: Correct stack size attribute when stack grows up [BZ #32574] cf88351b685d math: Fix tanf for some inputs (BZ 32630) 69fda28279b4 assert: Add test for CVE-2025-0395 1e0e33e1b19a Fix tst-aarch64-pkey to handle ENOSPC as not supported a900dbaf70f0 x86 (__HAVE_FLOAT128): Defined to 0 for Intel SYCL compiler [BZ #32723] 2cb04444b934 math: Fix `unknown type name '__float128'` for clang 3.4 to 3.8.1 (bug 32694) 07288c7445bb math: Add optimization barrier to ensure a1 + u.d is not reused [BZ #30664] 30992cb5e9d7 RISC-V: Fix IFUNC resolver cannot access gp pointer 7c9a0868077c Aarch64: Improve codegen in SVE asinh 94859e86807a Aarch64: Improve codegen in SVE exp and users, and update expf_inline f3d9c116cb0a AArch64: Improve codegen for SVE erfcf 2025e27a817f AArch64: Improve codegen for SVE pow 7774a9d07ab2 AArch64: Improve codegen for SVE powf 6d1f97bb0667 aarch64: Add configure checks for GCS support fda5730898bc aarch64: Add tests for Guarded Control Stack 61ba3cdfa9e9 aarch64: Add GCS tests for transitive dependencies 8d98ee8d70cd aarch64: Add GCS tests for dlopen 009c5a2dca7c aarch64: Add GCS test with signal handler e0bc5f64eaf7 math: Improve layout of exp/exp10 data c47c3890f15e AArch64: Add SVE memset 89be78704ed8 AArch64: Use prefer_sve_ifuncs for SVE memset 56609f8df1fa Pass -Wl,--no-error-execstack for tests where -Wl,-z,execstack is used [PR32717] 746ef8e93964 static-pie: Skip the empty PT_LOAD segment at offset 0 [BZ #32763] fd202462c5f8 elf: Check if __attribute__ ((aligned (65536))) is supported 91f8cff2c48f configure: Fix spelling of -Wl,--no-error-execstack option 1a3083b99992 posix: Move environ helper variables next to environ definition (bug 32541) 66fc3bd75871 math: Remove an extra semicolon in math function declarations 33bfd9020fda Linux: Remove attribute access from sched_getattr (bug 32781) e22c132484ea nptl: clear the whole rseq area before registration 98c712855d66 nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions (bug 32786) ce9b765522f0 nptl: Check if thread is already terminated in sigcancel_handler (BZ 32782) 6a3a4a5e583a x86_64: Add tanh with FMA 7e72fa7577f2 x86_64: Add sinh with FMA bcd4cf9d5ff2 x86_64: Add atanh with FMA a282e2c0aee8 x86: Skip XSAVE state size reset if ISA level requires XSAVE 80cd6566496e x86: Use separate variable for TLSDESC XSAVE/XSAVEC state size (bug 32810) 200d20123cb8 x86: Link tst-gnu2-tls2-x86-noxsave{,c,xsavec} with libpthread b861755a84ee elf: Extend glibc.rtld.execstack tunable to force executable stack (BZ 32653) d6d56af6e78c elf: Fix arm-linux-gnueabihf build break from b861755a84 f68b407d4bc5 x86: Optimize xstate size calculation aca31d27123d x86: Add ARL/PTL/CWF model detection support a53e76465791 x86: Handle unknown Intel processor with default tuning 046b33800c3e x86: Detect Intel Diamond Rapids 5cb575ca9a3d elf: tst-audit10: split AVX512F code into dedicated functions [BZ #32882] 5b4c4617016d nptl: Fix pthread_getattr_np when modules with execstack are allowed (BZ 32897) 5cf17ebc659c hurd: Fix tst-stack2 test build on Hurd dab44a3b2bb5 elf: Keep using minimal malloc after early DTV resize (bug 32412) 2ca34d76270d support: Use const char * argument in support_capture_subprogram_self_sgid 624285af3bfc elf: Test case for bug 32976 (CVE-2025-4802) 899dd3ab2fc2 x86_64: Fix typo in ifunc-impl-list.c. 515d4166f4db elf: Fix subprocess status handling for tst-dlopen-sgid (bug 32987) d952c6efaa87 sparc: Fix argument passing to __libc_start_main (BZ 32981) 84bdbf8a6f2f ppc64le: Revert "powerpc: Optimized strncmp for power10" (CVE-2025-5745) 55cdcadf7306 ppc64le: Revert "powerpc: Fix performance issues of strcmp power10" (CVE-2025-5702) b48d7ab03643 ppc64le: Revert "powerpc : Add optimized memchr for POWER10" (Bug 33059) 0c76c951620f ppc64le: Revert "powerpc: Optimized strcmp for power10" (CVE-2025-5702) 61e461ed0c16 sparc: Fix sparc32 Fix argument passing to __libc_start_main (BZ 32981) 11e634ccf32e support: Pick group in support_capture_subprogram_self_sgid if UID == 0 6e489c17f827 Fix error reporting (false negatives) in SGID tests
glibc 2.39 has removed libcrypt completely:
- configuration flag "--enable-crypt" is obsolete and removed
- patch "050-Revert-Disallow-use-of-DES-encryption-functions-in-n.patch"
does not matter anymore
The bootup of the armsr target sometimes failed like this:
```
[ 0.762283] NET: Registered PF_INET6 protocol family
[ 0.791987] workqueue: Failed to create a worker thread: -EAGAIN
[ 0.801986] workqueue: Failed to create a rescuer kthread for wq "mld": -EAGAIN
[ 0.964017] NET: Unregistered PF_INET6 protocol family
```
Increase the maximum number of threads the kernel allows.
Weijie Gao [Fri, 20 Jun 2025 11:25:20 +0000 (19:25 +0800)]
loongarch64: Restore kernel files for v6.6
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.
For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html
Jonathan Sturges [Fri, 30 May 2025 18:58:15 +0000 (14:58 -0400)]
ramips: add support for Wavlink WL-WN570HA2
The Wavlink Aerial HD3 (WL-WN570HA2) is an AC1200 dual-band outdoor
access point. It supports 802.3AT/AF PoE and is IP67 waterproof.
It is based on the MediaTek MT7628DAN SoC and MT7613BEN WiFi 5 chip.
This model uses the 100Mbit LAN and 2.4Ghz WiFi elements of the
MT7628 and the 5Ghz WiFi of the MT7613.
Specification:
- SoC: MediaTek MT7628DAN (1C/1T) @ 580MHz
- RAM: 64MB DDR2 (integrated in SoC)
- FLASH: 16MB SPI NOR (Fudan FM25Q128A)
- Ethernet: 1x 10/100Mbps
- WiFi: 2.4/5 GHz 2T2R
- 2.4GHz MediaTek MT7628DAN bgn
- 5GHz MediaTek MT7613BEN nac
- Antennas: 2x detachable, dual-band 7dBi with RP-SMA connectors.
- USB: none
- BTN: Reset
- LED: 6 total: power; WAN/LAN; WiFi; WiFi low; WiFi med; Wifi high
- UART: surface-mount on PCB. Pins are marked via silkscreen.
pin1 (square pad, towards Ethernet)=Vcc, pin2=RX,
pin3=TX, pin4=GND. Settings: 57600/8N1.
NOTE: The TX & RX silkscreens were reversed on my test unit.
Installation:
1) This device requires a HTTP recovery procedure to do an initial load
of OpenWRT. You will need:
a. A web browser (private window recommended)
b. Configure an Ethernet interface to 192.168.1.x/24; don't use .1
c. Connect a cable between the computer and the Wavlink's PoE injector.
2) Put the Wavlink in HTTP recovery mode.
a. Do this by pressing and holding the reset button on the bottom while
powering the unit on.
b. As soon as all 6 LEDs light up blue (roughly 2-3 seconds), release
the button.
c. The LEDs should all remain lit, indicating it's in HTTP recovery.
3) Point the browser at http://192.168.1.1/index.html
4) Click "Choose File" and select the OpenWRT sysupgrade image.
5) Click the "Update Firmware" button and wait while the unit flashes
the image and reboots.
6) When the system comes back up fully, only the power LED will be lit.
Wait an extra minute then you should be able to reach OpenWRT on
http://192.168.1.1
5) Log into LuCI as root; there is no password.
Revert to the OEM Firmware:
--------------------------
* U-boot HTTP:
Follow the HTTP recovery steps, and use a firmware image downloaded
from Wavlink.
ath79: ubnt-amplifi-hd: Add 2nd USB bus (integrated ath3k bluetooth)
Add/enable 2nd USB bus (integrated ath3k bluetooth) to dts. This already
exists in the qca956x dtsi, adding the pointer here to bring the bluetooth to life.
The 2nd bus hosts the integrated bluetooth at 0x1b400000.
Flashing is only possible via a serial connection using the sysupgrade
image; the factory image must be signed. You can flash the sysupgrade
image directly through the U-Boot console, or preferably, by booting the
initramfs image and flashing with the sysupgrade command. Follow these
steps for sysupgrade flashing:
1. Establish a UART serial connection.
2. Set up a TFTP server at 192.168.0.2 and copy the initramfs image
there.
3. Power on the device and press any key to interrupt normal boot.
4. Load the initramfs image using tftpboot.
5. Boot with bootm.
6. If you haven't done so already, back up all stock mtd partitions.
7. Copy the sysupgrade image to the router.
8. Flash OpenWrt through either LuCI or the sysupgrade command. Remember
not to attempt saving settings.
Revert to stock firmware
------------------------
Flash stock firmware via OEM web-recovery mode. If you don't have access
to the stock firmware image, you will need to restore the firmware
partition backed up earlier.
Web-Recovery
------------
The router supports an HTTP recovery mode:
1. Turn off the router.
2. Press the reset button and power on the device.
3. When the LED start flashing, release reset and quickly press it
again.
The interface is reachable at 192.168.0.1 and supports installation of
the OEM factory image. Note that flashing OpenWrt this way is not
possible, as mentioned above.
Tim Harvey [Fri, 20 Jun 2025 19:49:51 +0000 (12:49 -0700)]
uboot-envtools: add support for Gateworks venice
Add uboot-envtools support for Gateworks venice boards based on i.MX8M
SoC's (imx_cortexa53) which boot from and store their U-Boot env on
eMMC boot0 hardware partition.
Installation
------------
1. Disassemble the device
2. Create solder bridge on R85, R86, Solder 4-pin header on J4.
3. Connect UART console.
4. In U-Boot shell, enter the following commands to prepare flashing
```
enable_phy
extra_para set extra-para score 100
extra_para set extra-para fwFlag good
```
5. Use `mtkupgrade` command to TFTP flash openwrt-mediatek-filogic-tplink_fr365-v1-squashfs-factory.bin
6. Reboot the device
Yonghyu Ban [Wed, 19 Mar 2025 08:11:54 +0000 (17:11 +0900)]
mediatek: allow mounting ubifs by its device and partition name
Since not every device sets an ubifs partition name as the same as their
parent mtd partition, this change allows mount_ubi_part to usable in
other devices
**Huasifei WH3000 Pro**
Portable Wi-Fi 6 travel router based on MediaTek MT7981A SoC. MT7981B+MT7976CN+RTL8221B Dual Core 1.3GHZ with 5G modems module and PWM Fan.
**Specifications**
SoC: Filogic 820 MT7981A (1.3GHz)
RAM: DDR4 1GB
Flash: eMMC 8GB
WiFi: 2.4GHz and 5GHz with 3 antennas
Ethernet:
1x WAN (10/100/1000M)
1x LAN (10/100/1000/2500M)
USB: 1x USB 3.0 port
Two buttons: power/reset and mode (BTN_0)
LEDS: blue, red, blue+red=pink
UART: 3.3V, TX, RX, GND / 115200 8N1
**Installation via U-Boot rescue**
1. Set static IP 192.168.1.2 on your computer and default route as 192.168.1.1
2. Connect to the WAN port and hold the reset button while booting the device.
3. Wait for the LED to blink 5 times, and release the reset button.
4. Open U-boot web page on your browser at http://192.168.1.1
5. Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
6. Wait for the router to flash the new firmware.
7. Wait for the router to reboot itself.
**Installation via sysupgrade**
Just flash sysupgrade file via [LuCI upgrade page](http://192.168.1.1/cgi-bin/luci/admin/system/flash) without saving the settings.
**Installation via SSH**
Upload the file to the router `/tmp` directory, `ssh root@192.168.1.1` and issue a command:
```
sysupgrade -n /tmp/openwrt-mediatek-filogic-huasifei_wh3000-pro-squashfs-sysupgrade.bin
```
**Factory MAC**
You can find your Factory MAC which is mentioned on the box at `/dev/mmcblck0p2` partition `factory` starting from `0x4`
```
dd if=/dev/mmcblk0p2 bs=1 skip=4 count=6 | hexdump -C
```
Fixed `green` to `blue` LED in dts, added `SUPPORTED_DEVICES += huasifei,fudy-pro` - to make sysupgrade compatible with factory QWRT/Lede fork firmware.
- update dropbear to latest stable 2025.88;
for the changes see https://matt.ucc.asn.au/dropbear/CHANGES
- rewrite 100-pubkey_path.patch
- refresh remaining patches
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
The operating mode of a SerDes must be aligned with the attached PHY or
SFP module. That does not only require to change the protocol (e.g. SGMII,
10Gbase-R, ...) but also the speed (e.g. 1.25G). For this the SerDes must
be re-initialized properly.
- It must be taken into power down
- The PLL speed must be set
- Maybe the CMU (clock management unit) must be resetted
- The new mode must be set
- The state machine must be resetted
- The power must be reactivated
Until now this sequence is bugged. First the driver relies on a clean
setup from U-Boot (rtk network on) and second trying to to change mode
and PLL speeds does not work at all. And not to forget: Currently two
adjacent SerDes cannot drive SGMII/HSGMII at the same time. Fix this by
taking care about the right SerDes/PLL/CMU command init order.
P.S. This code is inspired by the work of Jan Hofmann, who tried to
enable parallel SGMII/HSGMII mode. The only missing bit was a proper CMU
reset sequence.
Signed-off-by: Jan Hoffmann <jan@3e8.eu> Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de> Link: https://github.com/openwrt/openwrt/pull/19220 Signed-off-by: Robert Marko <robimarko@gmail.com>
perf will attempt to run shellcheck on the test shell scripts, however
there is no point in doing this in OpenWrt and while perf checks for
shellcheck presence on your host it can fail to build in some cases.
Robert Marko [Thu, 10 Jul 2025 13:05:39 +0000 (15:05 +0200)]
perf: disable BUILD_BPF_SKEL
BUILD_BPF_SKEL was set to 1 by default in upstream commit: 9925495d96efc14d885ba66c5696f664fe0e663c ("perf build: Default
BUILD_BPF_SKEL, warn/disable for missing deps")
Prior to that, it was disabled by default and you had to enable it to
build BPF skeleton support.
So in order to fix perf compilation with kernel 6.12, lets disable
BUILD_BPF_SKEL.
Felix Fietkau [Wed, 9 Jul 2025 15:16:27 +0000 (17:16 +0200)]
ath79: revert wmac node names
Changing the node names arbitrarily broke existing configurations, which
rely on the device path in /etc/config/wireless.
Revert that part of the change without altering the compatible strings.
John Audia [Tue, 8 Jul 2025 19:43:12 +0000 (15:43 -0400)]
ncurses: Add -std=gnu17 to CFLAGS to avoid a GCC15 error when building with glibc
Without the newly introduced flag, building with libc ends in errors such the below.
There is an upstream fix[1], but backporting it is not straight forward.
Daniel Golle [Wed, 9 Jul 2025 01:55:35 +0000 (02:55 +0100)]
xcrypt: work-around broken use of VARIANT with BUILDONLY
Split the xcrypt package build into two Makefiles and a common part for
the version definition in order to work-around build problems when
combining VARIANT with BUILDONLY and scoped InstallDev.
This is done in order to skip build of libcrypt-compat in case we are
not building against glibc in order to prevent libcrypt.so shared
library being present in staging_dir and by that breaking multiple
packages which then will link against it.
Fixes: e3cf7088f1 ("libcrypt-compat: introduce package") Signed-off-by: Daniel Golle <daniel@makrotopia.org> Link: https://github.com/openwrt/openwrt/pull/19353 Signed-off-by: Robert Marko <robimarko@gmail.com>
Felix Fietkau [Mon, 7 Jul 2025 17:38:53 +0000 (19:38 +0200)]
mt76: update to Git HEAD (2025-07-07)
6df761e0e6c7 mt76: fix signature of platform_driver remove funtions for newer kernels 5724be1a6b12 wifi: mt76: Replace strlcpy() with strscpy() c4a114e2b8c9 wifi: mt76: fix queue assignment for deauth packets 243e572d89fc wifi: mt76: add a wrapper for wcid access with validation e41c7785589f wifi: mac80211: get tx power per link d70f62b8f1c7 wifi: mt76: fix vif link allocation 7b3cd3274a24 wifi: mt76: mt7996: Fix secondary link lookup in mt7996_mcu_sta_mld_setup_tlv() cf89b6218043 wifi: mt76: mt7996: Rely on for_each_sta_active_link() in mt7996_mcu_sta_mld_setup_tlv() d71108eedab1 wifi: mt76: mt7996: Do not set wcid.sta to 1 in mt7996_mac_sta_event() 32f8c5849ed1 wifi: mt76: mt7996: Fix mlink lookup in mt7996_tx_prepare_skb ffff9f71e29d wifi: mt76: mt7996: Fix possible OOB access in mt7996_tx() afe63e758196 wifi: mt76: mt7996: Fix valid_links bitmask in mt7996_mac_sta_{add,remove} 68dd28b99dad wifi: mt76: mt7996: Add MLO support to mt7996_tx_check_aggr() 293778652452 wifi: mt76: mt7996: Move num_sta accounting in mt7996_mac_sta_{add,remove}_links a94166b21e20 wifi: mt76: Get rid of dma_sync_single_for_device() for MMIO devices 87873d854e51 wifi: mt76: mt7925: Fix null-ptr-deref in mt7925_thermal_init() 06ba3d5e91f4 wifi: mt76: mt792x: Limit the concurrent STA and SoftAP to operate on the same channel b9f4e0df317d wifi: mt76: mt792x: improve monitor interface handling ec95319fd3fb wifi: mt76: mt7921s: Introduce SDIO WiFi/BT combo module card reset dd2d862251cb firmware: add missing mt7990 eeprom files 05eaa56bc7a4 firmware: update mt7992 firmware to 20250328 32ca2b6db354 firmware: update mt7996 firmware to 20250328
The upstream submission for this mandates the node to be named wifi
instead of wmac. Change all ath79 entries to match the new names and
remove the compatibility patch.
Felix Fietkau [Sun, 6 Jul 2025 17:23:59 +0000 (19:23 +0200)]
ath9k: add back previous DT compatible strings for ahb
The ath9k ahb patch was updated to match the latest upstream version,
however the openwrt DT files still use the older names.
Add those as extra entries in order to remain compatible until DT files
are fixed.
Fixes: 88f4c32060f7 ("mac80211: update to version 6.14.11") Signed-off-by: Felix Fietkau <nbd@nbd.name>
airoha: backport upstream patch for Flow Offload support for AN7581
Backpot upstream patch for Flow Offload support for AN7581 and refresh
all affected patch. To correctly work a dedicated firmware is needed to
use the dedicated Network Coprocessor (NPU).
This also introduce good cleanup and moves the driver in a dedicated
Airoha directory. While currently not totally usable (due to lack of
firmware blob) this is needed to backport support for external PHY/SFP
support.
Refresh all affected patch.
Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com> Link: https://github.com/openwrt/openwrt/pull/18166 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Backport some upstream patch for Airoha ethernet driver in preparation
for Flow Offload support.
Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com> Link: https://github.com/openwrt/openwrt/pull/18166 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>