1
1
Commit Graph

69210 Commits

Author SHA1 Message Date
Jonas Jelonek
c2f129599e
realtek: pcs: introduce per-variant SerDes activate helpers
Mirror of the previous sds_deactivate commit: add rtpcs_{838x,931x}_sds_activate()
helpers that each wrap the variant-specific "bring the SerDes back to operational"
block-power call at the end of setup_serdes, and replace the inline call.

 - 838x: wraps rtpcs_838x_sds_power(sds, true)
 - 931x: wraps rtpcs_931x_sds_power(sds, true)

RTL839x and RTL930x are intentionally not given an activate helper in this
commit:

 - RTL839x calls rtpcs_839x_sds_reset() at the end of setup_serdes. That is
   a reset pulse whose internals (per-type 10G/5G analog sequences, internal
   REG3 0x7146 -> 0x7106 dance) are not yet fully characterized. Aliasing
   it as _activate would misrepresent the function.
 - RTL930x has no separate activation step: rtpcs_930x_sds_set_mode(sds,
   hw_mode) is what commits the new mode and is intended to be surfaced
   as its own "set mode" phase in a later commit rather than hidden inside
   a variant-specific _activate wrapper.

Both variants will be revisited when their respective phases are clarified.
This commit is a pure refactor, no behavioural change.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-26 08:37:59 +02:00
Jonas Jelonek
c484f93a0b
realtek: pcs: introduce per-variant SerDes deactivate helpers
Add rtpcs_{838x,930x,931x}_sds_deactivate() helpers that each encapsulate
the variant-specific "make SerDes inert before reconfigure" sequence, and
replace the inline calls at the start of each setup_serdes with a single
call to the new helper:

 - 838x: wraps rtpcs_838x_sds_power(sds, false)
 - 930x: wraps rtpcs_930x_sds_set_mode(sds, RTPCS_SDS_MODE_OFF)
 - 931x: rtpcs_931x_sds_power(sds, false) + rtpcs_931x_sds_set_mode(sds,
         RTPCS_SDS_MODE_OFF)

RTL839x has no deactivate step to factor out and is left unchanged.

This is a pure refactor: same register writes, same order, same return-
value handling at the call site. The helpers give each variant a named
hook for the deactivate phase and prepare for a subsequent commit that
promotes it to an rtpcs_sds_ops entry and hoists the call site into
rtpcs_pcs_config.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-26 08:37:59 +02:00
Hauke Mehrtens
81fde127a8 libiwinfo: update to Git HEAD (2026-05-26)
f35c47d50bf2 devices: add device id for MediaTek MT7921E
6e198d375752 nl80211: fix corrupt scan results from wpa_supplicant
cd7db6194a71 devices: add device id for Qualcomm Technologies QCN6224/9224/9274
66bdd1a07189 devices: add device id for Qualcomm Atheros QCA9994

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 01:37:18 +02:00
Štěpán Dalecký
aefe838172 mvebu: add mwifiex sdio kernel module for Turris Mox
Turris Mox boards may include an SDIO Wi-Fi module based on the
Marvell 88W8997 chip. Add kmod-mwifiex-sdio to the default package
list so the driver is included in the image out of the box.

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23421
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 01:36:23 +02:00
Štěpán Dalecký
937eee61cb mvebu: add fw_env.config for Turris Mox
Turris Mox stores the U-Boot environment in SPI NOR flash. Add the
fw_env.config entry pointing to MTD partition 2 at offset 0x0 with
64 KiB env size and sector size, so userspace tools fw_printenv and
fw_setenv work correctly on this board.

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23421
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 01:36:23 +02:00
Štěpán Dalecký
833c7c75a3 mvebu: fix squashfs boot for Turris Mox
The bootscript had several issues that prevented squashfs from booting:

- bootpath was set to "/" causing double slashes in load paths (e.g.
  "//Image"); changed to "" so "${bootpath}/Image" resolves to "/Image"
- rootflags was set to "commit=5" (a btrfs-specific mount option) for
  the ext4/squashfs case; cleared to empty string
- rootfstype was missing in the non-btrfs branch; added "auto" to let
  the kernel detect the filesystem; the btrfs branch now sets "btrfs"
  explicitly
- bootargs incorrectly referenced ${bootfstype} (the distroboot input
  variable) instead of the locally constructed ${rootfstype}
- has_dtb assignment used shell-style "has_dtb=1" but was cleared with
  "setenv has_dtb 0"; unified both to use setenv
- DTB load failure message now includes the attempted file path
- Fixed Image.lzma error echo that still used a stale "${subvol}/boot/"
  prefix; now consistently uses ${bootpath}
- Removed undefined variable "rootpart" from env delete

Signed-off-by: Štěpán Dalecký <daleckystepan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23421
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 01:36:23 +02:00
xinmu
441da8597a loongarch64: add upstream dwmac-loongson patches for 2K3000/3B6000M
Add three backported patches from Linux upstream to fix the onboard
Ethernet controller (dwmac-loongson) detection and driver issues on
Loongson 2K3000 and 3B6000M platforms.

