Donghyun Ko [Tue, 22 Jul 2025 17:20:27 +0000 (02:20 +0900)]
mediatek: add factory image for ipTIME AX3000SM
Adds the capability to flash the factory image using the OEM recovery
software, ipTIME Firmware Wizard(11ac).
Installation
------------
1. Download the OEM recovery software from the manufacturer's website
2. Download the *squashfs-factory.bin file from the OpenWrt website
3. Press a reset button, and power up the router(keep pressing the reset button)
4. Wait more than 10 seconds until the CPU LED stop blinking
5. Connect the router(LAN port) to the PC
6. Run the OEM recovery software and follow the instructions
7. Select the *squashfs-factory.bin file during the router recovery process
8. Wait for the router to boot from *squashfs-factory.bin
update patch to upstream function change
bcm53x/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
changed function xhci_disable_and_free_slot() upstream [3]
lantiq/patches-6.6/0152-lantiq-VPE.patch [9]
rockchip: fix eMMC corruption on NanoPC-T6 with A3A444 chips
Some NanoPC-T6 boards with A3A444 eMMC chips experience I/O errors and
corruption when using HS400 mode. Downgrade to HS200 mode to ensure
stable operation.
Hauke Mehrtens [Sun, 31 Aug 2025 23:52:47 +0000 (01:52 +0200)]
rpcd: update to git openwrt-24.10 branch HEAD
8b320f9 ucode: adjust for new ext resource type e61d2be sys: use strstr() to detect installed packages bba9519 rpc-sys: packagelist: don't truncate input lines on read
tools: firmware-utils: update to Git HEAD (2025-07-24)
075cdc0 iptime-crc32: add support for ipTIME AX3000Q 48ababa iptime-crc32: add support for ipTIME AX3000SM f29de74 iptime-crc32: Add device support for ipTIME AX6000M
realtek: avoid interrupt storm on mass packet receive
RTL83xx devices have two types of receive interrupts for each of its
8 rings. One for packet received and another for ring overflow. When
the switch is flooded with incoming packets the receive handler will
disable the packet receive notification but still keeps the overflow
notification enabled. While the receive path "slowly" processes the
received packets each new packet triggers the overflow IRQ again. The
device becomes unresponsive and eventually produces messages like:
[18441.709764] rcu: Stack dump where RCU GP kthread last ran:
[18441.727892] Sending NMI from CPU 1 to CPUs 0:
[18441.742300] NMI backtrace for cpu 0 skipped: idling at 0x8080e994
[18415.251700] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[18415.271350] rcu: 0-...!: (0 ticks this GP) idle=d740/0/0x0 ...
[18415.303046] rcu: (detected by 1, t=6004 jiffies, g=230925, ...
[18415.326095] Sending NMI from CPU 1 to CPUs 0:
[18415.340540] NMI backtrace for cpu 0
Fix this issue by always disabling receive and overflow interrupts at
the same time.
Test with hping3 --udp -p 5021 -d 1400 --flood 192.168.2.72
Before (3sec run):
[183260.324846] rtl838x-eth 1b00a300.ethernet eth0: RX buffer overrun: status 0x101, mask: 0x7ffeff
[183260.340524] rtl838x-eth 1b00a300.ethernet eth0: RX buffer overrun: status 0x1, mask: 0x7ffeff
[183260.345799] net_ratelimit: 489997 callbacks suppressed
After (3 sec run):
[ 373.981479] rtl838x-eth 1b00a300.ethernet eth0: rx ring overrun: status 0x101, mask: 0x7fffff
[ 374.031118] rtl838x-eth 1b00a300.ethernet eth0: rx ring overrun: status 0x101, mask: 0x7fffff
[ 377.919996] net_ratelimit: 34 callbacks suppressed
Daniel Golle [Tue, 10 Jun 2025 16:51:14 +0000 (18:51 +0200)]
ipq-wifi: add BDF for IgniteNet SS-W2-AC2600
The IgniteNet SunSpot AC Wave2 comes with 2x QCA9994 ath10k chips
connected to the IPQ8068 SoC via PCIe.
Add board-2.bin for both radios on this board.
3ac4a64 qca9984: add BDFs for IgniteNet SS-W2-AC2600
Mathew McBride [Thu, 16 Jan 2025 01:27:58 +0000 (12:27 +1100)]
armsr: remove 'console=tty1' from kernel command line
We have modified the kernel to setup all "default" consoles,
including serial ports and framebuffers/screens, providing
no console= argument is supplied on the kernel command line.
Adding 'console=tty1' caused the 'default' serial port on
device tree systems to break, as the kernel would not carry
over the settings (like baud rate) from the bootloader.
The system administrator can still force the use of a
specific console by adding their own console= arguments.
Mathew McBride [Thu, 16 Jan 2025 01:20:56 +0000 (12:20 +1100)]
armsr: add patch (hack) to enable all "default" consoles
A previous change added 'console=tty1' to the default kernel command
line on armsr, in order to ensure the framebuffer console is enabled
on systems capable of graphics output.
Unfortunately, this change broke boards that used device tree
(DT) firmware with serial consoles, as the serial console
specified by the system firmware (stdout-path) was no longer
setup by the kernel.
A bit of probing determined that the SPCR (serial port console
direction table) on ACPI systems was preventing Linux from setting
up a default framebuffer console on these systems (which is why
console=tty1 was added).
(The affected ACPI systems are usually VMs using QEMU's
'virt' machine and EDK2 firmware. The firmware on these systems
does not remove the SPCR when a screen is present)
So to ensure all possible systems are setup correctly, we modify
the kernel so all "default" console types (serial and screen)
are setup when no console= arguments are specified on the kernel
command line.
Felix Fietkau [Sun, 24 Aug 2025 05:18:43 +0000 (07:18 +0200)]
udebug: update to Git HEAD (2025-08-24)
6e4ffe2c6657 ucode: add function for getting the number of entries in a snapshot a62edd89255b ucode: add support for fetching kernel tracepoint events edeb4d6dc690 udebug-cli: add support for streaming tracing data
Hauke Mehrtens [Thu, 21 Aug 2025 20:07:06 +0000 (22:07 +0200)]
kernel: Remove patch for fixed bug
The problem was fixed in upstream kernel in a different way and the
change was backported to kernel 6.6 in the following change:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=48e8791843206baf76827df1b6ee3cb88a2a17d8
The removed patch changes the endianness again and breaks the
functionality, use only the upstream code and remove our unneeded patch.
The 823-v6.12-0003-nvmem-layouts-add-U-Boot-env-layout.patch patch was
adapted in the kernel bump too. It moves the code with the fix now.
Stefan Dösinger [Sat, 9 Aug 2025 14:29:38 +0000 (17:29 +0300)]
ramips: fix TP-Link mr600 radio partition offset
This makes 5ghz WiFi work out of the box on these devices, eliminating
the need to flash a magic blob to the radio partition.
This was found by user BulldozerBSG on the OpenWRT Forums:
https://forum.openwrt.org/t/tp-link-archer-mr600-exploration/65489/20
All credit belongs to them. I can confirm the correctness of the
findings. At least one other user (Iggy87100) confirmed them too.
The vendor DTS defined incorrect GPIOs for the LEDs, which caused them
to not function properly. Initially, the WAN, WLAN LEDs appeared to
work, but further testing showed that they were non-functional.
This patch corrects the GPIO assignments in the DTS, restoring full LED
functionality including blinking, except the power LED which cannot be
software controlled.
Daniel Golle [Thu, 31 Jul 2025 18:48:32 +0000 (19:48 +0100)]
kernel: add backport to fix broken PHY LEDs
A commit which broke netdev trigger LEDs offloaded to PHYs recently made
it all the way down to the Linux 6.6 stable branch. The revert has been
accepted to linux-next, however, a backport to the various -stable trees
is still pending.
Import the backported revert commit to fix in OpenWrt in the meantime
until the revert also gets picked to linux-stable.
This enables software that requires this cipher suite (e.g. OpenThread Border
Router) to be compiled against the shared library rather than a separate copy.
[ Alexander Kanavin ]
* update-ca-certificates: add a --sysroot option
[ Julien Cristau ]
* Update Mozilla certificate authority bundle to version 2.74.
The following certificate authorities were added (+):
+ D-TRUST BR Root CA 2 2023
+ D-TRUST EV Root CA 2 2023
The following certificate authorities were removed (-):
- Entrust Root Certification Authority - G4
- SecureSign RootCA11
- Security Communication RootCA3
- SwissSign Silver CA - G2
Note inspiration for this script to give credit where it's due
There is some confusion in the Git log of this file. Specifically,
the commit message on 7b7f1702 incorrectly indicates that there was
"potential fear" about copyright infringement.
Upon review of this situation, there is, in my opinion, no concern of
copyright infringement here. This is not legal advice; it is my
opinion based of years of work on copyright policy for FOSS.
However, Elliott Mitchell's idea was obviously helpful as inspiration
in writing this script and deserves credit. Ideas alone, however,
are not to my knowledge copyrightable anywhere in the world.
Jan Hoffmann [Fri, 11 Jul 2025 18:31:29 +0000 (20:31 +0200)]
ltq-adsl-mei: check status register before reading mailbox messages
The interrupt handler reads from the mailbox if no other reason for the
interrupt is known. If a spurious interrupt is received just after a
mailbox message has been sent, this means that the response to the
previous message is read again and returned by DSL_BSP_SendCMV instead
of the actual response.
To fix this, check the status register before reading from the mailbox
in the interrupt handler.
Tested on Fritzbox 7320. Without this change, there is occasionally a
kernel panic due to an out-of-bounds memory access in the ltq-adsl
driver (in DSL_DRV_DEV_G997_SnrAllocationNscGet), as a result of an
incorrect value returned by DSL_DRV_DANUBE_CmvRead. This is reproducible
by calling "dsl_cpe_pipe.sh g997dsnrg 1 1" multiple times.
Shiji Yang [Mon, 11 Aug 2025 10:52:30 +0000 (18:52 +0800)]
ipq40xx: dts: reduce the maximum SPI clock frequency to 24MHz
The IPQ4019 datasheet indicates that the maximum supported SPI
frequency is 25 MHz. My experiment on SKSpruce WIA3300-20 shows
that exceeding this threshold can lead to instability of SPI
peripheral. Limit the SPI clock frequency to the QSDK recommended
value 24MHz to enhance stability.
PR of openwrt:main: https://github.com/openwrt/openwrt/pull/19512
OpenFi 6C is a portable Wi-Fi 6 travel router based on MediaTek MT7981B+MT7976CN.
Two slightly different versions have been sold. The V1 board has a green color and lacks the modem LED. The V2 board is black and has a LED for the modem.
Specifications:
- SoC: MediaTek MT7981B (Filogic 820) 1.3GHz dual-core ARM Cortex-A53
- RAM: 1GB DDR4
- Flash: 256MB SPI NAND
- Wireless: 2.4GHz/5GHz 802.11ax
- Ethernet: 1x 10/100/1000M LAN
- USB: 1x USB 3.0 Type-A port
- Expansion: M.2 slot for 5G modem
- Cooling: PWM-controlled fan
- Buttons: Reset, Mode switch
- LEDs: System, Ethernet, 5G WiFi, Modem status
**Installation via U-Boot web page**
1. Set static IP 192.168.21.2/255.255.255.0 on your computer.
2. Connect to the Ethernet port and hold the reset button while booting the device. Wait for 6-8 seconds, and release the reset button.
3. Open U-boot web page on your browser at http://192.168.21.1
4. Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
5. Wait for automatic reboot.
**Installation via sysupgrade**
Flash the sysupgrade file via LuCI upgrade page without saving the settings.
Mateusz Krzak [Thu, 22 May 2025 16:36:38 +0000 (18:36 +0200)]
mediatek: filogic: D-Link M30/M60: include initramfs in recovery
Currently, if OEM recovery flashes OpenWrt to second ubi1,
OpenWrt cannot boot. With this commit, recovery image is built
with initramfs kernel, so that it can boot from either ubi or ubi1.
This adds an extra step to OpenWrt installation from OEM:
user needs to sysupgrade from initramfs to full system.
Coia Prant [Fri, 8 Aug 2025 17:35:57 +0000 (01:35 +0800)]
ramips: add support for Hongdian H7920 v40
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.
Specification:
- SoC: MediaTek MT7628NN
- Flash: 16 MB
- RAM: 128 MB
- Power: DC 5V-36V 1.5A
- Ethernet: 1x WAN [slot not install], 1x LAN (10/100 Mbps)
- Wireless radio: 802.11n 2.4g-only [antenna not install]
- LED:
System/Power (RUN): GPIO/37 active-low
Modem: GPIO/3 active-low
RF (Modem Signal): GPIO/2 active-low
- Button:
WPS / RESET: GPIO/11 active-low
- UART: 1x UART on PCB - 115200 8N1
- Serial / COM: 1X RS232/RS485 on board (GPIO/6 hi:RS485 lo:RS232)
- GPIO Watchdog: GPIO/0 mode=toggle timeout=1s
- Modem: 1x Built-in modem on board (Power: GPIO/4 active-high)
- PCIe: 1x miniPCIe for modem [slot not install]
- SIM Slots: 1x SIM Slots
Issue:
- Factory partition not store mac address on original firmware
Flash instruction:
Using SSH/Telnet:
1. Connect the board to the computer via RJ45 Ethernet
2. Login 192.168.8.1 with root password "superzxmn" (SSH Port 22, Telnet Port 5188)
3. Download openwrt firmware on the computer.
4. Use scp or sftp put firmware to board /tmp
5. Use command "mtd -r write openwrt-ramips-mt76x8-hongdian_h7920-v40-squashfs-sysupgrade.bin firmware"
to flash
Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-hongdian-h7920-v40-and-flash.html
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.
Rosen Penev [Tue, 12 Aug 2025 18:22:27 +0000 (11:22 -0700)]
mpc85xx: tl-wdr4900: add back 5ghz LED
In the conversion to dts, qca,led-pin was used for both interfaces.
Unfortunately, it's mutually exclusive with gpio-controller which made
it not do anything.
b3e3c05 client: don't send stray EOF chunk on connection timeout fad0d05 proc: inhibit chunked transfer encoding on existing TEs or known length 3d6f01b file: prevent writes beyond end of uh_buf on enumerating directories c7294e7 client: reject requests with multiple content-lengths and/or TEs 7e64e8b client: Allow sending content in DONE state
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.
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.38 to recent HEAD
f510d75ff7 nscd: Use time_t for return type of addgetnetgrentX 5aa4bb67b9 resolv: Fix some unaligned accesses in resolver [BZ #30750] 249646f12b Force DT_RPATH for --enable-hardcoded-path-in-tests 697ab62d11 i386: Disable Intel Xeon Phi tests for GCC 15 and above (BZ 31782) c8cb4d2b86 misc: Add support for Linux uio.h RWF_NOAPPEND flag 712453634c s390x: Fix segfault in wcsncmp [BZ #31934] 7bfc35959d nptl: fix potential merge of __rseq_* relro symbols d9d019d674 elf: Make dl-rseq-symbols Linux only bb30bd2162 Linux: Make __rseq_size useful for feature detection (bug 31965) dc512364e8 resolv: Allow short error responses to match any query (bug 31890) 6cad0f543c resolv: Do not wait for non-existing second DNS response after error (bug 30081) 1bed6acf50 resolv: Track single-request fallback via _res._flags (bug 31476) 0301637b99 linux: Update the mremap C implementation [BZ #31968] f0e2114535 mremap: Update manual entry 6bb75212e6 Add mremap tests 3ac7ba61d2 Update syscall lists for Linux 6.5 9184c13681 resolv: Fix tst-resolv-short-response for older GCC (bug 32042) 059f82c3b9 Fix name space violation in fortify wrappers (bug 32052) c005d1bd6f x86: Fix bug in strchrnul-evex512 [BZ #32078] 28f358bc42 support: Add FAIL test failure helper 99ffa84bdc stdio-common: Add test for vfscanf with matches longer than INT_MAX [BZ #27650] 87a1968a72 Make tst-ungetc use libsupport 804d3c8db7 ungetc: Fix uninitialized read when putting into unused streams [BZ #27821] b9f72bd5de ungetc: Fix backup buffer leak on program exit [BZ #27821] 15ca66303f posix: Use <support/check.h> facilities in tst-truncate and tst-truncate64 f30501ca75 nptl: Use <support/check.h> facilities in tst-setuid3 370be85892 libio: Attempt wide backup free only for non-legacy code 4dd8641461 Add crt1-2.0.o for glibc 2.0 compatibility tests fa4ad10406 elf: Change ldconfig auxcache magic number (bug 32231) 9423cc5387 nptl: initialize rseq area prior to registration 37ded328c4 nptl: initialize cpu_id_start prior to rseq registration cf06772360 x86: Avoid integer truncation with large cache sizes (bug 32470) 5c9be512ee x86_64: Sort fpu/multiarch/Makefile 49016f2190 x86_64: Add log2 with FMA b2a45f1eee x86_64: Add expm1 with FMA c92946d9b2 x86_64: Add log1p with FMA 58822f954f x86: Check the lower byte of EAX of CPUID leaf 2 [BZ #30643] 7772f9358c elf: Fix slow tls access after dlopen [BZ #19924] 5a64f93365 x86: Only align destination to 1x VEC_SIZE in memset 4x loop 0d14bf0754 sysdeps/x86/Makefile: Split and sort tests dc1762113d x86_64: Fix missing wcsncat function definition without multiarch (x86-64-v4) 04b8d48432 x86: Improve large memset perf with non-temporal stores [RHEL-29312] 12fec8aae5 x86/string: Fixup alignment of main loop in str{n}cmp-evex [BZ #32212] 48642ef1a5 elf: Avoid some free (NULL) calls in _dl_update_slotinfo 549e7f7c5a elf: Support recursive use of dynamic TLS in interposed malloc c32fd59314 Fix underallocation of abort_msg_s struct (CVE-2025-0395) 650a0aaaff stdlib: Test using setenv with updated environ [BZ #32588] f984e2d7e8 assert: Add test for CVE-2025-0395 9ca74b8ad1 AArch64: Improve generic strlen 95aa21432c AArch64: Optimize memset 5fe151d86a AArch64: Remove zva_128 from memset 3de5112326 math: Improve layout of expf data 52c2b1556f AArch64: Add SVE memset 097299ffa9 AArch64: Use prefer_sve_ifuncs for SVE memset 5a08d049dc math: Improve layout of exp/exp10 data 3be3728df2 elf: Ignore LD_LIBRARY_PATH and debug env var for setuid for static 454f24e981 support: Use const char * argument in support_capture_subprogram_self_sgid 4335cd9b58 support: Add support_record_failure_barrier 31fa0f73e2 elf: Test case for bug 32976 (CVE-2025-4802) ca41fe44a5 x86_64: Fix typo in ifunc-impl-list.c. ca7e32d024 elf: Fix subprocess status handling for tst-dlopen-sgid (bug 32987) 81f58dd9b7 support: Pick group in support_capture_subprogram_self_sgid if UID == 0 5a6276d97a Fix error reporting (false negatives) in SGID tests 1a0d73a625 pthreads NPTL: lost wakeup fix 2 b5c4727e59 nptl: Update comments and indentation for new condvar implementation 1fa5e51897 nptl: Remove unnecessary catch-all-wake in condvar group switch 44eaf0615d nptl: Remove unnecessary quadruple check in pthread_cond_wait 7625579f11 nptl: Remove g_refs from condition variables 6bac834c5a nptl: Use a single loop in pthread_cond_wait instaed of a nested loop 5765653697 nptl: Fix indentation 8899e89b29 nptl: rename __condvar_quiesce_and_switch_g1 39a80f4035 nptl: Use all of g1_start and g_signals 51210d6496 nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions (bug 32786) 879f0ee122 malloc: add indirection for malloc(-like) functions in tests [BZ #32366] a637f2c42f malloc: obscure calloc use in tst-calloc 21019afe65 malloc: cleanup casts in tst-calloc 6a52d5cab0 posix: Fix double-free after allocation failure in regcomp (bug 33185)
6953f19 wireless-regdb: Update regulatory info for Indonesia (ID) for 2025 2e8214e wireless-regdb: Permit 320 MHz bandwidth in 6 GHz band for GB a94f685 wireless-regdb: Update regulatory info for Egypt (EG) for 2024 7628ce2 wireless-regdb: Update regulatory rules for Brazil (BR) on 6GHz 4411b39 wireless-regdb: Update regulatory info for Vietnam (VN) for 2025 490f136 wireless-regdb: Update regulatory info for Estonia (EE) for 2024 c56c663 wireless-regdb: update regulatory rules for Paraguay (PY) on 6 GHz for 2025 5a8ced5 wireless-regdb: Update regulatory info for CEPT countries for 6GHz listed by WiFi Alliance 5fd8ee3 wireless-regdb: update regulatory rules for Bosnia and Herzegovina (BA) for 6 GHz e05260a wireless-regdb: update regulatory database based on preceding changes
Petr Štetiar [Mon, 9 Jun 2025 15:44:44 +0000 (15:44 +0000)]
busybox: fix login applet on selinux
Currently the system boots up, but is unusable because pressing enter
does not provide login with error:
login: can't get SID for root
This is happenning, because login.c passes the Linux username directly
to get_default_context(), while libselinux expects an SELinux user
identity, causing the call to fail for users without a matching SELinux
name (e.g., root) and aborting login on SELinux-enabled systems.
Leo Barsky [Thu, 24 Jul 2025 12:12:33 +0000 (12:12 +0000)]
kernel: bump 6.6 to 6.6.100
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.100
Manually refreshed:
823-v6.12-0003-nvmem-layouts-add-U-Boot-env-layout.patch
All other patches auto-refreshed.
Felix Fietkau [Wed, 23 Jul 2025 09:53:02 +0000 (11:53 +0200)]
udebug: update to Git HEAD (2025-07-23)
5d10084ea885 lib-ucode.c: add #define _GNU_SOURCE a95364b41d52 udebug-cli: fix terminating uloop c00eb9b685a8 ucode: use FILE handle for pcap output 4265167cb6e8 ucode: add error reporting to pcap_write 4a908ee731a6 udebug-cli: stop event loop on write failure 6e04f4187231 ucode: use ucv_resource_create_ex for remote rings c297f04e1852 ucode: drop use ucv_resource_create f207d37a1055 ucode: add support for specifying ring format 98683a94bcdd ucode: support appending array data, similar to socket.send() a7ecd483ed38 ucode: allow calling udebug.init() multiple times d4a4c788c416 ucode: fix allocation size of local ring meta 184706abaf50 ucode: add timestamp argument to foreach() 8442c948c193 ucode: add function for getting ring information f4958a4c591a ucode: add const entries for enum udebug_format 14d4fec36993 udebug-cli: add logstream command 6ed8536142bb ucode: fix entries/size confusion
Felix Fietkau [Tue, 22 Jul 2025 09:58:15 +0000 (11:58 +0200)]
toolchain/gcc: prevent the use of LDRD/STRD on ARMv5TE
These instructions are for 64-bit load/store. On ARMv5TE, the CPU
requires addresses to be aligned to 64-bit. When misaligned, behavior is
undefined (effectively either loads the same word twice on LDRD, or
corrupts surrounding memory on STRD).
On ARMv6 and newer, unaligned access is safe.
Removing these instructions for ARMv5TE is necessary, because GCC
ignores alignment information in pointers and does unsafe optimizations
that have shown up as bugs in various places.
This patch was originally added more than 11 years ago in commit b050f87d13b5,
but got lost 6 years ago, when gcc 9.1 was added in 88c07c655262.
This primarily affects the kirkwood and ixp4xx targets
**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.
MAC address
-----------
+-----------+-------------------+-----------+
| Interface | MAC | Algorithm |
+-----------+-------------------+-----------+
| WLAN 2.4G | B0:38:6C:xx:xx:xx | label |
| WLAN 5G | B2:38:6C:4x:xx:xx | |
| WAN | B0:38:6C:xx:xx:xx | label + 1 |
| LAN | B0:38:6C:xx:xx:xx | label + 3 |
+-----------+-------------------+-----------+
The WLAN 2.4G MAC address was found in 'Factory' partition, 0x4
Installation
------------
1. Download the *initramfs-kernel.bin file from the OpenWrt website
2. Attach UART to the router, and interrupt the boot process by pressing '0'
If you successfully interrupt the boot process, a terminal prompt
name should look like this:
MT7981>
3. Connect the router(LAN port) to the PC
4. Assign the PC IP address: 192.168.0.100/24
5. Load and run the *initramfs-kernel.bin:
tftpboot 0x46000000 initramfs-kernel.bin
bootm
6. Upload the OpenWrt *squashfs-sysupgrade.bin to the router
7. Run 'sysupgrade -n' with the sysupgrade OpenWrt image
Tim Harvey [Wed, 16 Jul 2025 16:09:34 +0000 (09:09 -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.
Felix Fietkau [Tue, 1 Jul 2025 18:48:14 +0000 (20:48 +0200)]
ubus: update to Git HEAD (2025-07-02)
27839f854a58 ubusd: make txq_len field signed b35b2bc63e8e ubusd: treat EACCES on write like EAGAIN 713e9d19b2b6 ubusd: retry write on EINTR 8bb523ab20e0 ubusd: fix txq_len accounting b1b783c74742 ubusd: add another tx attempt on enqueueing the first message for a client 5952b48e251c ubusd: do not call socket callback from ubus_msg_send
Mbed TLS 3.6 is a long-term support (LTS) branch. It will be supported with bug-fixes and security fixes until at least March 2027.
Security Advisories
For full details, please see the following links:
Race condition in AESNI support detection [1]
Heap buffer under-read when parsing PEM-encrypted material [2]
Unchecked return value in LMS verification allows signature bypass [3]
Out-of-bounds read in mbedtls_lms_import_public_key() [4]
Timing side-channel in block cipher decryption with PKCS#7 padding [5]
NULL pointer dereference after using mbedtls_asn1_store_named_data() [6]
Misleading memory management in mbedtls_x509_string_to_names() [7]
Installation:
Cudy has distributed intermediate firmware to make installation easier
1. Go to [Cudy CN official website](https://www.cudy.com/zh-cn/pages/download-center/tr3000-1-0) and download the intermediate firmware
2. Upgrade the intermediate firmware on the page
3. Visit the intermediate firmware 192.168.1.1 webpage and use the sysupgrade image to update
other:
If you fail to flash the device, you can use TFTP to flash back to the original firmware.
1. Ask Cudy CN official customer service for the original firmware
2. With the router off, press the RESET button. While the router is turning on, the button should continue to be pressed for at least 5 seconds.
3. A u-boot shell will automatically open.
4. Connect to LAN and set your IP to 192.168.1.88/24. Configure a TFTP server and an recovery.bin firmware file.
Valeriy Manzhos [Sun, 15 Jun 2025 10:08:29 +0000 (13:08 +0300)]
ath79: enable USB by default on hAP ac
Due to a bug, USB is not powered on after boot on hAP ac.
This prevents extroot configurations from working as overlayfs is mounted
before USB device can be powered on. This commit fixes this by enabling USB
in devicetree.
Related discussion links:
- https://forum.openwrt.org/t/usb-power-is-off-on-boot/229007
---
Extroot configuration requires the USB to be powered on before
preinit_main/80_mount_root. Probably the simplest approach is to enable
it in the devicetree. Another approach would be to add a script into
/lib/preinit that will power on USB via /sys/class/gpio/usb-power/value
E.g.
cat /lib/preinit/79_power_on_usb
do_power_on_usb(){
echo '1' > /sys/class/gpio/usb-power/value
}
boot_hook_add preinit_main do_power_on_usb
Tianling Shen [Thu, 19 Jun 2025 14:16:34 +0000 (22:16 +0800)]
mediatek: add ubootmod layout for cudy tr3000 v1
This allows us to use the full size of nand, which increases ubi size
from 64M to 122.25M.
If you are at factory firmware, please refer commit 63b8d98dd0d2 ("mediatek: add support for Cudy TR3000 v1")
to boot into OpenWrt initramfs (stock layout).
Flash instructions:
1. Login into the device and backup everything, especially 'Factory' part.
1. Unlock mtd partitions:
opkg update && opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
3. Write new BL2 and FIP
mtd write openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-preloader.bin BL2
mtd write openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-bl31-uboot.fip FIP
4. Set static IP on your PC:
IP 192.168.1.254/24, GW 192.168.1.1
5. Serve OpenWrt initramfs image using TFTP server.
6. Cut off the power and re-engage, wait for TFTP recovery to complete.
7. After OpenWrt has booted, perform sysupgrade.
Marius Durbaca [Tue, 22 Oct 2024 13:15:57 +0000 (16:15 +0300)]
mediatek: add support for Zbtlink ZBT-Z8102AX v2
Specifications:
SoC: MediaTek MT7981B
RAM: 1024MiB
Flash: SPI-NAND 128 MiB
Switch: 1 WAN, 4 LAN (Gigabit)
USB: two M.2 slots for 5G modems via USB 3.0 hub, external USB 3.0 port
Buttons: Reset, Mesh
Power: DC 12V 1A
WiFi: MT7976CN
UART: 115200n8
UART Layout:
VCC-RX-TX-GND
Installation:
1. Power down the router and hold in the Reset button.
2. While holding in the button power up the router again.
3. Hold the button in for 10 seconds and then release.
4. Use your browser to go to 192.168.1.1
5. If you see a GUI that is for flashing firmware then you have the V2 model.
If there is no GUI and the router continues to boot up normally
you have the V1 model.
6. Now use the V2 sysugrade file.
Note: Recovery GUI it can be used to recover from an incorrect firmware flash.
Based on patches adding support for this device by Yannick Chabanois (openmptcprouter)
and Dairyman (ofmodemsandmen)
Tim Harvey [Thu, 19 Jun 2025 21:32:11 +0000 (14:32 -0700)]
imx: venice: add dt overlay support
Enable DT overlay support:
- add dt-overlay to board features
- add DEVICE_DTS_OVERLAYS
- update the boot script to resize before applying each overlay
Tim Harvey [Thu, 19 Jun 2025 23:58:11 +0000 (16:58 -0700)]
imx: kernel: backport additional upstream patches
Backport some additional upstream patches to resolves some issues when using
dt overlays on gw72xx-0x and gw73xx-0x:
- 6.13-arm64-dts-imx8mm-venice-gw73xx-remove-compatible-in-overlay-files.patch
- 6.12-arm64-dts-imx8mm-venice-gw72xx-remove-compatible-in-overlay-files.patch
ramips: mt7621: include uboot-envtools in some missed devices
Add uboot-envtools (removing -uboot-envtools) to devices which were
missed in the commit 79bd017 ("ramips: mt7621: add uboot-envtools to
all devices")
- Mi Router 3G
- Mi Router AC2100
While at here remove two redundant entries from devices which were added
just after the referenced commit 79bd017 and did not account for the
new DEFAULT_PACKAGES member: