Felix Fietkau [Thu, 6 Nov 2025 11:36:14 +0000 (11:36 +0000)]
mt76: update to Git HEAD (2025-11-06)
0aece3089a3a wifi: mt76: mt7996: Remove useless check in mt7996_msdu_page_get_from_cache() 05b3d899ad24 wifi: mt76: Move Q_READ/Q_WRITE definitions in dma.h 85e6517b0ac5 wifi: mt76: Add mt76_dev pointer in mt76_queue struct. a3b6c67c97d2 wifi: mt76: Add the capability to set TX token start ID 141a81557070 wifi: mt76: Introduce the NPU generic layer 647d11bb17e0 wifi: mt76: mt7996: Add NPU offload support to MT7996 driver 8ff3b2bfc37f wifi: mt76: mt7996: fix typos in comments 0043147439b4 wifi: mt76: mt7925: refactor regulatory domain handling to regd.[ch] f0e8fe441489 wifi: mt76: mt7925: refactor CLC support check flow 588cc87bf6a2 wifi: mt76: mt7925: refactor regulatory notifier flow dac1d45fe94b wifi: mt76: mt7925: improve EHT capability control in regulatory flow c166c4a0e750 wifi: mt76: mt7925: add auto regdomain switch support d7b059bba166 wifi: mt76: mt7925: disable auto regd changes after user set 84f62a6beb99 wifi: mt76: mmio_*_copy fix byte order and alignment f5ae5b2e8116 Revert "wifi: mt76: mt792x: improve monitor interface handling" 8ae7e6dc1d3a wifi: mt76: adjust BSS conf pointer handling 1b438ebe0d06 wifi: mt76: mt7925: cqm rssi low/high event notify 7519fa4ce62c wifi: mt76: mt7996: fix max nss value when getting rx chainmask ea0580ad065f wifi: mt76: mt7996: no need to wait ACK event for SDO command 74112c2956fb wifi: mt76: mt7996: fix implicit beamforming support for mt7992 361d6bdac45d wifi: mt76: mt7996: support fixed rate for link station d99274cdc30c wifi: mt76: mt7996: fix several fields in mt7996_mcu_bss_basic_tlv() ad90a85b652b wifi: mt76: mt7996: fix teardown command for an MLD peer e9fe8bc03e41 wifi: mt76: mt7996: set link_valid field when initializing wcid 050394665502 wifi: mt76: mt7996: use correct link_id when filling TXD and TXP 5d223855552c wifi: mt76: mt7996: fix MLD group index assignment ab8361dbc421 wifi: mt76: mt7996: fix MLO set key and group key issues 7ce7ab881b3f wifi: mt76: mt7996: fix using wrong phy to start in mt7996_mac_restart() 1e0c23ff754b wifi: mt76: mt7996: fix EMI rings for RRO eb567bc7f9b6 wifi: mt76: mt7925: ensure the 6GHz A-MPDU density cap from the hardware.
Sven Eckelmann [Tue, 4 Nov 2025 11:14:58 +0000 (12:14 +0100)]
realtek: dsa: Fix rate control initialization
The rtl838x_rate_control_init() and rtl839x_rate_control_init() functions
were never called because the rtl83xx_setup_qos() always returned after the
QoS configuration
Fixes: dc9cc0d3e2a1 ("realtek: add QoS and rate control") Signed-off-by: Sven Eckelmann <se@simonwunderlich.de> Link: https://github.com/openwrt/openwrt/pull/20637 Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
cmake: set CMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
According to CMake documentation[1]:
[CMAKE_FIND_ROOT_PATH] is a list of directories that contain the
target environment.
[CMAKE_FIND_ROOT_PATH_MODE_PROGRAM] sets the default behavior for the
find_program command.
In most cases, find_program is used to search for an executable which
will then be executed, e.g. using execute_process or
add_custom_command. So in most cases an executable from the build host
is required, so setting CMAKE_FIND_ROOT_PATH_MODE_PROGRAM to NEVER is
normally preferred.
Since CMAKE_FIND_ROOT_PATH is set to the target staging dir, and the
toolchain root dir, it will find target programs before the host ones.
An example of this problem is if you try to build antiblock from the
packages feed after llvm from the video feeds is built. Antiblock will
search for clang-format, pickup the target version, and fail to build.
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
[1] https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html Link: https://github.com/openwrt/openwrt/pull/20656 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
ba73bc4672ec CMakeLists: update cmake minimum required version to 3.10 988399770af1 libbb: CMakeLists: update cmake minimum required version to 3.10 ce546f3ebff5 opkg: CMakeLists: update cmake minimum required version to 3.10 80503d94e356 libopkg: CMakeLists: update cmake minimum required version to 3.10
Fixes: #20659 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Daniel Golle [Sun, 5 Oct 2025 03:23:29 +0000 (04:23 +0100)]
mediatek: add support for BananaPi BPi-R4 Lite
The BPi-R4 Lite is a WiFi-7 router board based on the MT7987 SoC.
Specification :
- SOC: Mediatek MT7987A (4x Cortex-A53
- RAM: 2GB
- Flash: 32MB SPI NOR, 256MB SPI NAND, 8GB eMMC
- Switch: MediaTek MT7531AE
- Ports : 4x LAN (1G), 1x SFP (via MT7531), 1x WAN (2.5G)
- Buttons : Reset & WPS/Mesh
- LEDs : Status (PWM), SFP
- USB: on-board VIA VL817 USB3.1/USB2.0 hub
* 1 - mPCIe B (SIM3)
* 2 - NGFF-KEYB (SIM1)
* 3 - USB-A connector
* 4 - mPCIe A (SIM4)
- mPCIe: 1x 8GT/s x2 or 2x 8GT/s x1 (configurable via bootloader)
- RTC: PCF8563
- mikroBUS socket with SPI, I2C and full UART
- on-board HT42B534 USB-to-serial for Type-C console port
- Power: USB Type-C PD 20V, or DC via barrel connector or JST-VH 3.96
Installation:
Uncompress *sdcard.img.gz and write to microSD card, eg. using 'dd'.
Use bootloader menu on the serial console to install SPI-NAND or SPI-NOR,
once installed to SPI-NAND you can use the bootloader menu to install to
eMMC. See instructions for BananaPi R3 for details.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Sun, 5 Oct 2025 02:48:30 +0000 (03:48 +0100)]
uboot-mediatek: add support for the BananaPi BPi-R4 Lite
The BPi R4 Lite can boot from microSD, SPI-NAND, SPI-NOR and eMMC.
Build menu-driven U-Boot for each storage option.
Provide options for installation from microSD to SPI-NAND and SPI-NOR,
and from SPI-NAND to eMMC (similar to BPi-R3).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Sun, 5 Oct 2025 02:40:27 +0000 (03:40 +0100)]
mediatek: port MT7987 thermal support
The MT7987 has two LVTS thermal sensors, one covering all CPU cores,
and one for the built-in 2.5GE PHY.
Add support for MT7987 to the LVTS thermal driver.
Thanks to Chad Monroe of Adtran for providing cleaned up patches for
Linux 6.6 which have been ported to Linux 6.12.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Sun, 5 Oct 2025 02:39:52 +0000 (03:39 +0100)]
mediatek: import patches from SDK to support MT7987 Ethernet
Compared to MT7988 (NETSYSv3) the Ethernet Frame Engine of MT7987
has been slighly updated (NETSYSv3.1), among other things the packet
scheduler (shaper) has apparently been reworked.
Import patches for basic support of the Ethernet Frame Engine of the
MT7987 SoC.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Sun, 5 Oct 2025 00:10:54 +0000 (01:10 +0100)]
mediatek: add basic support for the MT7987 SoC
The MT7987 is mostly a stripped-down low-pin-count version of the
MT7988 without the 10GBit/s SerDes. Most existing drivers can be reused.
Import to-be-sent-upstream patches doing all the groundwork for
basic support for the MT7987 SoC, adding clk, pinctrl and pwm support.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Sun, 5 Oct 2025 00:07:05 +0000 (01:07 +0100)]
uboot-mediatek: add builds for the MediaTek MT7987 reference board
Build the (upstream) configuration for the MT7987 reference board, and
enable support for DT-overlay application which will be necessary to
use the image for the MT7987 RFB generated in OpenWrt.
Adapt our downstream patches (generic reset button, rootdisk selection)
for MT7987 to prepare for real-world boards.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Sun, 5 Oct 2025 00:04:54 +0000 (01:04 +0100)]
arm-trusted-firmware-mediatek: add builds for MT7987
Build TF-A for the MediaTek MT7987 SoC family.
Add necessary downstream patches in preparation for the BananaPi R4 Lite,
which connects both flash chips to SPI2 and got broken MMC bus.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Sat, 4 Oct 2025 23:34:42 +0000 (00:34 +0100)]
generic: mtdsplit: fit: improve detecting external-data FIT
Currently the detection of external-data FIT images works by checking
if the FIT structure is more than 4 kiB. However, for boards with lots
of different DT-overlays and configurations the FIT structure can
exceed 4 kiB which results in the FIT splitter to fail detecting the
rootfs.
Increase the threshold for external-data FIT to 512 kiB as there aren't
any kernel images smaller than that, and FIT structure less than 512 kiB
will always be an external-data FIT.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Pawel Dembicki [Sat, 1 Nov 2025 22:36:36 +0000 (23:36 +0100)]
layerscape: switch to Linux 6.12
Linux 6.12 has been validated on Layerscape platforms, including NXP
reference boards and multiple custom designs. Tests covered system
boot, networking, storage, and common peripherals, with no regressions
observed.
Enable 6.12 as the default to continue broader testing and integration.
Pawel Dembicki [Sat, 1 Nov 2025 22:26:20 +0000 (23:26 +0100)]
layerscape: configure PHY reset GPIO on LS1012A-FRDM
On the LS1012A-FRDM both PHY reset pins are tied to GPIO1_23.
Up to Linux 6.6, pinctrl did not touch this GPIO and the reset
line remained in the state set by U-Boot. Starting from 6.12,
the kernel requires explicit configuration of this pin, otherwise
the PHYs fail to be detected.
This adds a gpio-hog node to ensure the reset line stays asserted,
fixing PHY detection on boot.
Florian Maurer [Fri, 3 Oct 2025 07:30:59 +0000 (09:30 +0200)]
ath11k: fix transmit queue flushing through flush_sta implementation
warning print "ath11k c000000.wifi: failed to flush transmit queue 0"
is observed during busy times.
The mac80211 fallback implementation of `flush_sta` does not handle the per STA queues well.
This is fixed by providing a ath11k specific implementation of flush_sta telling the firmware to flush a given station.
The draining of the transmit queues should therefore stop correctly, even if new packets arrive in the mean time.
An upstream ath11k RFC is available at:
https://patchwork.kernel.org/project/linux-wireless/patch/GV1P250MB14333A5BF24623C4753A10E1E8E0A@GV1P250MB1433.EURP250.PROD.OUTLOOK.COM/
ipq806x: 6.12: backport patch to handle CPUFreq with no SMEM
The Google OnHub doesn't init the SMEM in SBL causing the CPUFreq driver
to fail probe. This is caused by the fact that new CPUFreq driver makes
use of SMEM to identify the SoC variant and on Google OnHub this is not
available.
Backport patch to detect this state and fallback to compatible
matching fixing the CPUFreq driver.
Hannu Nyman [Tue, 7 Oct 2025 15:30:01 +0000 (18:30 +0300)]
libevent2: adjust for cmake 4.x compatibility
Patch CMakeLists.txt for cmake 4.x compatibility.
New cmake versions require at least 3.5 as 'cmake_minimum_required'
in CMakeLists.txt. In future 3.10 will be required.
Hannu Nyman [Tue, 7 Oct 2025 15:30:01 +0000 (18:30 +0300)]
jansson: adjust for cmake 4.x compatibility
Patch CMakeLists.txt in selected apps for cmake 4.x compatibility.
New cmake versions require at least 3.5 as 'cmake_minimum_required'
in CMakeLists.txt. In future 3.10 will be required.
Hannu Nyman [Tue, 7 Oct 2025 15:30:01 +0000 (18:30 +0300)]
libjson-c: patch for cmake 4.x compatibility
Patch CMakeLists.txt in selected apps for cmake 4.x compatibility.
New cmake versions require at least 3.5 as 'cmake_minimum_required'
in CMakeLists.txt. In future 3.10 will be required.
d44af6dd8f4e dhcpv6: create struct dhcpv6_lease 4df45c8c3722 dhcpv4: create struct dhcpv4_lease a6dccae41b60 odhcpd: struct lease -> struct lease_cfg fc0abb66f122 dhcpv4: use leasetime from a->lease 74eeff193848 router: always use link-local src address for RAs b9a071b8341f router: Rewrite the ingress MTU to one configured for the interface 1ef9e0e610d5 router: utilize interface ra_mtu for RA 1480c09ee0aa config: clamp ra_mtu to interface MTU, and default ra_mtu to interface MTU ee4f0df6bd68 netlink: Store interface MTU at link change d174e25e85a1 github: fix CI apt dependencies 8f393d55a76e odhcpd: more fixes for IID calculations
b3e1db42b4db odhcp6c: fix safe interval processing to follow RFC 4862 63461f64d4c1 dhcpv6: always include IA_NA and IA_PD in Request message if requested 1051cabb4da3 dhcpv6: fix incorrect IA type being printed in syslog c5237eabeb5c odhcp6c: prevent RELEASE at shutdown when -k is set a01b1ff1e50f odhcp6c: fix client exiting if Renew and Rebind fails 4839bf6d0feb odhcp6c: implement RKAP: Reconfiguration Key Authentication Protocol 52a9a847def4 dhcpv6: fix solicit loop when server has no address available 7b1f67c23de6 ubus: implement ubus methods to force a Renew and Release 2b0e8f2d8541 ubus: implement retransmission configuration via ubus 8d89d373f360 odhcp6c: add failure when -E option is used without ubus support enabled 58f3c9eb1163 odhcp6c: add new argument option to disable script call 1048fc4fb622 reconfigure: move all configuration functions to a new file 93f056d3a1f2 reconfigure: implement DHCP reconfiguration af669fb23cd3 dhcpv6: implement statistics for DHCPv6 3a1a599fecb7 ubus: implement UBus method to get state data immediately 44c50214997d ubus: emit UBus event on DHCP state changes 33b972bc526a ubus: connect to UBus backend 2f609f248faf odhcp6c: implement asynchronous handling for DHCPv6 State 6466314e7f62 odhcp6c: enable Non-Blocking DHCPv6 Socket 1df65f0caf46 dhcpv6: refactor dhcp_request Function 047c63a8156b dhcpv6: add t1 and t2 transmission 1b5f0c402bbf dscp: add option to set dscp value 96017df54d8f dhcpv6: fix wrong retransmission of DHCPv6 Solicit b929fc8a1cfd odhcp6c: add a simple build script adc651ffed55 cmake: make libubox mandatory 5182e2b696ef cmake: drop EXT_PREFIX_CLASS 8d052c52e18d cmake: disable pedantic f2521b296b21 github: fix CI apt dependencies
Florian Eckert [Tue, 7 Oct 2025 12:12:38 +0000 (14:12 +0200)]
odhcp6c: add new option to start 4in6 protos as dynamic interface
If proto 'dhcpv6' is set for an interface, dynamic interfaces are created
for the protocols map, dslite or 464xlat if this netifd protocols are
installed and the interface option is not explicitly set to '0'.
The problem is that this option cannot be configured via LuCI, which means
that the dynamic protocols are started. In my case, that is the '464xlat'
'6in4' protocol. I see the follwing log messages continuously in the log as
I do not have a '464xlat' in my network.
Fri Aug 22 10:36:33 2025 daemon.notice netifd: Interface 'wan6_4' is now down
Fri Aug 22 10:36:33 2025 daemon.notice netifd: Interface 'wan6_4' is setting up now
Fri Aug 22 10:36:36 2025 daemon.notice netifd: Interface 'wan6_4' is now down
Fri Aug 22 10:36:36 2025 daemon.notice netifd: Interface 'wan6_4' is setting up now
To fix this by adding a new option to disable the dynamic interface creation
for '4in6' if needed. The option is named '4in6_dynamic' and is a boolean.
If the new option is 'true' (default) dynamic interfaces are create.
If the new option set to 'false' no dynamic 4in6 interface are created.
Jan Hoffmann [Thu, 27 Feb 2025 19:44:59 +0000 (20:44 +0100)]
realtek: add support for Zyxel XGS1010-12 A1
This device is very similar to the already supported XGS1210-12 A1. For
now, only revision A1 is supported (not marked on the label).
Hardware:
- RTL9302B SoC
- 16 MiB NOR flash
- 128 MiB DDR3 SDRAM
- 8x 1G RJ45 (RTL8218D)
- 2x 2.5G RJ45 (2x RTL8226)
- 2x SFP+ (supporting 1G/2.5G/10G)
- 3.3V UART serial (115200 baud 8N1) on the right side of the case
(from bottom to top: GND, RX, TX, VCC)
It is originally an unmanaged switch, so there are a few differences:
- No reset button
- Different partition layout: There is some reserved space in the middle
of the flash which might be used by the bootloader for flash testing.
The remaining space in between is used for OpenWrt using mtd-concat.
The largest contiguous area is at the beginning, allowing a maximum
kernel size of 7 MiB.
- No individual MAC address: This device ships with an empty U-Boot
environment. When an OpenWrt squashfs image is booted for the first
time, a random MAC address will be written to the environment (but
only if the environment has been initialized from the bootloader
before and contains the default MAC address).
Steps to boot initramfs image via network:
- Configure a TFTP server to provide the OpenWrt initramfs image
- Connect to device using serial (see hardware information above)
- Power on the device and enter U-Boot using Esc when prompted
- Run the following commands (adjust as necessary):
# rtk network on
# tftpboot 0x84f00000 192.168.1.100:openwrt-xgs1010-initramfs.bin
# bootm
Installation on flash:
- Boot initramfs image as described above
- Now is a good time to create a backup of all flash partitions! You'll
need this if you want to revert to the unmanaged factory firmware at
some point.
- Use sysupgrade to install OpenWrt
- After restart enter U-Boot again and set the boot command:
# setenv bootcmd 'rtk network on; bootm 0xb4900000'
# saveenv
# run bootcmd
Note: The command "rtk network on" is only needed because the drivers
currently rely on some setup by the bootloader (without this the RJ45
ports don't work). If the drivers improve in the future, it should be
removed (i.e. change the boot command to "bootm 0xb4900000").
Reverting to factory firmware:
- Write back your backup of the firmware partition (or write just the
fwconcat1 partition, and erase the other two fwconcat partitions)
- Change the boot command back to "boota" (or just erase the u-boot-env
partition so the default gets used)
Jan Hoffmann [Mon, 20 Oct 2025 13:24:40 +0000 (15:24 +0200)]
realtek: restructure Zyxel XGS1210-12 device tree files
This is a preparation for adding support for XGS1010-12, which is almost
identical to XGS1210-12, with some small differences (partition layout,
missing reset key).
In addition to moving the common parts to a new file, also simplify the
definition of the 2.5G PHYs to reduce duplication. With this change, the
revision-specific files only have to specify the SMI addresses.
Jonas Jelonek [Mon, 27 Oct 2025 19:30:06 +0000 (19:30 +0000)]
realtek: dsa: remove sds_num entirely
After having moved RTL93XX SerDes configuration from PHY to PCS driver,
the DSA driver doesn't need to know about SerDes explicitly anymore.
Although RTL83XX SerDes is still partly managed within the DSA driver,
it doesn't make use of the sds_num property/field. RTL93XX was the only
user of this right now.
Thus, we can just remove the remaining 'sds_num' code which doesn't
serve any purpose anymore.
Jonas Jelonek [Sun, 26 Oct 2025 14:02:11 +0000 (14:02 +0000)]
realtek: rtl93xx: remove pseudo-PHYs and phy-handle from SFP ports
RTL93XX reached the point where the SerDes' are no longer treated as
regular PHYs. Instead, they are managed by the dedicated PCS driver.
Thus, all device tree definitions should follow this change.
Remove the pseudo-PHYs for the SerDes (so far usually defined with macro
INTERNAL_PHY) and corresponding 'phy-handle's from all SFP ports. This
removes a long-lasting confusion from our Realtek driver(s).
Jonas Jelonek [Sat, 11 Oct 2025 21:36:25 +0000 (21:36 +0000)]
realtek: dsa: allow to drop phy-handle on switch ports
When Realtek SerDes is completely handled by PCS, it is not treated as
a regular PHY anymore. Thus, we should be able to drop the currently
used pseudo-PHYs and phy-handles for ports which just use the SerDes as
PCS but have no PHY attached.
Allow to drop the phy-handle from switch port definitions if there is a
pcs-handle defined by relaxing several checks in the DSA driver.
Sven Eckelmann [Wed, 29 Oct 2025 15:00:03 +0000 (16:00 +0100)]
realtek: dsa,pcs: rtl930x: Disable SerDes patching for 10G-QXGMII
The code to add bootstrapping for 10G-QXGMII on RTL930X broke the only
devices which are using 10G-QXGMII on RTL930X (Plasma Cloud PSX8+PSX10) in
OpenWrt. It is currently unknown what other changes are pending to get this
correctly working. But both the `rtpcs_930x_sds_usxgmii_config()` call and
the write of the "magic" SerDes values in the patching process break the
SerDes connected to the RTL8224 PHYs.
The Plasma Cloud PSX8+PSX10 devices get their RTL8224 and the 10G-QXGMII
SerDes bootstrapped directly by u-boot.
Fixes: dca20f91ea12 ("realtek: add serdes patch for 10G_QXGMII") Signed-off-by: Sven Eckelmann <se@simonwunderlich.de> Link: https://github.com/openwrt/openwrt/pull/20588 Signed-off-by: Robert Marko <robimarko@gmail.com>
Eric Fahlgren [Fri, 19 Sep 2025 17:01:07 +0000 (10:01 -0700)]
scripts/make-index-json: ensure that manifest output is in opkg format
Certain existing tooling, such as 'package-metadata.pl', are written
to accept the output of 'opkg list' with package manifest delimited
by '-'. The 'make-index-json.py --manifest' output was emulating
the 'apk list --manifest' format without the delimiting dash,
thus breaking these legacy tools.
We fix this by adding the dash to the manifest output, which allows
all existing tooling to process the output irrespective of whether
the build system uses opkg or apk.
Felix Fietkau [Fri, 31 Oct 2025 18:33:21 +0000 (18:33 +0000)]
wpa_supplicant: use a timer to defer starting interfaces
This allows wpa_supplicant to process pending netlink socket messages
first. Without this change, there is a race condition where the newly
created interface processes netlink events from the removal of the
previous interface.
Fix Totolink X6000R image failing to upgrade via sysupgrade due to an
incorrect upgrade case. The fallback upgrade path used the NAND upgrade
routine, which caused the "layout volume not found" error on NOR flash
devices. By adding a specific case for this board, sysupgrade now uses
`default_do_upgrade`, which is compatible with the NOR flash layout.
mediatek: mt7622: fix 2.5G WAN port on Netgear WAX206
Since 6b43a52171f5, the PHY is using interrupts instead of polling. It
turned out that the interrupt number is wrong and the WAN port doesn't
work. This commit fixes this bug.
Fixes: 6b43a52171f5 ("mediatek: mt7622: add the missing phy interrupt-parent for WAX206") Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
** This commit includes a fix for the GPIO pins for factory/reset and WPS. It was reversed and is now fixed.
* U-Boot Mod Openwrt Installation via UART:
Openwrt Stock Layout Commit: https://github.com/openwrt/openwrt/commit/6e04dccb7ad3191e9a48597a1b354bf548ead1d8
NOTE: Stock Openwrt is not necessary. You can go straight to ubootmod version of the firmware. However, it is recommended to follow stock layout instructions to backup NAND.
1. Configure TFTP server with IP 192.168.1.66. Copy `openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-initramfs-recovery.itb` to TFTP root and rename to `predator.bin`
2. Interrupt boot by pressing 0 on startup or select `U-Boot Console` in U-Boot Boot Menu.
3. Run setenv `serverip 192.168.1.66; setenv ipaddr 192.168.1.1; tftpboot 0x46000000 predator.bin; bootm` in uboot console.
4. Wait for boot complete on Openwrt initramfs env.
5. Transfer `openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-initramfs-recovery.itb`,
`openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-squashfs-sysupgrade.itb`,
`openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-bl31-uboot.fip`,
`openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-preloader.bin` to router's /tmp/ directory.
6. run `ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5`
7. run `ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB`
8. run `ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB`
9. run `ubimkvol /dev/ubi0 -n 2 -N recovery -s 10MiB`
10. run `ubiupdatevol /dev/ubi0_2 /tmp/openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-initramfs-recovery.itb`
11. install kmod-mtd-rw via opkg or apk.
12. run `insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1`
13. run `mtd write /tmp/openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-preloader.bin bl2`
14. run `mtd write /tmp/openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-bl31-uboot.fip fip`
15. run `sysupgrade -n /tmp/openwrt-mediatek-filogic-acer_predator-w6x-ubootmod-squashfs-sysupgrade.itb`
16. reboot to ubootmod layout
Stijn Segers [Wed, 29 Oct 2025 19:32:04 +0000 (20:32 +0100)]
uboot-tools: relabel Zyxel devices
Commits d205878ede and 46cf10771a relabeled the supported Zyxel devices
from v1/v2 to A1/B1, but board setup files were overlooked.
Fixes: d205878ede ("rtl838x: rename GS1900 series v1/v2 to A1/B1") Fixes: 46cf10771a ("rtl839x: rename GS1900 series v1/v2 to A1/B1") Signed-off-by: Stijn Segers <foss@volatilesystems.org> Link: https://github.com/openwrt/openwrt/pull/20590 Signed-off-by: Robert Marko <robimarko@gmail.com>
Stijn Segers [Wed, 29 Oct 2025 19:26:01 +0000 (20:26 +0100)]
realtek: fix Zyxel relabel
Commits d205878ede and 46cf10771a relabeled the supported Zyxel devices
from v1/v2 to A1/B1, but board setup files were overlooked.
Fixes: d205878ede ("rtl838x: rename GS1900 series v1/v2 to A1/B1") Fixes: 46cf10771a ("rtl839x: rename GS1900 series v1/v2 to A1/B1") Signed-off-by: Stijn Segers <foss@volatilesystems.org> Link: https://github.com/openwrt/openwrt/pull/20590 Signed-off-by: Robert Marko <robimarko@gmail.com>
Kenneth Kasilag [Mon, 20 Oct 2025 22:53:09 +0000 (22:53 +0000)]
airoha: support openwrt,netdev-name for renaming interfaces
Add support to the airoha target for the OpenWrt-specific DT property
`openwrt,netdev-name`. In particular, this is for interfaces under
non-DSA `airoha_eth` interfaces.
This will avoid conflicts with upstream code[1]; and maintain forward
compatibility with OpenWrt configurations if/when `airoha_eth` becomes
a full DSA driver.
MAC addresses
-------------
LAN 2.4G + 1
WAN 2.4G + 3
2.4G Label MAC (stored in factory offset 0x1006)
5G 2.4G + 2 (stored in factory offset 0x5006)
Installation
------------
SSH
---
1. Reset the device, setup and enable SSH.
2. Transfer initramfs.itb to /tmp on the device.
3. SSH into the router, credentials are the same as in the web ui.
4. Write initramfs to linux partition:
mtd-write -d linux -i initramfs.itb
5. Reboot and wait for OpenWrt to boot.
6. Transfer sysupgrade.bin to /tmp on the device.
7. SSH into the router, user root, no pw.
8. Delete jffs2 ubi partition:
ubirmvol /dev/ubi0 --name=jffs2
9. Flash OpenWrt:
sysupgrade -n sysupgrade.bin
Richard Huynh [Sun, 19 Oct 2025 10:52:59 +0000 (21:52 +1100)]
kernel: rtl8261n: Add support for Serdes RX swap
Datasheet claims this register bit is supposed to be set by default,
however it was found in practice to not be, and OEM drivers would set
this bit at the same time.
Lorenzo Bianconi [Sun, 26 Oct 2025 16:46:42 +0000 (17:46 +0100)]
airoha: Add missing board files for EN7581
Add missing leds and network board files for EN7581 SoC.
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
[ drop reference to downstream 10g RFB board ] Link: https://github.com/openwrt/openwrt/pull/20556 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Enable USB node on eMMC RFB board and disable USB2 3.0 port to make the
3rd PCIe line correctly work.
This is needed to prevent the xHCI driver to mess with PCIe by
configuring the USB2 3.0 port. Port will still be detected but won't be
configureed by the driver and won't have PHY to configure for.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
airoha: add pending patch for USB support on AN7581
Add pending patch for USB support on AN7581 SoC. This is also required
to make operational the 3rd PCIe line that use the USB2 Serdes for PCIe
operations.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Felix Baumann [Sun, 26 Oct 2025 01:54:14 +0000 (02:54 +0100)]
realtek: rtl838x: fix regression in enable_phy_polling
Fix regression from back when support for RTL930x was added.
While at it replace 0x8000 by BIT(15).
Fixes: 27029277f98ddd0006175bdc5beec8b0b150f187 Tested-by: Jonas Jelonek <jelonek.jonas@gmail.com> Signed-off-by: Felix Baumann <felix.bau@gmx.de> Link: https://github.com/openwrt/openwrt/pull/20549 Signed-off-by: Robert Marko <robimarko@gmail.com>
Jonas Jelonek [Thu, 16 Oct 2025 16:01:11 +0000 (16:01 +0000)]
realtek: dsa,pcs: rtl930x: let PCS driver setup SerDes
Remove SerDes initialization/configuration calls from the DSA driver in
'rtl93xx_phylink_mac_config' and let our PCS driver setup the SerDes now
that the driver is able to do that.
Adjust some details in rtl93xx_phylink_mac_config to ensure the MAC is
properly disabled MAC before configuring the SerDes. This was done
within the SerDes code before.
Jonas Jelonek [Mon, 20 Oct 2025 22:06:33 +0000 (22:06 +0000)]
realtek: pcs: rtl930x: import SerDes setup code from PHY driver
Import SerDes configuration code from PHY driver into the PCS driver.
Only do mandatory adjustments, rename the function to adhere to the
naming scheme, adjust all SerDes access calls.
Comparing the partition contents of a bricked and a working unit showed
that on the bricked one the fake uImage header was missing. The UBI
partition also showed significant changes. Both are fixed when the
base DniImage receipt is used.
Christoph Krapp [Sun, 26 Oct 2025 20:16:50 +0000 (21:16 +0100)]
ipq40xx: improve Netgear LBR20 LED config
This aligns the LED behaviour with other Orbi devices. Orbi devices have
multiple RBG LEDs at the top of the device and two status LEDs at the
back next to the barrel jack.
The current behaviour of other Orbi devices is to use the multi-color
LEDs at the top for status indication and the green/red LEDs at the back
for running/panic-indication. This matches the vendor behaviour except
the color choice.
Other devices use green as running, blue on upgrade, red on failsafe and
white on bootup, so this aligns the LBR20 behaviour to the rest.