These patches are taken from the upstream Linux kernel and retain the
original authorship and commit logs. No other modifications are made
to the loongarch64 target.

The patches address the following symptoms:
- Onboard network interface not recognized
- Driver probe failures on 2K3000/3B6000M boards

Signed-off-by: xinmu <xinmu@loongfans.cn>
Link: https://github.com/openwrt/openwrt/pull/23366
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:58:05 +02:00
Mikhail Zhilkin
17dc71c08d mediatek: add support for netis EAP930 V1
This commit adds support for netis EAP930 V1 ceiling access point.

Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3 GHz
- RAM       : 256 MiB DDR3 (ESMT M15T2G16128A-EFB)
- Flash     : SPI-NAND 128 MiB (ESMT F50L1G41LB-104)
- WLAN      : MediaTek MT7976CN dual-band WiFi 6
  - 2.4 GHz : b/g/n/ax,  MIMO 2x2
  - 5 GHz   : a/n/ac/ax, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x1 (SoC internal phy)
- USB       : No
- Buttons   : Reset
- LEDs      : 1x Status (red), gpio-controlled
              1x Status (blue), gpio-controlled
- Power     : 48 VDC (PoE) or 12 VDC, 1.5 A

Installation
------------
1. Connect to the access point using ssh (user: admin, pass: web interface
   password)
2. Make mtd backup:
   cat /dev/mtd0 | gzip -1 -c > /tmp/mtd0_spi0.0.bin.gz
   cat /dev/mtd1 | gzip -1 -c > /tmp/mtd1_BL2.bin.gz
   cat /dev/mtd2 | gzip -1 -c > /tmp/mtd2_u-boot-env.bin.gz
   cat /dev/mtd3 | gzip -1 -c > /tmp/mtd3_Factory.bin.gz
   cat /dev/mtd4 | gzip -1 -c > /tmp/mtd4_FIP.bin.gz
   cat /dev/mtd5 | gzip -1 -c > /tmp/mtd5_ubi.bin.gz
3. Download mtd backup from the /tmp dir of the router to your PC using
   scp protocol
4. Upload OpenWrt 'bl31-uboot.fip', 'preloader.bin' images to the /tmp
   dir of the router using scp protocol
5. Write FIP and BL2 (replace bootloader):
   mtd write /tmp/bl31-uboot.fip FIP
   mtd write /tmp/preloader.bin spi0.0
6. Place OpenWrt
   'openwrt-mediatek-filogic-netis_eap930-v1-initramfs-recovery.itb' image
   on the tftp server (IP: 192.168.1.254)
7. Erase 'ubi' partition and reboot the router:
   mtd erase ubi
   reboot
8. U-Boot automatically boot OpenWrt recovery image from tftp server to
   the RAM (1 Gbps link is required)
9. Upload OpenWrt 'sysupgrade.itb' image to the /tmp dir of the router
   (IP: 192.168.1.1) using scp protocol
10. Connect to the router using ssh and run:
    sysupgrade -n squashfs-sysupgrade.itb

Recovery
--------
1. Place OpenWrt
   'openwrt-mediatek-filogic-netis_eap930-v1-initramfs-recovery.itb' image
   on the tftp server (IP: 192.168.1.254)
2. Press Reset button and power on the router. After ~10 sec release
   the button.
3. Use OpenWrt initramfs system for recovery

Return to stock
---------------
1. Upload stock BL2, FIP, ubi partitions backup archives to the /tmp dir
   of the router using scp protocol
2. Connect to the router using ssh and run:
   apk update && apk add kmod-mtd-rw
   insmod mtd-rw i_want_a_brick=1
   mtd unlock BL2
   mtd unlock FIP
4. Restore backups:
   zcat /tmp/mtd1_BL2.bin.gz | mtd write - BL2
   zcat /tmp/mtd4_FIP.bin.gz | mtd write - FIP
   zcat /tmp/mtd5_ubi.bin.gz | mtd write - ubi
3. Reboot the router:
   reboot

UART
----
Connection parameters: 115200, 8N1, 3.3V
UART pins are silkscreened on the PCB.

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN     | 88:xx:xx:88:xx:d3 | label     |
| WLAN 2g | 88:xx:xx:18:xx:d4 |           |
| WLAN 5g | 88:xx:xx:78:xx:d4 |           |
+---------+-------------------+-----------+
The LAN MAC (hex) was found in 'Factory', 0x1fef20
The WLAN 2g/5g MAC prototype (hex) was found in 'Factory', 0x4

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23133
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:50:00 +02:00
Ryan Leung
7e7bdc88d1 uboot-mediatek: mtd: nand: spi: otp: add NULL guards to OTP size functions
U-Boot v2026.01 introduced drivers/mtd/nand/spi/otp.c which adds `spinand_user_otp_size()` and
`spinand_fact_otp_size()`. These functions are called unconditionally from `spinand_init()` in
drivers/mtd/nand/spi/core.c to determine whether to set up OTP methods:

  if (spinand_user_otp_size(spinand) || spinand_fact_otp_size(spinand)) {
      ret = spinand_set_mtd_otp_ops(spinand); /* drivers/mtd/nand/spi/core.c:2369 */
      ...
  }

