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
```
Shiji Yang [Wed, 26 Nov 2025 16:04:35 +0000 (00:04 +0800)]
treewide: dts: remove {#address,#size}-cells from "spi-nand" compatible node
The child node "partitions" doesn't have "reg" property. Hence, we
don't need to use "#address-cells" and "#size-cells" to describe the
reg property information.
Shiji Yang [Wed, 26 Nov 2025 15:49:55 +0000 (23:49 +0800)]
treewide: dts: remove {#address,#size}-cells from "jedec,spi-nor" compatible node
The child node "partitions" doesn't have "reg" property. Hence, we
don't need to use "#address-cells" and "#size-cells" to describe the
reg property information.
Goetz Goerisch [Mon, 24 Nov 2025 07:56:28 +0000 (08:56 +0100)]
odhcpd: update to Git HEAD (2025-11-23)
8a8bb3c1a673 src: consolidate and improve fallthrough 8ffe79e3f086 src: improve attributes 0a4d4e11c91c odhcpd: simplify signal handling 6af938921628 odhcpd: make ubus optional at runtime 7313ba262b76 odhcpd: update devel-build.sh 038a7bbfc30d dhcpv4: simplify random address selection 8c574bd2fe62 dhcpv6: prevent network loop scenario 76b2d00ee5f0 router: Modify relayed RA PIO L and RA M/O flags according to interface policy d236b2e0c53e github: ci: add MIPS64, PowerPC64 and RISCV64 d1500bb5d64d all: implement RFC8910 captive portal (CP) option 9830e5e2bf37 all: implement RFC8910 captive portal (CP) option for DHCPv4 9b9ea96ca90e statefiles: fix off-by-one-bug c10784ece29c dhcpv4: replace ToS precedence 24f013500691 dhcvp4: use tmp fd in dhcpv4_setup_interface() 3c32b27d8bab dhcpv4: simplify error handling in dhcpv4_setup_interface() 5b7cfef774fb dhcpv4: define val where it is used in dhcpv4_setup_interface() b0739f23c310 dhcpv4: add BPF to dhcpv4_setup_interface() 650a5df88eba ndp: correctness fix for BPF filter
tools: mtd-utils: fix patch 110 for musl
This patch is introducing the same header that the other patch
001-ubifs-utils-link-libmissing.a-in-case-execinfo.h-isn.patch
is guarding against missing in musl libc. We need to
mimic that.
1. Power on FWF-30E and interrupt to show bootmenu
2. Call "[I]: System information." -> "[S]: Set serial port baudrate."
and set baudrate to 9600 bps
3. Call "[R]: Review TFTP parameters.", check TFTP parameters and
connect computer to "Image download port" in the parameters
4. Prepare TFTP server with the parameters obtained above
5. Rename OpenWrt initramfs image to "image.out" and put to TFTP
directory
6. Call "[T]: Initiate TFTP firmware transfer." to download initramfs
image from TFTP server
7. Type "r" key when the following message is showed, to boot initramfs
image without flashing to spi-nor flash
"Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?"
8. On initramfs image, backup mtd if needed
minimum:
- "firmware-info"
- "kernel"
- "rootfs"
9. On initramfs image, upload sysupgrade image to the device and perform
sysupgrade
10. Wait ~200 seconds to complete flashing and rebooting.
If the device is booted with stock firmware, login to bootmenu and
call "[B]: Boot with backup firmware and set as default." to set the
first OS image as default and boot it.
Notes:
- Both colors of Bi-color LEDs on the front panel cannot be turned on at
the same time.
- "PWR" and "Logo" LEDs are connected to power source directly.
- The following partitions are added for OpenWrt.
These partitions are contained in "uboot" partition (0x0-0x1fffff) on
stock firmware.
(eth0): 70:4C:A5:xx:xx:42 (board-info, 0xd880 (hex))
WAN : 70:4C:A5:xx:xx:43
LAN 1 : 70:4C:A5:xx:xx:44
LAN 2 : 70:4C:A5:xx:xx:45
LAN 3 : 70:4C:A5:xx:xx:46
LAN 4 : 70:4C:A5:xx:xx:47
Andreas Gnau [Wed, 8 Oct 2025 21:00:44 +0000 (23:00 +0200)]
base-files: board_detect: make resilient against power-cuts
If board_detect is interrupted by cutting power on first boot,
board.json might only be half-way written and the file will not be
written again correctly on subsequent boots.
Write to a temporary file first, then rename. Since a rename on the same
file system is an atomic operation, it ensures that either
/etc/board.json does not exist or that the complete file exists.
* SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well
defined.
* SC2086 (info): Double quote to prevent globbing and word splitting.
* SC2091 (warning): Remove surrounding $() to avoid executing output
(or use eval if intentional).
kirkwood: add aliases and new partition for support D-Link DNS-325 A1
- Added fan0 alias
- Implemented LED aliases and thermal zones
- Restructured partitions: u-boot, u-boot-env, ubi
Signed-off-by: Konstantin Meshkov <skyline@mail.ru>
[ improve commit title ] Link: https://github.com/openwrt/openwrt/pull/17924 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
The D-Link DNS-325 A1 is NAS with 2x HDD (3.5 inch) bays, 1x 10/100/1000Base-T port and 1x USB 2.0 port
Device specification:
SoC: Marvell 88F6281-A1 1.2 GHz
RAM: 256 MB (2xSEC K4T1G084QF-HCF7:128Mx8 @400 CL6)
Flash: 128 MB (SAMSUNG 946 K9F1G08U0B PCB0)
SATA: 2x internal SATA II drives
Ethernet: 1x Gigabit (Marvell 88E1116R-NNC1)
LED: 7x (white: Power, white/red: Right SATA Activity, USB Activity, Left SATA Activity)
Key: 3x (Power, Reset, USB Copy/Unmount)
Serial: 5 pin header (RXD,GAP,3.3V,GND,TXD), (115200,8,N,1), 3.3V TTL
USB ports: 1x USB 2.0
Flash instruction:
NOTE: this process uses a serial connection. It will upgrade the bootloader and reset the bootloader environment variables
USB flash stick setup
Format to FAT32 without mbr
Copy these files to USB flash stick: dlink_dns-325-a1-initramfs-uImage dlink_dns-325-a1-squashfs-factory.bin dlink_dns-325-a1-squashfs-sysupgrade.bin u-boot.kwb (from u-boot-dns325 directory)
NAS setup
Connect LAN cable between router and NAS device
Connetc USB flash stick to NAS device
Connect serial to NAS device
Boot from new u-boot and install it
$ kwboot -p -b u-boot.kwb -B115200 -t /dev/ttyUSB0
Power on NAS
After download copleted and booted NAS device with new u-boot stop in bootloader by pressing any key
=> usb start
=> fatload usb 0 0x1000000 /u-boot.kwb
=> nand erase.part u-boot
=> nand write 0x1000000 u-boot ${filesize}
=> reset
Update MAC address in u-boot env
Stop in bootloader by pressing any key
Get your MAC address from label on chassis
=> setenv ethaddr XX:XX:XX:XX:XX:XX
=> saveenv
Install OpenWrt by flashing factory image from u-boot
=> usb start
=> fatload usb 0 0x1000000 /dlink_dns-325-a1-squashfs-factory.bin
=> nand erase.part ubi
=> nand write 0x1000000 ubi ${filesize}
=> reset
Based-on: #9296 Signed-off-by: Konstantin Meshkov <skyline@mail.ru>
[ refresh uboot patches ] Link: https://github.com/openwrt/openwrt/pull/17924 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Rany Hany [Sat, 8 Nov 2025 16:14:22 +0000 (16:14 +0000)]
wifi-scripts: ucode: fix bug moving to empty wifi-station config
When transitioning from a config with one or more wifi-stations, to a configuration
that has no wifi-station; the file would not be empty/reset and the old wifi-station
entries would remain.
This is because iface_wpa_stations and iface_sae_stations return early if there
are no wifi-stations present, which is an incorrect behavior as it causes the
file to actually have old entries.
'sae_password_file' and 'wpa_psk_file' are also set by default inside
of iface_auth_type to same path as the one used by wifi-station, so it
is indeed going to be set in the config and would contain the old
entries.
This happens with reload and wifi restart. So the only solution
would be to manually remove the file.
Rany Hany [Sun, 16 Nov 2025 14:37:49 +0000 (14:37 +0000)]
wifi-scripts: iface should be optional in wifi-station definition
Similar to "wifi-scripts: iface should be optional in wifi-vlan definition"
(98435a3), wifi-station iface should also be optional. By default, it is
supposed to match all interfaces if omitted.
Fixes: https://github.com/openwrt/openwrt/issues/20705 Signed-off-by: Rany Hany <rany_hany@riseup.net> Link: https://github.com/openwrt/openwrt/pull/20694 Signed-off-by: Robert Marko <robimarko@gmail.com>
Rany Hany [Mon, 24 Nov 2025 15:00:57 +0000 (15:00 +0000)]
wifi-scripts: ucode: fix wifi-vlan "network" option not working
The call to netifd.set_vlan(...) had an incorrect argument
order. It should be (interface, ifname, vlan) not
(interface, vlan, ifname). This prevented wifi-vlan's
"network" option from working as netifd was not able
to find the wifi-vlan section.
Fixes: https://github.com/openwrt/openwrt/issues/20705 Fixes: https://github.com/openwrt/openwrt/issues/20911 Signed-off-by: Rany Hany <rany_hany@riseup.net> Link: https://github.com/openwrt/openwrt/pull/20918 Signed-off-by: Robert Marko <robimarko@gmail.com>
This device has one USB2.0 port, plus ethernet, 2x wifi, ethernet, xPON
and VoIP.
Installation instructions: (Assuming root shell via SSH or serial)
1. Place OpenWrt TRX file on a USB stick formatted VFAT
2. Plug in the stick to the modem
3. Type: mtd write -f -e tclinux /mnt/usb2_sda1/<name of file>.trx tclinux
At this point, both OpenWrt and the vendor OS will be installed
because the device has space for two operating systems. Switch the OS
to boot to OpenWrt:
WARNING: While you can install with SSH alone, you need serial to use
OpenWrt on EcoNet devices because the Ethernet driver has not yet been
developed.
Rany Hany [Sun, 23 Nov 2025 23:21:29 +0000 (23:21 +0000)]
wifi-scripts: ucode: add missing config.auth_type assignment for psk2
This ends up breaking wifi-station and wifi-vlan as it depends on
config.auth_type being either psk or psk-sae. When set to psk2,
this would be unset causing that feature to not work.
See discussion in https://github.com/openwrt/openwrt/issues/20705#issuecomment-3568446006