This is about as simple as it gets, it's able to start up and put
the onboard switch into dumb switch mode and then send untagged
frames which become available on every switch port.
It is out-of-tree to allow for rapid development and it is being
proposed now because even in this state it brings a lot of value
to the EcoNet platform and it is a fairly complex ethernet system
so it will take some time before the driver is in a state that
may be considered for upstreaming.
In preparation for the introduction of ethernet, this patch normalizes the
partitions in the devices in DT so that the partition to upgrade will
always be called tclinux, no matter what it is called from the factory.
Also fix a math error in Nokia G240G-E partition table and remove leading
zeros from paritition offsets.
Finally, add NVMEM mac-address entries where they are left by the
factory. In preparation for the introduction of Ethernet and Wifi
support.
Hauke Mehrtens [Thu, 4 Dec 2025 20:33:13 +0000 (21:33 +0100)]
bcm47xx: Fix lzma-loader compilation
Fixes:
```
LzmaDecode.c: In function 'RangeDecoderReverseBitTreeDecode':
LzmaDecode.c:199:5: error: 'symbol' undeclared (first use in this function)
199 | symbol |= (bit << i);
| ^~~~~~
LzmaDecode.c:199:5: note: each undeclared identifier is reported only once for each function it appears in
```
Hauke Mehrtens [Thu, 4 Dec 2025 20:12:24 +0000 (21:12 +0100)]
ramips: Fix cmpilation
Fixes this compile problem:
```
drivers/net/ethernet/ralink/esw_rt3050.c: In function 'rt3050_esw_init':
drivers/net/ethernet/ralink/esw_rt3050.c:1467:12: error: 'pdev' is used uninitialized [-Werror=uninitialized]
1467 | if (!pdev)
| ^
drivers/net/ethernet/ralink/esw_rt3050.c:1461:33: note: 'pdev' was declared here
1461 | struct platform_device *pdev;
| ^~~~
cc1: all warnings being treated as errors
```
Instead of using tag name, directly use git commit for the base feed
string if we detect we are generating an SDK from a buildbot (using
CONFIG_BUILDBOT)
This improve security and generates consistent feed.conf.default files
following the pattern used by feeds repository.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
GL-MV1000 external SD controller was broken by a recent kernel update
due to a mistake in Device Tree: "regulator-gpio" was defined without
required "gpios" property.
Removing this regulator definition from the device tree fixes this issue
without any side effects so far.
"main" branch uses upstream devicetree for this device, so add a kernel
patch for the "mvebu" kernel family.
It was found that there is currently a conflict for the cond.m4 that
is also shipped by automake, making the gnulib one having priority causing
problem with finding AM_CONDITIONAL macro.
To handle this, install gnulib .m4 file with a gl_ prefix to the
filename.
This make sure gnulib .m4 file won't have name conflict with automake
.m4 default files permitting correct autoreconf run of any affected
package by this.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Robert Marko [Thu, 25 Sep 2025 20:44:10 +0000 (22:44 +0200)]
microchipsw: lan969x: add Microchip EV23X71A
Microchip EV23X71A is a LAN9696 based EVB.
Specifications:
* CPU: Microchip LAN9696 switch SoC
* DRAM: 1GB DDR4
* Storage:
* 2MB QSPI NOR
* 4GB eMMC
* Networking:
* 24 x 10/100/1000 RJ45 via LAN8814 Quad PHY-s over QSGMII
* 4 x 100/1000/2500/5000/10000 SFP+ ports
* 1 x 10/100/1000 management RJ45 via LAN8840 PHY over RGMII (U-Boot too)
* USB: 1 x USB2.0 Type-A
* Management via USB-C (MCP2200):
* UART @ 115200 baud
* GPIO-s for bootstrap, reset and clock selection
* DIP switch for boostrap configuration
* LED-s:
* 2 per networking port (Green and Yellow)
* Green status LED
* Yellow reset LED
* Hard reset button
* Power:
* 12V DC barrel jack
* 48/56V DC screw terminal
* Selectable via toggle switch
* PTP support:
* Sync-E DPLL ZL30732B to generate the board required clocks
* Two SMAs for PTP and two for Station clock inputs and outputs
* Two ITU-T G.8275-compliant RS-422 interfaces for PTP applications
* External PoE:
* Option for PoE add-on, like EV14Y36A (IEEE 802.3af/at/bt Type 4
standard com-pliant)
* Option for external CPU control via SPI and PCIe
Installation instructions:
1. Connect to UART via the USB-C port
2. Connect the management port
3. Boot and interrupt U-Boot
4. TFTP the OpenWrt initramfs image and boot it
5. SCP the OpenWrt eMMC GPT image to a running OpenWrt initramfs to /tmp
openwrt-microchipsw-lan969x-microchip_ev23x71a-squashfs-emmc-gpt.img.gz
And decompress it via:
gzip -d /tmp/openwrt-microchipsw-lan969x-microchip_ev23x71a-squashfs-emmc-gpt.img.gz
Rani Hod [Tue, 7 Oct 2025 14:54:55 +0000 (17:54 +0300)]
mediatek: filogic: add support for Widelantech WAP430X
This AX3000 flying saucer-shaped device is sold under a few names:
- Widelantech WAP430X
http://www.widelantech.com/?m=home&c=View&a=index&aid=131
- Felicomm
- UeeVii UAP200 (sold on amazon.com)
True name, as marked on the PCB and as appears in the DTS, is WAP430X.
Hardware:
- SoC: Mediatek MT7981B
- RAM: 256MiB DDR3
- ROM: 16MiB NOR flash (Winbond 25Q128JVSQ)
- Wired: one GbE RJ45 port
- Wireless: Mediatek MT7976CN DBDC
- Antennas: Internal (two 2.4 GHz 4.5 dBi, three 5 GHz 6 dBi)
- GPIO: two blue LEDs (status, WLAN), one button (reset)
- Power: DC5521 (12V) or 802.3af PoE (48V 0.3A)
- UART: J500 on PCB [3v3] (Rx) (Tx) (Gnd), 115200n
Original firmware is GECOOS 8.0_2024081000, a fork of OpenWrt 21.02
created by Widelantech. All ports are closed except 443 (web management
interface) and 80 (redirects to 443). UART is locked down, but U-Boot
bootloader is friendly.
Installation is done via UART (see note below).
Method 1: press any key during boot to enter MTK U-Boot bootloader,
then choose option 2 (Upgrade firmware) and upload sysupgrade binary
via TFTP (or via Xmodem).
Method 2: put sysupgrade binary on a webserver (http, not https); after
GECOOS loads, choose option 4 (固件在线升级 = online firmware upgrade)
in the menu and enter the URL to the sysupgrade binary.
Note: GECOOS has a slick web management, and firmware can be uploaded
at https://6.6.6.6/#/system/sysupgrade but it's still not clear how to
convert the sysupgrade binary to a factory binary accepted by the web
interface (WIP).
Sven Eckelmann [Mon, 1 Dec 2025 12:58:40 +0000 (13:58 +0100)]
realtek: dsa: rtl930x: Fix flow control with ingress shaping
Tests with ingress shaping and enabled flow control showed really high
packet loss. It seems like the MAC pause frames are not created correctly
when both burst high off is set to the same value as burst high on.
By default, RTL930x has set the burst high values to:
* on: 64K
* off: 32K
Using the same 1:2 ratio seems to solve the high packet loss rate during
UDP tests.
Fixes: 2e74eb6d93a7 ("realtek: dsa: rtl93xx: Support per port throttling") Signed-off-by: Sven Eckelmann <se@simonwunderlich.de> Link: https://github.com/openwrt/openwrt/pull/21011 Signed-off-by: Robert Marko <robimarko@gmail.com>
Felix Fietkau [Mon, 1 Dec 2025 18:13:52 +0000 (18:13 +0000)]
openssl: fix AES-GCM-SIV and AES-SIV with zero-length messages
Fix the cipher implementation to avoid treating empty input as finalizer.
This issue is fixed in the openssl 3.6 branch, but the fix approach from
that branch is not suitable for 3.5, since the code is completely different.
CPR conversion to of_property_present is broken in multiple places, either
by leaving the comma after now the last argument or by attempting to replace
an instance that actually uses the returned length.
So, lets fix these in order for qualcommax to compile again.
Fixes: c9e7f32c4c09 ("treewide: use of_property_present") Signed-off-by: Robert Marko <robimarko@gmail.com>
Installation/flashing instructions:
1. In OEM web interface navigate to gear icon → System → SSH and enable SSH.
2. Log in via SSH (username/password are the same as for the web interface).
3. Run "debug dual-image show".
4. Verify that output is "Current Image num: 1".
5. If this is not the case (i.e. if the output is "Current Image num: 0"):
a. Either flash a fresh version of factory firmware, or
b. run "debug dual-image set boot-image image1" and then run "reboot".
6. Log in via SSH again and verify that output is "Current Image num: 1".
7. Rename "openwrt-qualcommax-ipq807x-zyxel_nwa210ax-squashfs-factory.bin" to
"openwrt.bin" to avoid upload errors in the OEM web interface.
8. Reopen OEM web interface, navigate to wrench icon → File Manager →
Firmware Package and upload the bin file. Once the upgrade process is
finished and OpenWrt has booted, the LED will light up green.
Switching between OpenWrt and OEM firmware:
- OpenWrt → Zyxel via ssh command "zyxel-bootconfig-ipq807x set image1".
- Zyxel → OpenWrt via ssh command "debug dual-image set boot-image image0".
This commit is based on the work of Pascal Beleiu <pascal@beleiu.de>: 93ca21f3 (qualcommax: ipq807x: add support for Zyxel NWA210AX, 2025-03-17)
Rany Hany [Sat, 15 Nov 2025 15:32:31 +0000 (15:32 +0000)]
wifi-scripts: add beacon_prot and spp_amsdu support
This adds support for beacon_prot and spp_amsdu in hostapd and
beacon_prot in wpa_supplicant (spp_amsdu is not relevant there).
Both options are disabled by default unless set in the config.
Shiji Yang [Tue, 21 Oct 2025 04:06:04 +0000 (12:06 +0800)]
ipq40xx: dts: convert WIA3300-20 SPI chipselect to hardware mode
On ipq40xx platform, some specific GPIO can be configured as hardware
controlled SPI CS pin. This commit is an example of how to convert the
chipselect pin to the hardware CS mode.
Rany Hany [Sat, 8 Nov 2025 16:48:13 +0000 (16:48 +0000)]
wifi-scripts: change wifi-station's mac option into list
In the past PR[1] to add SAE wifi-station support, a commenter[2] requested
that the mac option be changed into a list. After trying to migrate my old
RADIUS setup I found myself wanting this change as well as it would simplify
my config. This patch does precisely that. Old configs that specify
`option mac ....` still work without any issues.
This change was done for both PSK and SAE. The schema was updated as well.
- MOX A's RJ-45 is assigned to `eth0`.
- MOX C, E (4x, 8x RJ-45) are assigned to `lan<number>@eth1`
- If MOX D (SFP) is connected directly to MOX A, the resulting interface
is `eth1`. If it's connected through MOX E (8x RJ-45), the resulting
interface is `sfp@eth1`.
Quirks:
-----------------------
- MOX is sensitive to the order of connected modules. Verify that the
confguration is valid at: https://mox-configurator.turris.cz/
- `CONFIG_MOXTET` and `CONFIG_GPIO_MOXTET` need to be enabled in kernel
config. Moxtet is a bus protocol needed to discover and configure MOX
modules. It must be compiled into the kernel for the modules to work.
Though it's very small so it won't bloat up the kernel image.
Flashing instructions:
-----------------------
1. Download `openwrt-*-ext4-sdcard.img.gz` and `gunzip` it.
2. Insert an SD card and flash the image to it using dd:
dd if=openwrt-*-ext4-sdcard.img.gz of=/dev/mmcblk0 bs=4096 conv=fsync
3. Plug the SD card into MOX.
Rany Hany [Wed, 19 Nov 2025 18:55:48 +0000 (18:55 +0000)]
wifi-scripts: make ft_iface configurable
This is useful as there are cases where no network is configured
or the configured network is isolated (APs are blocked from
communicating with each other over it). In both cases, it would make
sense to set ft_iface to another interface dedicated to FT over DS
traffic.
Flash instruction using initramfs-factory.bin image (StockFW WebUI):
1. Boot WF1200HP2 with router mode
2. Access to the WebUI ("http://aterm.me/" or "http://192.168.10.1/") on
the device and open firmware update page ("ファームウェア更新")
3. Select the OpenWrt initramfs-factory.bin image and click update
("更新") button
4. After updating, the device will be rebooted and booted with OpenWrt
initramfs image
5. On the initramfs image, upload (or download) uboot.bin and
sysupgrade.bin image to the device
6. Replace the bootloader with uboot.bin image
mtd write <uboot.bin image> bootloader
7. Perform sysupgrade with sysupgrade.bin image
sysupgrade <sysuppgrade image>
8. Wait ~120 seconds to complete flashing and rebooting
Flash instruction using initramfs-factory.bin image (bootloader CLI):
1. Connect and open serial console
2. Power on WF1200HP2 and interrupt bootloader by ESC key
3. Login to the bootloader CLI with the password "chiron"
4. Start TFTP server by "tftpd" command
5. Upload initramfs-factory.bin via tftp from your computer
example (Windows): tftp -i 192.168.0.1 PUT initramfs-factory.bin
6. Boot initramfs image by "boot" command
7. On the initramfs image, backup the stock bootloader and firmware if
needed
8. Upload (or download) uboot.bin and sysupgrade.bin image to the
device
9. Replace the bootloader with uboot.bin image (see above)
10. Perform sysupgrade with sysupgrade.bin image (see above)
11. Wait ~120 seconds to complete flashing and rebooting
Notes:
- The stock bootloader requires the unknown filesystem on firmware area
in the flash chip. Booting OpenWrt from that filesystem cannot be
handled, so the bootloader needs to be replaced to mainline U-Boot
before OpenWrt installation.
Known issues:
- All LEDs on the front side are connected to the GPIO controller on the
ath10k chip (QCA9882) and controlled by it. The current ath10k driver
supports only one LED as "ath10k-phyN", but using as a GPIO controller
is not supported yet. As a result, all 12x LEDs on the front side
cannot be controlled by users.
Flash instruction using initramfs-factory.bin image (StockFW WebUI):
1. Boot WF1200HP with router mode
2. Access to the WebUI ("http://aterm.me/" or "http://192.168.10.1/") on
the device and open firmware update page ("ファームウェア更新")
3. Select the OpenWrt initramfs-factory.bin image and click update
("更新") button
4. After updating, the device will be rebooted and booted with OpenWrt
initramfs image
5. On the initramfs image, upload (or download) uboot.bin and
sysupgrade.bin image to the device
6. Replace the bootloader with uboot.bin image
mtd write <uboot.bin image> bootloader
7. Perform sysupgrade with sysupgrade.bin image
sysupgrade <sysuppgrade image>
8. Wait ~120 seconds to complete flashing and rebooting
Flash instruction using initramfs-factory.bin image (bootloader CLI):
1. Connect and open serial console
2. Power on WF1200HP and interrupt bootloader by ESC key
3. Login to the bootloader CLI with the password "chiron"
4. Start TFTP server by "tftpd" command
5. Upload initramfs-factory.bin via tftp from your computer
example (Windows): tftp -i 192.168.0.1 PUT initramfs-factory.bin
6. Boot initramfs image by "boot" command
7. On the initramfs image, backup the stock bootloader and firmware if
needed
8. Upload (or download) uboot.bin and sysupgrade.bin image to the
device
9. Replace the bootloader with uboot.bin image (see above)
10. Perform sysupgrade with sysupgrade.bin image (see above)
11. Wait ~120 seconds to complete flashing and rebooting
Notes:
- The stock bootloader requires the unknown filesystem on firmware area
in the flash chip. Booting OpenWrt from that filesystem cannot be
handled, so the bootloader needs to be replaced to mainline U-Boot
before OpenWrt installation.
Known issues:
- All LEDs on the front side are connected to the GPIO controller on the
ath10k chip (QCA9882) and controlled by it. The current ath10k driver
supports only one LED as "ath10k-phyN", but using as a GPIO controller
is not supported yet. As a result, all 12x LEDs on the front side
cannot be controlled by users.
INAGAKI Hiroshi [Thu, 30 Oct 2025 11:25:19 +0000 (20:25 +0900)]
uboot-ath79: add FE profile for NEC Aterm series (AR9344)
Add ar9344_nec_aterm_fe profile for NEC Aterm WF1200HP and WF1200HP2
based on Atheros AR9344, but using internal FE switch instead of
external GbE switch.
Rosen Penev [Sun, 25 May 2025 21:20:28 +0000 (14:20 -0700)]
ath79: ar9344: use led-sources for ath9k
The ath9k driver creates an ath9k LED by default. Instead of having a
non functional LED, configure it properly and remove the extra as it's
not needed.
Til Kaiser [Mon, 24 Nov 2025 14:50:33 +0000 (15:50 +0100)]
ramips: mt76x8: add Teltonika RUT976 support
This commit adds support for the Teltonika RUT976, part
of the RUTE series, which is very similar to the RUT956.
The RUT976 now has a 5G modem and the flash size has doubled.
Specification:
- MediaTek MT7628AN SoC
- 128 MB RAM
- 32MB Flash
- 4x 10/100 Mbps Ethernet, with passive PoE support on LAN1
- MediaTek MT7628AN 2.4 GHz 802.11n WiFi
- Quectel RG255C 5G modem
- GNSS
- RS232, DB9 connector, Cypress ACM via USB, /dev/ttyACM0
- RS485 /dev/ttyS1
- microSD card slot
- 2.0 USB Type-A HOST port
- analog 0-24V input (MCP3221)
- Relay
- 2x Digital input
- 2x Digital output
- 2x SIM slot (can be swapped via GPIO)
- eSIM (depends on hardware configuration, can be swapped via GPIO)
Flashing via OEM WebUI:
1. Download the firmware image *-squashfs-factory.bin
2. Upload firmware image via OEM WebUI firmware update, do not keep settings
To revert back to OEM firmware:
https://wiki.teltonika-networks.com/view/Bootloader_menu
Mobile data connection:
Create proto qmi interface.
Til Kaiser [Tue, 25 Nov 2025 10:43:22 +0000 (11:43 +0100)]
uqmi: skip registration state check if not supported
The Quectel RG255C modem used in the Teltonika RUT976 does not support
the 'Get Serving System' QMI command, returning "Invalid QMI command".
Without this change, the script would fail even though the connection
could be established successfully.
This patch skips the registration state check if the command is not
supported and relies on subsequent checks instead.
Til Kaiser [Mon, 24 Nov 2025 14:49:09 +0000 (15:49 +0100)]
ramips: split Teltonika RUT9M SPI-NOR layout into separate dtsi
Introduce mt7628an_teltonika_rut9m.dtsi to hold the SPI-NOR flash
definition and partition layout specific to the RUT9M series.
This refactor prepares for supporting the Tetonika RUT976
(part of the RUTE series), which shares most hardware with
RUT9M devices but has a different flash layout.
Update RUT9x1 and RUT9x6 DTS files to include the new dtsi.
Existing RUT9M devices remain unchanged.
Installation (UART):
- Place OpenWrt initramfs-kernel image on tftp server with IP 192.168.1.2
- Attach UART, switch on the router and interrupt the boot process by
pressing 'Ctrl-C'.
- Set the uboot environment for startup.
setenv tp_boot_idx 0; saveenv
If the bootarg is set to boot from ubi1, also change it to ubi0.
- Load and run OpenWrt initramfs image.
setenv serverip 192.168.1.2; setenv ipaddr 192.168.1.1; tftpboot initramfs-kernel.bin; bootm
- Browse IP 192.168.1.1, upload the 'sysupgrade' image and do upgrade.
Recovery:
- Press Reset button and power on the router.
- Navigate to U-Boot recovery web server (http://192.168.1.1/) and
upload the OEM firmware.
Schneider Azima [Fri, 28 Nov 2025 10:34:02 +0000 (05:34 -0500)]
mediatek: build rtl8367s_gsw as a kernel module
The RTL8367S_GSW config for filogic target is not set by default.
This switch model can be recognized by multiple drivers. Configure it as an optional module instead of default set in config.
Hauke Mehrtens [Sat, 29 Nov 2025 18:05:42 +0000 (19:05 +0100)]
toolchain: glibc: Update glibc 2.41 to recent HEAD
373408c19f stdlib: resolve a double lock init issue after fork [BZ #32994] 62928cf7d8 elf: Do not add a copy of _dl_find_object to libc.so f48de98bce elf: Extract rtld_setup_phdr function from dl_main 513629b14d elf: Handle ld.so with LOAD segment gaps in _dl_find_object (bug 31943) 1502c248d5 nptl: Fix SYSCALL_CANCEL for return values larger than INT_MAX (BZ 33245) daa4de5253 AArch64: Avoid memset ifunc in cpu-features.c [BZ #33112] 0bb6dad5af AArch64: Optimize algorithm in users of SVE expf helper 2a0b52fdd6 AArch64: Optimize inverse trig functions 307a8a4434 AArch64: Improve codegen in SVE log1p 503f7a7d33 AArch64: Optimize SVE exp functions 6db0f659c8 AArch64: Optimise SVE FP64 Hyperbolics c467918138 AArch64: Improve codegen SVE log1p helper 330cd035df Remove <libc-tsd.h> f409ec073f Use proper extern declaration for _nl_C_LC_CTYPE_{class,toupper,tolower} 5d8614b284 ctype: Fallback initialization of TLS using relocations (bug 19341, bug 32483) 940d821afb Use TLS initial-exec model for __libc_tsd_CTYPE_* thread variables [BZ #33234] 4a3e5f1e4c elf: Introduce separate _r_debug_array variable 9d6577fdff elf: Introduce _dl_debug_change_state b05ce0de3d elf: Restore support for _r_debug interpositions and copy relocations 85780b6055 elf: Compile _dl_debug_state separately (bug 33224) dd87fcda43 x86-64: Add GLIBC_ABI_GNU2_TLS version [BZ #33129] e2d9e9eb26 x86-64: Add GLIBC_ABI_DT_X86_64_PLT [BZ #33212] 3f3b4fdd0b elf: Fix handling of symbol versions which hash to zero (bug 29190) 42f9c70ac2 elf: Test dlopen (NULL, RTLD_LAZY) from an ELF constructor aa5dbd5332 elf: Preserve _rtld_global layout for the release branch c1bec0b52d i386: Update ___tls_get_addr to preserve vector registers 7aa907241c i386: Also add GLIBC_ABI_GNU2_TLS version [BZ #33129] ed4672abb5 i386: Add GLIBC_ABI_GNU_TLS version [BZ #33221] a52c9b75c7 Optimize __libc_tsd_* thread variable access 9867e44cdc AArch64: Fix SVE powf routine [BZ #33299] cf926cd7fb nss: Group merge does not react to ERANGE during merge (bug 33361) 4b1f8c90f9 x86: Detect Intel Wildcat Lake Processor 7c0632472d x86: Detect Intel Nova Lake Processor 580746904b x86: fix wmemset ifunc stray '!' (bug 33542) 1f57ffdf35 aarch64: Disable ZA state of SME in setjmp and sigsetjmp 97076e0cf1 aarch64: update tests for SME 1a0ee26714 aarch64: define macro for calling __libc_arm_za_disable 889ae4bdbb aarch64: clear ZA state of SME before clone and clone3 syscalls e4ffcf32b9 aarch64: tests for SME 5bf8ee7ad5 aarch64: fix cfi directives around __libc_arm_za_disable 75b6b263e9 aarch64: Do not link conform tests with -Wl,-z,force-bti (bug 33601) 215e9155ea aarch64: fix includes in SME tests 360f60fb63 AArch64: Optimise SVE scalar callbacks ca489fc802 AArch64: Fix instability in AdvSIMD tan 442cc3901b AArch64: Fix instability in AdvSIMD sinh 1e16b570bb AArch64: fix SVE tanpi(f) [BZ #33642] 5c6445672a AArch64: Fix and improve SVE pow(f) special cases 040256e79b ppc64le: Restore optimized strcmp for power10 f8cdc03e1e ppc64le: Restore optimized strncmp for power10 6a0b8e3665 ppc64le: Power 10 rawmemchr clobbers v20 (bug #33091)
Rosen Penev [Sun, 25 May 2025 21:07:00 +0000 (14:07 -0700)]
ath79: mr600-v1: use led-sources for ath9k
The ath9k driver creates an ath9k LED by default. Instead of having a non
functional LED, configure it properly and remove the extra as it's not
needed.
Vincent Li [Fri, 28 Nov 2025 17:56:04 +0000 (09:56 -0800)]
loongarch64: add Loongson PCI DWMAC as built-in
Add the CONFIG_DWMAC_LOONGSON driver to the loongarch64 kernel
configuration as a built-in module.
This driver is required for the integrated Ethernet controller found on
modern Loongson devices such as the 3A6000 NUC and 2K3000. Including it
by default ensures these popular devices have network functionality
out-of-the-box.
Configuration changes were made via `make kernel_menuconfig` for the
loongarch64 target.
Ref: https://github.com/openwrt/openwrt/issues/20945 Signed-off-by: Vincent Li <vincent.mc.li@gmail.com> Link: https://github.com/openwrt/openwrt/pull/20975 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
1. Download or make the OpenWrt initramfs.trx image
2. Connect the PC via LAN to one of the yellow router ports and wait until your PC to get a DHCP lease.
3. Browse to http://192.168.50.1/
4. If your router is brand new, finish the setup process and log into the Web-UI.
5. Navigate to Administration -> Firmware Upgrade and upload the downloaded OpenWrt image.
6. Wait for OpenWrt to boot. Transfer the sysupgrade image to the device using SCP and install using sysupgrade.
$ sysupgrade -n <path-to-sysupgrade.bin>
TFTP Method:
1. Download the OpenWrt initramfs image.
Copy the image to a TFTP server reachable at 192.168.1.70/24.
Rename the image to tufax4200q.bin.
2. Connect the PC with TFTP server to the TUF-AX4200Q.
Set a static ip on the ethernet interface of your PC.
(IP address: 192.168.1.70, subnet mask: 255.255.255.0)
Connect to the serial console,
interrupt the autoboot process by pressing '4' when prompted.
Update the ipq9574 PCS driver the version provided by Qualcomm via
github. The updated driver simplifies link up handling by removing
unnecessary clock rate changes.
According to Qualcomm developers, the pcs nodes on IPQ9574 will be
labeled "pcs<n>" and "pcs<n>_ch<m>". The proposed IPQ5424 changes
include the simpler labels. Rename the IPQ95xx nodes for consistency.
qualcommbe: use ipq_pcs_get/put() in PPE (MAC) driver
ipq_unipcs_create/destroy() are provided by an older version of the
IPQ9574 PCS driver. Use the renamed versions ipq_pcs_get/put() to
allow updating the PCS driver.
Coia Prant [Wed, 1 Oct 2025 10:04:26 +0000 (18:04 +0800)]
ramips: add support for Hongdian H8850 v20
This is an industrial 4G router equipped with OpenWrt SNAPSHOT OEM
customized version
WARNING: The original firmware device tree is modified from evb
boards, and the device tree name is evb board. This submitted device
tree is a modified version, which deletes the non-this-device parts
and adds GPIO watchdog.
Issue:
- Factory partition not store mac address on original firmware
Flash instruction:
Using TTL:
1. Connect the board to the computer via TTL.
2. Enter original firmware failsafe mode.
3. Use wget download firmware to board /tmp
4. Use command "mtd -r write openwrt-ramips-mt76x8-hongdian_h8850-v20-squashfs-sysupgrade.bin firmware"
to flash
Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-hongdian-h8850-v20-and-flash.html
Shiji Yang [Sat, 29 Nov 2025 17:02:12 +0000 (18:02 +0100)]
ipq40xx: convert CRLF line-ending to LF for Linksys MR6350
Use Unix LF style instead of Windows CRLF style.
Fixes: 00bb18b851df ("ipq40xx: Add support for Linksys MR6350") Signed-off-by: Shiji Yang <yangshiji66@outlook.com> Link: https://github.com/openwrt/openwrt/pull/20973 Signed-off-by: Robert Marko <robimarko@gmail.com>
Shiji Yang [Sat, 29 Nov 2025 09:06:28 +0000 (17:06 +0800)]
gitattributes: automatically convert dts file CRLF line endings to LF
It seems that some developers prefer to use the Windows OS to add new
device support. Add new attributes for device tree files so that the
CRLF line endings can be automatically normalized to LF.
Rosen Penev [Sun, 25 May 2025 21:17:22 +0000 (14:17 -0700)]
ath79: tplink_tl-wdrxxxx: use led-sources for ath9k
The ath9k driver creates an ath9k LED by default. Instead of having a
non functional LED, configure it properly and remove the extra as it's
not needed.
George Moussalem [Thu, 23 Oct 2025 11:16:21 +0000 (15:16 +0400)]
qualcommax: ipq50xx: split firmware variants and refactor QCN6122 support
IPQ5018 based boards come in multiple wireless architectures.
The SOC itself provides 2.4G wifi while 5G wifi is added by either an
IPQ5018-specific QCN6122 (2x2) solution or by the more generally
available PCIe-based QCN9074 (4x4) wifi chip.
On IPQ5018/QCN6122-based boards, both QCN6122 and IPQ5018 wifi is
initialized by IPQ5018 firmware which comes in different versions:
- IPQ5018: firmware files to initialize WCSS and the internal wifi chip
- IPQ5018/QCN6122: above + additional firmware segments to initialize
the QCN6122 chip incl. (de-)assertion of resets and clocks enablement
OpenWrt currently packages the combined IPQ5018/QCN6122 firmware for
both architectures. As such, let's switch to using IPQ5018-only firmware
for boards not packed with QCN6122 chip(s) and keep using the shared
firmware for devices that do have QCN6122(s) chips.
This helps us move to using upstreamed IPQ5018 firmware while using the
legacy repo for IPQ5018/QCN6122 firmware and rule out any initialization
conflicts/issues caused by loading QCN6122 on IPQ5018-only boards.
While at it, default to the secure WCSS remoteproc driver sent upstream
for review, move QCN6122 wifi nodes to a separate dtsi, override the Q6
node to load the multi-PD-based architecture remoteproc driver for
needed only by IPQ5018/QCN6122 designs, reference said dtsi in
boards packed with QCN6122 wifi chip(s), and add provision for migrating
the radio path as the wifi nodes now adhere to linux device tree naming
conventions.
Rani Hod [Thu, 27 Nov 2025 23:43:13 +0000 (01:43 +0200)]
siflower: sf21 device tree fix
`i2c1` node was missing `resets`, so even when enabled, the driver would
not recognize it:
```
i2c_designware c101000.i2c: Unknown Synopsys component type: 0x00000000
```
With this fix, I2C pins on BPi-RV2 26-pin GPIO header are usable.
Raylynn Knight [Tue, 25 Nov 2025 23:39:18 +0000 (18:39 -0500)]
mpc85xx: HPE MSM460 add HPE MSM466 alias
Define MSM466 as alternative name, to explicitly show the device is
supported using existing image (MSM460). The only difference between
the MSM460 and MSM466 is that the MSM466 has external antenna.
Move .quilt_used from kernel-defaults.mk to quilt.mk.
This is done to be consistent with the parallel Build/Patch/Default and
Host/Patch/Default and permit better Quilt handling on any package that
might use Kernel/Patch/Default.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Anari Jalakas [Thu, 27 Nov 2025 13:22:03 +0000 (15:22 +0200)]
config: add !USE_APK dependency to CLEAN_IPKG
When USE_APK is enabled, APK replaces opkg/ipkg, leading to a build
failure when CLEAN_IPKG is also selected. Add 'depends on !USE_APK' to
CLEAN_IPKG to ensure this option is only selectable when opkg/ipkg is
the active package manager.
Move .quilt_used from kernel-defaults.mk to quilt.mk.
This is done to be consistent with the parallel Build/Patch/Default and
Host/Patch/Default and permit better Quilt handling on any package that
might use Kernel/Patch/Default.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
libtraceevent: switch to meson and add missing dep for libtraceevent-extra
Switch to Meson build system and add missing dependency for
libtraceevent-extra.
This switch indirectly fix a compilation error on 32bit target that
weren't getting correct target CFlags. Using Meson fix honour our CFlags
and fix the compilation error.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Shiji Yang [Thu, 27 Nov 2025 09:39:05 +0000 (17:39 +0800)]
generic: add missing symbol ARM64_CONTPTE
Add the missing symbol to fix build halt on aarch64 targets:
```
Contiguous PTE mappings for user memory (ARM64_CONTPTE) [Y/n/?] (NEW) make[7]: *** [scripts/kconfig/Makefile:85: syncconfig] Error 1
make[6]: *** [Makefile:686: syncconfig] Error 2
```