Both OTP size functions pass `&spinand->user_otp->layout` or `&spinand->fact_otp->layout` to
`spinand_otp_size()` without first checking whether the pointer is NULL. In the standard probing
path, these pointers are assigned by `spinand_match_and_init()` from the per-chip `spinand_info`
table. `100-21-mtd-spi-nand-add-CASN-page-support.patch` adds CASN detection to `spinand_detect()`
so that when a CASN page is found, `spinand_init_via_casn()` is called instead of
`spinand_id_detect()`. As `spinand_match_and_init()` is only called via `spinand_id_detect()`, it
is never invoked for CASN-probed devices.

As a result, `spinand->user_otp` and `spinand->fact_otp` remain NULL from the zero-initialised DM
priv allocation. Both `spinand_user_otp_size()` and `spinand_fact_otp_size()` spuriously return
non-zero by reading `layout->npages` from a small mapped address computed from their respective
NULL pointer, causing `spinand_init()` to call `spinand_set_mtd_otp_ops()` which reads
`spinand->user_otp->ops` and thereby silently assigns a garbage value to `user_ops` that is then
dereferenced at `if (user_ops->info)`.

  int spinand_set_mtd_otp_ops(struct spinand_device *spinand)
  {
    struct mtd_info *mtd = spinand_to_mtd(spinand);
    const struct spinand_fact_otp_ops *fact_ops = spinand->fact_otp->ops;
    const struct spinand_user_otp_ops *user_ops = spinand->user_otp->ops;
    ...
    if (user_ops) {
        if (user_ops->info) /* drivers/mtd/nand/spi/otp.c:343 */
            ...
        ...
    }
    ...
  }

On COMFAST CF-WR632AX (MT7981, Winbond W25N01GV) this results in a "Synchronous Abort" during boot.
The crash was confirmed via `addr2line` on the U-Boot ELF:

  "Synchronous Abort" handler, esr 0x96000004, far 0xeafffffeeafffffe
  elr: 0000000041e2ff44 (drivers/mtd/nand/spi/otp.c:343)
  lr : 0000000041e2f2f8 (drivers/mtd/nand/spi/core.c:2369)

The same was observed on Acer Predator Connect W6x (MT7986, Winbond W25N02KV):

  "Synchronous Abort" handler, esr 0x96000004, far 0xeafffffeeafffffe
  elr: 0000000041e2c868 (drivers/mtd/nand/spi/otp.c:343)
  lr : 0000000041e2bc1c (drivers/mtd/nand/spi/core.c:2369)

Fix this by adding NULL guards to both OTP size functions so that they return 0 when the pointer is
NULL. With both functions returning 0, the condition in `spinand_init()` evaluates to false and
`spinand_set_mtd_otp_ops()` is never called, skipping setup of OTP methods entirely for CASN-probed
SPI NAND chips.

This change has no effect on SPI NAND chips that do have OTP data but not CASN. For those chips,
`spinand_match_and_init()` sets `spinand->user_otp` and `spinand->fact_otp` to non-NULL values from
the per-chip table, the NULL guard does not activate, and the existing behaviour is unchanged.

Fixes: https://github.com/openwrt/openwrt/issues/23430
Fixes: b94de14baf ("uboot-mediatek: update to v2026.01")
Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/23447
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:30:14 +02:00
Chukun Pan
ae0da098a5 mediatek: remove duplicate KERNEL{_INITRAMFS}
Remove duplicate KERNEL/KERNEL_INITRAMFS recipes from filogic.mk,
which are already defined in Device/Default for the mediatek target:

  KERNEL = kernel-bin | lzma | \
    fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
  KERNEL_INITRAMFS = kernel-bin | lzma | \
    fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23490
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:23:37 +02:00
Chukun Pan
9fa347191c uboot-mediatek: cleanup whitespace in patch
Clean up whitespace and fix LED labels.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23490
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:23:37 +02:00
Chukun Pan
5b6b0b519a uboot-mediatek: reorder targets alphabetically
Sort U-Boot targets alphabetically.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23490
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:23:37 +02:00
Chukun Pan
0b8505f04e uboot-mediatek: fix bl2 image for mt7987_rfb-emmc
The BL2 image for mt7987_rfb-emmc should be emmc, not sdmmc.

Fixes: 6d35eda ("uboot-mediatek: add builds for the MediaTek MT7987 reference board")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/23490
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:23:36 +02:00
Lech Perczak
4cd60fe167 ath79: support Dragino LPS8
Dragino LPS8 is a LoRa/LoRaWAN gateway with single Wi-Fi 4 radio and a
single Fast Ethernet port, based around Dragino HE module.

Specifications:
CPU: Atheros AR9330 SoC @400MHz,
RAM: 64MB DDR,
Flash: 16MB SPI-NOR,
Ethernet: One 100Mbps port.
Wireless: built-in 1x1 802.11 2.4GHz radio,
USB: single USB2.0 High speed host port,
LoRa: Semtech SX1301 or compatible module, dependent on LoRa band.
Power: USB-C 5V, with the usual 5,1k CC resistors missing - use type
A-to-C cable.

LEDs:
- LAN (red)
- WAN/Status (RGB, blue: status, green: WLAN, red: WAN)
- LoRa (bicolor, controlled by Semtech module)

UART: 3.3V 115200-8-N-1 at internal expansion header J2
RxD: pin 4
TxD: pin 6
GND: pin 8
Label MAC: Wi-Fi interface.

Installation:
Log in via SSH to the unit, default username and password are 'root' and
'dragino', respectively. SSH listens on port 2222.
Just 'sysupgrade -n' from vendor firmware, dropping old configuration.

Restore vendor firmware:
the same as installation, just 'sysupgrade -F -n', dropping configuration.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23472
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:01:39 +02:00
Lech Perczak
5f73c4d099 ath79: support Dragino MS14
Dragino MS14 is a small router/development kit with two Fast Ethernet
ports, with single 1x1 2,4GHz Wi-Fi radio and expansion headers.

Specifications:
CPU: Atheros AR9330 SoC @400MHz,
RAM: 64MB DDR,
Flash: 16MB SPI-NOR,
Ethernet: Two 100Mbps ports, LAN on eth0, WAN on eth1,
Wireless: built-in 1x1 802.11 2.4GHz radio,
USB: single USB2.0 High speed host port,
LEDs: 4 status LEDs for system, LAN, WAN and WLAN.
UART: 115200-8-N-1 at the 2x8 header
Label MAC: Wi-Fi interface.

The board support is ported over from old ar71xx target, and only
partially verified using LPS8 board, which will be introduced next.

Installation:
Log in via SSH to the unit, default username and password are 'root' and
'dragino', respectively. SSH listens on port 2222.
Just 'sysupgrade -n' from vendor firmware, dropping old configuration.

Update with configuration from ar71xx builds may be possible, but isn't
guaranteed, as the builds are many releases apart.

Restore vendor firmware:
the same as installation, just 'sysupgrade -F -n', dropping configuration.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23472
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-26 00:01:39 +02:00
Jonas Jelonek
811f235bd9
generic: refresh patches
A recently added patch needs to be refreshed. Do that with make
target/linux/refresh.

Fixes: 89ef8aaf3e ("kernel: backport lm63 enhancements")
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 21:49:16 +00:00
Hannu Nyman
ab06327b13 musl: update to 1.2.6
Update musl C library to 1.2.6. Fixes CVE-2025-26519

* Patches refreshed. Unnecessary upstream patch removed.

* Add a post-release patch for timezone handling in datetime string
  matching (affecting at least uhttpd):
  bug report: https://www.openwall.com/lists/musl/2026/03/22/3
  fix: https://www.openwall.com/lists/musl/2026/03/30/6

1.2.6 release notes
https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?id=9fa28ece75d8a2191de7c5bb53bed224c5947417

new features:
- posix_getdents interface (new in POSIX-2024)
- renameat2 interface (linux extension)
- iconv support for CP858
- vdso clock_gettime for riscv{32,64}, powerpc{,64}, and s390x
- loongarch64 TLSDESC support
- exposed __getauxval for compiler runtime use detecting cpu features

compatibility:
- initgroups no longer artificially limits number of supplementary groups
- getusershell now skips blank lines and comments
- exit is now explicitly thread-safe (possible future requirement)
- atexit now fails rather than deadlocking if called from late dtor
- strerror now has error strings for EUCLEAN and ENAVAIL
- isatty no longer collapses errors to ENOTTY
- sched.h namespace pollution with _GNU_SOURCE is reduced
- hasmntopt now matches only whole options, not arbitrary substrings
- shadow.h no longer declares an unimplemented sgetspent interface
- vdso with missing sysv hash table (only gnu hash) is now supported

conformance:
- pwrite now handles O_APPEND correctly, reports error if it can't
- mbnrtowcs now conforms to new POSIX-2024 requirement for partial character
- iconv GBK now properly includes euro symbol
- strptime now accepts conversion specifiers added in POSIX-2024
- inet_ntop IPv6 "zero compression" now conforms to RFC 5952

bugs fixed:
- iconv euc-kr decoder could do oob writes on invalid inputs (CVE-2025-26519)
- iconv shift_jis decoder could produce wrong outputs for some invalid inputs
- printf did not honor hex float precision correctly in some cases
- lost or delayed wakes in sem_post under race condition
- termios input speed handling was wrong
- strcasestr failed to match zero-length needle
- fma handled corner case with negative zero wrongly
- syslog LOG_MAKEPRI macro was incorrect
- timer_create is no longer affected by known pthread_barrier bugs
- sysconf(_SC_MINSIGSTKSZ) computed min size incorrectly
- statx emulation left some fields uninitialized
- mntent wrongly included final newline in parsed field output
- SIGEV_THREAD timers could abort process if SIGTIMER became unblocked
- bind_textdomain_codeset returned wrong value

arch-specific bugs fixed:
- early dynamic linker handled page size wrong on dynamic pagesize archs
- arm and aarch64 crti/n files had wrong alignment
- m68k POLLWRNORM and POLLWRBAND values were incorrect
- x32 mq ABI was mismatched

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/22547
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 23:37:21 +02:00
Mario Andrés Pérez
6d9b4a4c41 bcm47xx: base-files: hack sysinfo to allow ASU sysupgrades
This old platform(no DTS) is using nvram numeric fields (or "unknown"
string) for its board_name [1]. Allow ASU sysupgrades by preserving
that value in /tmp/sysinfo/boardtype for board-detection/configuration
logic, and derive a canonical board_name from /tmp/sysinfo/model in
the form "vendor,device-variant".

Only a few target profile image names are not consistent in the last
suffix, uniform them.

A few images with (NA) and (ROW) variants are only meant to be
compatible with the upgrade process in the OEM firmware using these
NETGEAR_BOARD_ID and NETGEAR_REGION fields but the images are
compatibles(only if the NETGEAR_BOARD_ID is shared,due to platform
check) [2] (i.e. netgear_wnr3500l).
Add SUPPORTED_DEVICES to one of these variant in order to allow ASU
sysupgrade profile identification.

*Since this target has never implemented fwtool's SUPPORTED_DEVICES
metadata check, there is no risk of breaking forceless sysupgrade with
new board_name values.

[1]: bcm47xx board info https://github.com/gregkh/linux/blob/master/arch/mips/bcm47xx/board.c
[2]: sysupgrade platform check https://github.com/openwrt/openwrt/blob/main/target/linux/bcm47xx/base-files/lib/upgrade/platform.sh

Fixes: 7d10f2c1e851 "brcm47xx: rework model detection"
Fixes: https://github.com/openwrt/asu/issues/419 (Netgear wnr3500L)
Closes: https://github.com/openwrt/asu/issues/878
Fixes: https://github.com/openwrt/asu/issues/1042 (Asus RT-N16)
Fixes: https://forum.openwrt.org/t/luci-attended-sysupgrade-support-thread/230552/115 (Asus RT-N16)

Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21147
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 23:27:34 +02:00
Shiji Yang
59c07e6053 toolchain/gcc: use configure option to disable TM clone registry
GCC 10 added the new configure option --disable-tm-clone-registry[1].
It is useful for reducing code size in embedded systems. Our local hack
patch is no longer needed.

[1] https://gcc.gnu.org/cgit/gcc/commit/?h=releases/gcc-10&id=5a4602805eb3ebddbc935b102481e63bffc7c5e6
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23494
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 23:17:58 +02:00
Taiga Ogawa
024abbcc92 mediatek: add support for Buffalo WSR-2533DHP3
Buffalo WSR-2533DHP3 is a 2.4/5 GHz band 11ac router, based on
MT7622B.

Specification:

- SoC         : MediaTek MT7622B
- RAM         : DDR3 256 MiB
- Flash       : SPI-NAND 128 MiB (Winbond W25N01GVZEIG)
- WLAN        : 2.4/5 GHz 4T4R
  - 2.4 GHz   : MediaTek MT7622B (SoC)
  - 5 GHz     : MediaTek MT7615
- Ethernet    : 5x 10/100/1000 Mbps
  - Switch    : MediaTek MT7531
- LEDs/Keys   : 6x/5x (2x: buttons, 3x: slide-switches)
- UART        : through-hole on PCB (J4)
  - assignment: 3.3V, GND, TX, RX from tri-angle marking
  - settings  : 115200n8
- Power       : 12 VDC, 1.5 A

Flash instruction using factory.bin image:

1. Boot WSR-2533DHP3 with "Router" mode
2. Access to "http://192.168.11.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory.bin image and click update ("更新実行")
   button
4. Wait ~120 seconds to complete flashing

Note:

- This device has 2x OS images on flash. The first one will always be
  used for booting and the secondary is for backup.

Tested:

- initramfs boot
- factory.bin installation from OEM WebUI
- LAN port assignment
- WAN DHCP
- NAT routing
- 2.4 GHz Wi-Fi
- 5 GHz Wi-Fi
- LEDs
- Buttons

MAC Addresses:

LAN    : 58:27:8C:xx:xx:90 (board_data, mac (text))
WAN    : 58:27:8C:xx:xx:90 (board_data, mac (text))
2.4 GHz: 58:27:8C:xx:xx:91
5 GHz  : 58:27:8C:xx:xx:94

Signed-off-by: Taiga Ogawa <zectaiga@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23497
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 23:08:06 +02:00
Fil Dunsky
700008e9d1 ramips: mt76x8: cudy-lt300-v3: fix backup partition offset
Fix typo in backup partition offset: `0xfe000` should be `0xfe0000`.

The incorrect offset caused the partition to be mapped at `0x0fe000`
instead of `0xfe0000`, placing it inside the firmware partition range.

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23511
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 22:58:00 +02:00
Fil Dunsky
e892edd60f ramips: mt76x8: add support for Cudy WR300 v1
Hardware:
 - SoC: MediaTek MT7628AN (MIPS 580MHz)
 - Flash: 8 MiB NOR
 - RAM: 64 MiB DDR2
 - WLAN: 2.4 GHz (MT7628)
 - Ethernet: 1x 10/100 Mbps WAN, 3x 10/100 LAN (MT7628)
 - Buttons: 1x Reset, 1x wps
 - LEDs: Front: 1x Red, 1x White
 - Serial console: unpopulated header, 115200 8n1
 - Power: 12v barrel

MAC addresses:
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN/WAN | d4:0d:ab:xx:xx:x0 | label     |
| WLAN 2g | d4:0d:ab:xx:xx:x1 | label+1   |
+---------+-------------------+-----------+

Migration to OpenWrt:
- Download the RSA-signed intermediate firmware from the Cudy website: `openwrt-ramips-mt76x8-cudy_wr300-squashfs-flash.bin`
- Connect the computer to the LAN and flash the intermediate firmware via the OEM web interface
- OpenWrt is now accessible via 192.168.1.1

Revert to OEM firmware:
- Set up a TFTP server on IP 192.168.1.88 and connect to the WAN port (upper port)
- Provide the Cudy firmware as `recovery.bin` in the TFTP server
- Power on the device and hold the reset button immediately after the first LED blink
- The recovery process will start
- When the recovery process is done, OEM firmware is accessible via 192.168.10.1 again

General information:
- No possibility to load an initramfs image via U-Boot because there is no option to interrupt U-Boot

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23426
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 22:49:17 +02:00
Mathew McBride
2c6e8fd94b
armsr: enable 6.18 as a testing kernel
Allow armsr to be built with kernel 6.18 when
CONFIG_TESTING_KERNEL is set

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:04 +02:00
Mathew McBride
1cc6744ed1
armsr: armv8: enable PCIe controllers for Rockchip
This is to improve compatibility with Rockchip platforms,
especially when NVMe is used as the operating system
block device.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:04 +02:00
Mathew McBride
f3ce149714
armsr: armv8: remove VA_BITS override
In kernel 6.9, arch/arm64 was changed (see Link:) to enable 52-bit
virtual addressing (using "Large Physical Addressing 2"/LPA2).

The kernel will select the appropriate addressing mode
(39/48/52-bit) for the CPU at runtime.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d101654226d64ac0a6928019fbf476b46e9d14b
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:04 +02:00
Mathew McBride
2cb77cf315
kernel: armsr: remove duplicate kconfig between generic and armsr
These were found by running:
comm -12 <(sort target/linux/generic/config-6.18) \
	<(sort target/linux/armsr/config-6.18)

A similar process has been run between armsr/config-6.18
and armsr/armv8/config-6.18, though I have not pruned
the armv8 as much. Once the main branch switches armsr
to 6.18 we can do a more aggressive deduplication.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:04 +02:00
Mathew McBride
968b0b3e28
kernel: armsr: move framebuffer and DRM related options to top-level
The armv8 configuration has more features enabled compared to armv7,
as armv8 is intended to run on a selection of real hardware, while
armsr/armv7 almost always runs only in QEMU.

Some kmod dependency issues were appearing on armv7 builds which
did not appear elsewhere. To minimise these issues, we will
move the framebuffer feature set to the top level of the target.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:03 +02:00
Mathew McBride
f19254e4e9
target: armsr: add new configuration options for 6.18
Set the configuration options that were prompted for
by the new kernel.

ARCH_CIX (Cixtech) has been enabled as their SoCs
have appeared in high end arm64 hardware.

There are also new Arm64 SoCs from Renesas and
Allwinner that should be bootable with the right
firmware stack.

There are minimal changes in the armv7 config,
only CONFIG_PAGE_BLOCK_MAX_ORDER has a unique
setting.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:03 +02:00
Mathew McBride
06a6b90762
kernel: armsr: introduce kmods for 'new' network devices
These devices were prompted by the first configuration cycle
on kernel 6.18:
- sun55i (Allwinner A523) ethernet (dwmac flavour)
- Renesas GBETH Ethernet controller (dwmac flavour)
- Renesas RZN1 MIIC controller / PCS

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:03 +02:00
Mathew McBride
d012cf3caa
kernel: armsr: kmod-fsl-enetc-net: use common library
NXP has introduced an evolved version of the LS1028A ENETC
IP in their new i.MX94/5 family. While the two devices
share a common lineage, they are different enough that
they cannot be implemented in the same driver.

Hence some functions from the LS1028A ENETC driver have been
split into a 'library'.

When a kmod package for the new ENETC (nxp-enetc4) is introduced then
the packaging for the common library will need to be reworked.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:02 +02:00
Mathew McBride
0998624522
kernel: armsr: backport renesas rz-sysc bitfield change
In target/linux/generic/backport-6.18/ we have backported
bitfield changes from 6.19.

This change to drivers/soc/renesas/rz-sysc.c was part
of the same patch series and is needed to resolve
a duplicate definition compile error.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:02 +02:00
Mathew McBride
fa7c148350
kernel: armsr: remove duplicated field_get from rzv2h irqchip
In OpenWrt we have backported changes to bitfield.h
from kernel 6.19.

A backport fix, 9966c8cc987e ("irqchip/renesas-rzv2h:
Prevent TINT spurious interrupt during resume") into
linux-stable/linux-6.18.y modified irq-renesas-rzv2h.c
to include it's own field_get, which does not exist
in the 6.18 branch, causing a compile error.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:02 +02:00
Mathew McBride
35dd5c669e
kernel/armsr: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:02 +02:00
Mathew McBride
661b47aef1
kernel/armsr: create files for v6.18 (from v6.12)
This is an automatically generated commit.

When doing `git bisect`, consider `git bisect --skip`.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/21433
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:12:01 +02:00
INAGAKI Hiroshi
cdf4e36ffd
uboot-ath79: update to v2026.04
Update the uboot-ath79 package to v2026.04 release for ath79 devices.

Tested on:

- NEC Aterm WG600HP (AR9344)
- NEC Aterm WG1400HP (QCA9558)

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22901
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 22:06:34 +02:00
Qingfang Deng
582cb8aba7 uboot-mediatek: fix BT-R320 malformed patch
The Globitel BT-R320 patch has incorrect line numbers and corrupted
ASCII control characters.

Fixes: a3105d3f95 ("mediatek: filogic: add support for Globitel BT-R320")
Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23526
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 21:57:51 +02:00
John Audia
17f5538441 kernel: bump 6.18 to 6.18.33
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.33

Removed upstreamed:
  generic/backport-6.18/742-v7.1-r8152-fix-incorrect-register-write-to-USB_UPHY_XTAL.patch[1]
  generic/backport-6.18/827-v7.0-crypto-inside-secure-eip93-fix-register-definition.patch[2]
  generic/backport-6.18/828-v7.0-crypto-inside-secure-eip93-register-hash-before-auth.patch[3]
  generic/backport-6.18/940-v7.1-net-dsa-realtek-rtl8365mb-fix-mode-mask-calculation.patch[4]
  generic/pending-6.18/928-crypto-eip93-fix-hmac-setkey-algo-selection.patch[5]

All other patches automatically rebased via update_kernel.sh

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=50c601805fe3
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=7ed07c9ce525
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=b6263eb2b188
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=b707f3109f1a
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=fc9310d79fdb

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 21:04:53 +02:00
John Audia
fc6e17e8e5 kernel: bump 6.18 to 6.18.32
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.32

Manually refreshed[1]:
  starfive/patches-6.18/0020-spi-pl022-starfive-Add-platform-bus-register-to-adap.patch
  starfive/patches-6.18/0022-spi-pl022-starfive-fix-the-problem-of-spi-overlay-re.patch
  starfive/patches-6.18/0031-spi-pl022-starfive-fix-controller-deregistration.patch

No patches automatically rebased via update_kernel.sh

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

1. 72360971c1

Co-authored-by: Zhihao Xu <ngc7331@outlook.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 21:04:53 +02:00
Shiji Yang
8f638f9366 kernel: bump 6.12 to 6.12.91
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.91

Remove upstreamed patches:
- airoha/patches-6.12/017-v6.13-net-airoha-Implement-BQL-support.patch[1]
- airoha/patches-6.12/138-v7.1-net-airoha-Add-missing-RX_CPU_IDX-configuration-in-a.patch[2]
- airoha/patches-6.12/149-v7.1-net-airoha-Move-ndesc-initialization-at-end-of-airoh.patch[3]
- generic/backport-6.12/940-v7.1-net-dsa-realtek-rtl8365mb-fix-mode-mask-calculation.patch[5]

Manually rebased patches:
- airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch[1]
- ath79/patches-6.12/800-leds-add-reset-controller-based-driver.patch[4]
- bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch[6]

We also backported four patches to fix perf tool regression:
- generic/backport-6.12/216-01-revert-perf-cgroup-update-metric-leader-in-evlist__e.patch
- generic/backport-6.12/216-02-revert-perf-tool_pmu-fix-aggregation-on-duration_tim.patch
- generic/backport-6.12/216-03-revert-perf-python-add-parse_events-function.patch
- generic/backport-6.12/216-04-revert-perf-tool_pmu-factor-tool-events-into-their-o.patch

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=ca24fcac1daaa5e8a667981d81986a3eb4b9fb04
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=f00037a99bc2332ef59dc85298b98b20af165904
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=d36be272adda7f313e39dd118086955d993bf6a7
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=07d3611389ba7d78b80ea360a42ce32ab2521fbc
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=3354d6c62fd4baa7b32cbd80cc5a8aa3f2bd0656
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.91&id=b84351dcc359667bc952131c1424b692ec83dce2

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23444
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 21:02:13 +02:00
Shiji Yang
979bad2629 kernel: bump 6.12 to 6.12.90
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.90

All patches are automatically refreshed.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23444
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 21:02:00 +02:00
张 鹏
ebacb59a30 ath79: enable link state reporting for eth1 on Qxwlan e750a/e600g/e600gac
Now, that the support for e750a/e600g/e600gac is merged, enable link state
reporting for the Fast Ethernet port attached through the built-in switch,
so it can generate netifd and hotplug events as well, for example -
- to control DHCP client.

Signed-off-by: 张 鹏 <sd20@qxwlan.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 20:24:42 +02:00
Lech Perczak
17203d6752 ath79: cf-ew72: support link state reporting on eth0
Attach swphy0 to eth0 port instead of fixed-link.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 20:24:42 +02:00
Lech Perczak
6276931f42 ath79: report link state on ETH2 port of Mikrotik RBmAP-2nD
Add node for swphy1 in qca953x.dtsi, as it is common part - but make it
disabled, as this one is rarely used in other devices. Enable it in
RBmAP-2nD and attach to eth1 as PHY.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 20:24:42 +02:00
Lech Perczak
e017f0212e ath79: enable link state reporting for eth1 on Ruckus ZF7372
Now, that the support for ZF7372 is merged, enable link state reporting
for the Fast Ethernet port attached through the built-in switch, so
it can generate netifd and hotplug events as well, for example -
- to control DHCP client.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 20:24:42 +02:00
Lech Perczak
e6e71b99c1 ath79: dts: set builtin-switch for SoCs with fixed-link on eth1
Introduce the property from previous commit on the SoCs which use a
fixed 1000FD link to their internal switch. This way, devices which have
a single port attached through it can drop the "fixed-link" node if
needed, and attach proper phy-handle provided by built-in switch to
the port, to report link status information on userspace.

AR7100 is skipped intentionally, because its connection to built-in
switch isn't a fixed-link.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 20:24:42 +02:00
Lech Perczak
c7b04769a7 ath79: ag71xx: use "builtin-switch" property to set link configuration
To support reporting link state of PHYs attached to built-in switch,
add a device tree knob which allows to force 1000Mbps/FD mode,
which is the link mode between eth1 MAC and the on-chip switch, even if
no "fixed-link" node is present. Re-use the "builtin-switch" name
already used in respective MDIO nodes.

This way, a phy-handle property can be added to eth1 node, and devices,
which have a single port attached through the built-in switch,
can report proper link state of that to userspace.

To perform that, one needs to delete the 'fixed-link' node and map the
correct swphy node to 'phy-handle' property. One of those is still
required to be present in the eth1 node.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/9971
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-25 20:24:41 +02:00
Lorenzo Bianconi
e1915674ab
airoha: Introduce support multi-serdes on the same GDM port
EN7581 or AN7583 SoCs support connecting multiple external SerDes (e.g.
Ethernet or USB SerDes) to GDM3 or GDM4 ports via a hw arbiter that
manages the traffic in a TDM manner. As a result multiple net_devices can
connect to the same GDM{3,4} port and there is a theoretical "1:n"
relation between GDM ports and net_devices.

           ┌─────────────────────────────────┐
           │                                 │    ┌──────┐
           │                         P1 GDM1 ├────►MT7530│
           │                                 │    └──────┘
           │                                 │      ETH0 (DSA conduit)
           │                                 │
           │              PSE/FE             │
           │                                 │
           │                                 │
           │                                 │    ┌─────┐
           │                         P0 CDM1 ├────►QDMA0│
           │  P4                     P9 GDM4 │    └─────┘
           └──┬─────────────────────────┬────┘
              │                         │
           ┌──▼──┐                 ┌────▼────┐
           │ PPE │                 │   ARB   │
           └─────┘                 └─┬─────┬─┘
                                     │     │
                                  ┌──▼──┐┌─▼───┐
                                  │ ETH ││ USB │
                                  └─────┘└─────┘
                                   ETH1   ETH2

This series introduces support for multiple net_devices connected to the
same Frame Engine (FE) GDM port (GDM3 or GDM4) via an external hw
arbiter. Please note GDM1 or GDM2 does not support the connection with
the external arbiter.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23481
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-25 12:41:35 +02:00
Lorenzo Bianconi
86ac8c2910
airoha: dts: Enable in-band status for PHY as21xxx
PHY as21xxx used on Airoha EN7581 GDM4 requires in-band status control.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/23481
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-05-25 12:41:34 +02:00
Jan-Henrik Bruhn
89ef8aaf3e
kernel: backport lm63 enhancements
This was a pending patch before, it has been accepted by upstream.

The patch exposes the PWM frequency and temperature hysteresis values for the
LM63 fan controller.

Signed-off-by: Jan-Henrik Bruhn <git@jhbruhn.de>
Link: https://github.com/openwrt/openwrt/pull/23525
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 12:17:01 +02:00
Rosen Penev
96b9e8130f
ramips: remove nvmem-cells compatible
nvmem-layout is used instead of the older nvmem-cells. Seems to be a
copy/paste mistake.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23512
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-25 10:52:14 +02:00