Commit Graph

32792 Commits

Author SHA1 Message Date
Harshal Gohel
f51b54bc95 realtek: rtl931x: Fix traffic on upper ports
* traffic isolation tables are different between rtl930x and rtl931x
* traffic_enable/disable/get/set functions span multiple columns in the
  rtl931x as a result, previous implementation would only enable traffic
  in some ports.

traffic_enable/disable and traffic_set/get should now work on all ports and
not just the initial 32

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19572
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-31 21:59:23 +02:00
Harshal Gohel
656312f9b7 realtek: rtl930x: Fix bringup of SFP modules
The commit d2108c2c58 ("realtek: enhance RTL930x SerDes/PLL/CMU
interoperability") removed a couple of commands for the bringup code.
One of these commands was necessary to bring up SFP modules correctly. This
one can also be found in the RTLSDK [1].

It is currently not 100% clear what this command does. But if it works
similar to the RTL8295 [2,3] (RTL8295_SDS0_ANA_MISC_REG00_REG), we could
assume that it could be the RX_ON and RX_EN bits.

[1] 0e2e45341a/loader/u-boot-2011.12/board/Realtek/switch/sdk/src/dal/longan/dal_longan_sds.c (L1104)
[2] https://svanheule.net/realtek/mango/register/serdes_indrt_access_ctrl
[3] 54589ff0af/sources/rtk-dms1250/include/hal/phy/rtl8295_reg_def.h (L7726)

Reported-by: Jan Fuchs <jf@simonwunderlich.de>
Fixes: d2108c2c58 ("realtek: enhance RTL930x SerDes/PLL/CMU interoperability")
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Co-developed-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19582
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-31 21:57:28 +02:00
Daniel Golle
1de1df1bea 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.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=26f732791f2bcab18f59c61915bbe35225f30136
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-31 19:52:33 +01:00
Coia Prant
fd123d6d13 qualcommax: ipq6018: remove unused reserved memory
Deleted useless content, since it is the same as the mainline kernel

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19300
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-30 23:33:44 +02:00
Chukun Pan
b5acf84635 qualcommax: cleanup device tree for GL-B3000
Remove extra blank lines.
Fixes typo for label and status.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19400
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-30 23:29:21 +02:00
Markus Stockhausen
9b5d055076 realtek: add NAND hardware description to RTL93xx
Include the NAND specs into the DTS. It is unclear which devices
really need it. Keep it disabled for now. As the SoC register area
is defined too small until now, increase the size to an appropriate
value.

If enabled one can see the following log messages (e.g. Linksys
LGS328C or LGS352C).

[    1.206600] spi-nand spi1.0: Macronix SPI NAND was found.
[    1.212795] spi-nand spi1.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[    1.222217] 3 fixed-partitions partitions found on MTD device spi1.0
[    1.229466] OF: Bad cell count for /soc/spi@1a400/flash@0/partitions
[    1.236617] OF: Bad cell count for /soc/spi@1a400/flash@0/partitions
[    1.244164] Creating 3 MTD partitions on "spi1.0":
[    1.249620] 0x000000000000-0x000004000000 : "ubifs"
[    1.423593] 0x000004000000-0x000005e00000 : "firmware"
[    1.738268] mtdsplit_uimage: no uImage found in "firmware"
[    1.744577] 0x000005e00000-0x000007c00000 : "runtime2"

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19583
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-30 23:22:24 +02:00
Markus Stockhausen
41b0340ff0 realtek: backport NAND driver for RTL93xx
RTL93xx devices have a NAND controller built in. Upstream already
has a driver in place. Include it downstream. Activate it in the
RTL93xx builds and disable it for the RTL83xx builds.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19583
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-30 23:22:24 +02:00
Harshal Gohel
d802e6310a realtek: rtl931x: Support enable/disable SMI Polling for SerDes ports
During PHY matching, the SMI polling must be disabled to avoid conflicts
during the complex detection routine. Only after this finished, SMI polling
is allowed again.

This was implemented for all realtek families besides RTL931x.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19603
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-30 12:48:26 +02:00
Harshal Gohel
848887b491 realtek: rtl931x: Fix SDS field modifications
A RTL930x function to read the value from an SDS register must not used on
an RTL931x SoC. Doing it with rtl930x_read_sds_phy() would corrupt the
written results when only parts of the bits are written.

Fixes: 7026084066 ("realtek: Add SDS configuration routines for the RTL93XX platforms")
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19603
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-30 12:48:26 +02:00
Markus Stockhausen
b1597c9ad4 realtek: convert RTL838x toolchain to 24kc
The Realtek RTL838x devices have a MIPS 4Kec core. This has a very simple pipeline.
OpenWrt uses CPU_TYPE:=4kec to honour this and adds a dedicated toolchain with
some GB of extra space. There would be no problem if that toolchain would do what
it is expected to do. Looking at the build process one can see:

during kernel builds:
  ps -ef | grep mtune
  ... -march=mips32r2 -mtune=34kc ...

during package builds
  ps -ef | grep mtune
  ... -mips32r2 -mtune=4kec ...

So the kernel is optimized for the wrong cpu type while the applications fit fine.
Explanation for this is the generic/308-mips32r2_tune.patch. This forces kernel
builds to -mtune=34kc. Nevertheless everything runs fine since years on the RTL838x
targets.

It does not make sense to provide a dedicated 4kec toolchain for this mess. So
change the setup as follows:

- switch CPU type to mips24kc for RTL838x -> This drops one toolchain and saves space
- Add a RTl838x specific mtune=4kec patch -> Builds kernel with the proper setting

Downside is packages will be built with -mtune=24kc. So a look at a simple benchmark
should give insight if this has really a big impact. See numbers attached. To sum it
up in two sentences

- All non RSA benchmarks are within expectation
- RSA benchmarks show large deviations (before and after)

The normal usecase for these switches is definetly not a CPU intensive workload
so this is ok for now.

Before: kernel 6.12 (mtune=34kc) + apps (mtune=4kec)

root@OpenWrt:/usr/bin# ./wolfssl-benchmark
------------------------------------------------------------------------------
 wolfSSL version 5.7.6
------------------------------------------------------------------------------
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
RNG                          5 MiB took 1.426 seconds,    3.507 MiB/s
AES-128-CBC-enc              5 MiB took 1.178 seconds,    4.243 MiB/s
AES-128-CBC-dec              5 MiB took 1.171 seconds,    4.270 MiB/s
AES-192-CBC-enc              5 MiB took 1.307 seconds,    3.824 MiB/s
AES-192-CBC-dec              5 MiB took 1.311 seconds,    3.815 MiB/s
AES-256-CBC-enc              5 MiB took 1.447 seconds,    3.455 MiB/s
AES-256-CBC-dec              5 MiB took 1.421 seconds,    3.519 MiB/s
AES-128-GCM-enc              5 MiB took 3.772 seconds,    1.325 MiB/s
AES-128-GCM-dec              5 MiB took 3.756 seconds,    1.331 MiB/s
AES-192-GCM-enc              5 MiB took 3.939 seconds,    1.269 MiB/s
AES-192-GCM-dec              5 MiB took 3.932 seconds,    1.272 MiB/s
AES-256-GCM-enc              5 MiB took 4.043 seconds,    1.237 MiB/s
AES-256-GCM-dec              5 MiB took 4.033 seconds,    1.240 MiB/s
GMAC Default                 2 MiB took 1.056 seconds,    1.895 MiB/s
AES-128-CTR                  5 MiB took 1.195 seconds,    4.185 MiB/s
AES-192-CTR                  5 MiB took 1.319 seconds,    3.791 MiB/s
AES-256-CTR                  5 MiB took 1.460 seconds,    3.425 MiB/s
AES-CCM-enc                  5 MiB took 2.279 seconds,    2.194 MiB/s
AES-CCM-dec                  5 MiB took 2.273 seconds,    2.200 MiB/s
ARC4                        20 MiB took 1.226 seconds,   16.315 MiB/s
CHACHA                      15 MiB took 1.001 seconds,   14.982 MiB/s
CHA-POLY                    15 MiB took 1.440 seconds,   10.416 MiB/s
3DES                         5 MiB took 4.364 seconds,    1.146 MiB/s
MD5                         25 MiB took 1.034 seconds,   24.173 MiB/s
POLY1305                    35 MiB took 1.015 seconds,   34.467 MiB/s
SHA                         25 MiB took 1.127 seconds,   22.183 MiB/s
SHA-256                     10 MiB took 1.104 seconds,    9.056 MiB/s
SHA-384                      5 MiB took 1.324 seconds,    3.775 MiB/s
SHA-512                      5 MiB took 1.325 seconds,    3.774 MiB/s
SHA-512/224                  5 MiB took 1.319 seconds,    3.791 MiB/s
SHA-512/256                  5 MiB took 1.333 seconds,    3.751 MiB/s
AES-128-CMAC                 5 MiB took 1.145 seconds,    4.366 MiB/s
AES-256-CMAC                 5 MiB took 1.413 seconds,    3.539 MiB/s
HMAC-MD5                    25 MiB took 1.034 seconds,   24.186 MiB/s
HMAC-SHA                    25 MiB took 1.122 seconds,   22.272 MiB/s
HMAC-SHA256                 10 MiB took 1.104 seconds,    9.059 MiB/s
HMAC-SHA384                  5 MiB took 1.329 seconds,    3.762 MiB/s
HMAC-SHA512                  5 MiB took 1.323 seconds,    3.778 MiB/s
PBKDF2                       1 KiB took 1.018 seconds,    1.136 KiB/s
RSA     2048  key gen         1 ops took 15.547 sec, avg 15547.322 ms, 0.064 ops/sec
RSA     3072  key gen         1 ops took 66.131 sec, avg 66131.134 ms, 0.015 ops/sec
RSA     4096  key gen         1 ops took 563.611 sec, avg 563611.230 ms, 0.002 ops/sec
RSA     2048   public       200 ops took 1.403 sec, avg 7.015 ms, 142.542 ops/sec
RSA     2048  private       100 ops took 39.099 sec, avg 390.991 ms, 2.558 ops/sec
DH      2048  key gen        14 ops took 1.009 sec, avg 72.094 ms, 13.871 ops/sec
DH      2048    agree       100 ops took 15.714 sec, avg 157.139 ms, 6.364 ops/sec
ECC   [      SECP256R1]   256  key gen       100 ops took 5.590 sec, avg 55.901 ms, 17.889 ops/sec
ECDHE [      SECP256R1]   256    agree       100 ops took 5.555 sec, avg 55.554 ms, 18.001 ops/sec
ECDSA [      SECP256R1]   256     sign       100 ops took 5.705 sec, avg 57.048 ms, 17.529 ops/sec
ECDSA [      SECP256R1]   256   verify       100 ops took 4.396 sec, avg 43.963 ms, 22.746 ops/sec
CURVE  25519  key gen       320 ops took 1.000 sec, avg 3.127 ms, 319.841 ops/sec
CURVE  25519    agree       400 ops took 1.214 sec, avg 3.034 ms, 329.546 ops/sec
Benchmark complete

After: kernel 6.12 (mtune=4kec) + apps (mtune=24kc)

root@OpenWrt:~# wolfssl-benchmark
------------------------------------------------------------------------------
 wolfSSL version 5.7.6
------------------------------------------------------------------------------
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
RNG                          5 MiB took 1.428 seconds,    3.501 MiB/s
AES-128-CBC-enc              5 MiB took 1.174 seconds,    4.258 MiB/s
AES-128-CBC-dec              5 MiB took 1.162 seconds,    4.301 MiB/s
AES-192-CBC-enc              5 MiB took 1.307 seconds,    3.826 MiB/s
AES-192-CBC-dec              5 MiB took 1.313 seconds,    3.809 MiB/s
AES-256-CBC-enc              5 MiB took 1.432 seconds,    3.491 MiB/s
AES-256-CBC-dec              5 MiB took 1.426 seconds,    3.506 MiB/s
AES-128-GCM-enc              5 MiB took 3.761 seconds,    1.329 MiB/s
AES-128-GCM-dec              5 MiB took 3.748 seconds,    1.334 MiB/s
AES-192-GCM-enc              5 MiB took 3.918 seconds,    1.276 MiB/s
AES-192-GCM-dec              5 MiB took 3.922 seconds,    1.275 MiB/s
AES-256-GCM-enc              5 MiB took 4.019 seconds,    1.244 MiB/s
AES-256-GCM-dec              5 MiB took 4.014 seconds,    1.246 MiB/s
GMAC Default                 2 MiB took 1.052 seconds,    1.900 MiB/s
AES-128-CTR                  5 MiB took 1.189 seconds,    4.205 MiB/s
AES-192-CTR                  5 MiB took 1.315 seconds,    3.804 MiB/s
AES-256-CTR                  5 MiB took 1.455 seconds,    3.436 MiB/s
AES-CCM-enc                  5 MiB took 2.257 seconds,    2.215 MiB/s
AES-CCM-dec                  5 MiB took 2.269 seconds,    2.204 MiB/s
ARC4                        15 MiB took 1.062 seconds,   14.124 MiB/s
CHACHA                      15 MiB took 1.008 seconds,   14.880 MiB/s
CHA-POLY                    15 MiB took 1.461 seconds,   10.266 MiB/s
3DES                         5 MiB took 4.347 seconds,    1.150 MiB/s
MD5                         25 MiB took 1.029 seconds,   24.291 MiB/s
POLY1305                    35 MiB took 1.024 seconds,   34.181 MiB/s
SHA                         25 MiB took 1.115 seconds,   22.418 MiB/s
SHA-256                     10 MiB took 1.154 seconds,    8.664 MiB/s
SHA-384                      5 MiB took 1.345 seconds,    3.718 MiB/s
SHA-512                      5 MiB took 1.343 seconds,    3.723 MiB/s
SHA-512/224                  5 MiB took 1.350 seconds,    3.703 MiB/s
SHA-512/256                  5 MiB took 1.345 seconds,    3.718 MiB/s
AES-128-CMAC                 5 MiB took 1.143 seconds,    4.376 MiB/s
AES-256-CMAC                 5 MiB took 1.405 seconds,    3.559 MiB/s
HMAC-MD5                    25 MiB took 1.027 seconds,   24.334 MiB/s
HMAC-SHA                    25 MiB took 1.112 seconds,   22.490 MiB/s
HMAC-SHA256                 10 MiB took 1.096 seconds,    9.125 MiB/s
HMAC-SHA384                  5 MiB took 1.344 seconds,    3.721 MiB/s
HMAC-SHA512                  5 MiB took 1.347 seconds,    3.712 MiB/s
PBKDF2                       1 KiB took 1.012 seconds,    1.142 KiB/s
RSA     2048  key gen         1 ops took 27.136 sec, avg 27136.046 ms, 0.037 ops/sec
RSA     3072  key gen         1 ops took 39.922 sec, avg 39922.464 ms, 0.025 ops/sec
RSA     4096  key gen         1 ops took 519.483 sec, avg 519482.959 ms, 0.002 ops/sec
RSA     2048   public       200 ops took 1.398 sec, avg 6.989 ms, 143.073 ops/sec
RSA     2048  private       100 ops took 40.412 sec, avg 404.121 ms, 2.475 ops/sec
DH      2048  key gen        14 ops took 1.033 sec, avg 73.764 ms, 13.557 ops/sec
DH      2048    agree       100 ops took 16.401 sec, avg 164.009 ms, 6.097 ops/sec
ECC   [      SECP256R1]   256  key gen       100 ops took 5.583 sec, avg 55.830 ms, 17.912 ops/sec
ECDHE [      SECP256R1]   256    agree       100 ops took 5.555 sec, avg 55.549 ms, 18.002 ops/sec
ECDSA [      SECP256R1]   256     sign       100 ops took 5.703 sec, avg 57.032 ms, 17.534 ops/sec
ECDSA [      SECP256R1]   256   verify       100 ops took 4.203 sec, avg 42.030 ms, 23.792 ops/sec
CURVE  25519  key gen       315 ops took 1.001 sec, avg 3.176 ms, 314.822 ops/sec
CURVE  25519    agree       400 ops took 1.244 sec, avg 3.110 ms, 321.579 ops/sec
Benchmark complete

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19117
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-30 10:34:25 +02:00
Colton Pawielski
9c26d14489 realtek: add support for Vimin VM-S100-0800MS
Vimin VM-S100-0800MS is an 8 port Multi-Gig switch, based on RTL9303.
Ported from XikeStor SKS8300-8X with changes to support different u-boot
build.

Specification:

- SoC             : Realtek RTL9303
- RAM             : DDR3 512 MiB
- Flash           : SPI-NOR 16 MiB (Winbond W25Q128JVSQ)
- Ethernet        : 8x 1/2.5/10 Gbps (SFP+)
- LEDs/Keys (GPIO): 0x/1x
- UART            : "Console" port on the front panel
  - type          : RS-232C
  - connector     : RJ-45
  - settings      : 115200n8
- Power           : AC100-240V 50/60Hz

Flash instruction using initramfs image:

 1. Prepare TFTP server with an IP address "192.168.1.111"
 2. Connect your PC to Port1 on VM-S100-0800MS
 3. Power on VM-S100-0800MS and interrupt boot by pressing Esc
 4. Enable Port1 with the following commands

    rtk 10g 0 fiber1g (or fiber10g if 10GBase-*R, dac300cm for DAC cable)
    rtk ext-devInit 0
    rtk ext-pinSet 2 0

    Note: the last command sets tx-disable to low

 7. Download initramfs image from TFTP server

    tftpboot 0x82000000 <image name>

 8. Boot with the downloaded image

    bootm

 9. On the initramfs image, backup the stock firmware if needed
10. Upload (or download) sysupgrade image to the device
11. Erase "firmware" partition to cleanup JFFS2 of stock FW

    mtd erase firmware

12. Perform sysupgrade with the sysupgrade image
13. Wait ~120 sec to complete flashing

Reverting to stock firmware:
 1. Prepare by downloading the stock firmware. Vimin doesn't have
    the firmware on their website, tested using firmware for shared
    hardware Nicgiga S100-0800S-M.
    Filename: vmlinux-nicgiga-S100-0800S-M-241126EN.bix

 2. Prepare TFTP server with an IP address "192.168.1.111"
 3. Connect your PC to Port1 on VM-S100-0800MS
 4. Power on VM-S100-0800MS and interrupt boot by pressing Esc
 5. Enable Port1 with the following commands

    rtk 10g 0 fiber1g (or fiber10g if 10GBase-*R, dac300cm for DAC cable)
    rtk ext-devInit 0
    rtk ext-pinSet 2 0

    Note: the last command sets tx-disable to low

 6. Download initramfs image from TFTP server

    tftpboot 0x82000000 <image name>

 7. Boot with the downloaded image

    bootm

 8. Under Management -> Firmware -> Upgrade/Backup, upload bix file.
 9. Reboot device

Signed-off-by: Colton Pawielski <cepawiel@mtu.edu>
Link: https://github.com/openwrt/openwrt/pull/19477
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-28 23:37:39 +02:00
Shubham Vishwakarma
c78320c732 qualcommax: ipq50xx: fix tsens node status to enable thermal sensor
The tsens node had an extra space in the "okay" status string, preventing
thermal sensors from being properly registered. This patch corrects it to
enable proper thermal monitoring support.

Signed-off-by: Shubham Vishwakarma <shubhamvis98@fossfrog.in>
Link: https://github.com/openwrt/openwrt/pull/19564
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-28 10:04:02 +02:00
Andrew LaMarche
ed7d62caf2 realtek: add support for Hasivo S1100W-8XGT-SE switch
This commit adds support for Hasivo S1100W-8XGT-SE switch.

Device specification
--------------------
SoC Type:	RTL9303
RAM:		Samsung K4B461646E-BYKO (512MB)
Flash:		Fudan FM25Q128A (16 MB)
Ethernet:	8x 10G via 2x RTL8264 PHY
LEDs:		2 LEDs, 1 power green, 1 system green
Button:		Reset
USB ports:	None
Bootloader:	Realtek U-Boot - U-Boot 2011.12.(3.6.6.55087) (Nov 13 2022 - 14:37:31)
Fan:            2 fans controlled by STC8G1K08 TSOP-20 microcontroller

Note: The fan appears to operate the same irrespective of the running
firmware. The STC9G1K08 is likely operating independently.

To explore the stock vendor firmware, there are 2 avenues to gain root
access. This is not necessary to install OpenWrt, but is here for
reference.

Root access via serial
----------------------
1. ctrl+t
2. password: switchrtk
3. press 's' for shell

Root access via SSH
-------------------
1. ctrl+t
2. password: switchrtk
3. sys command sh
4. log in with your username+password
5. ctrl+t
6. password: switchrtk
7. press 's' for shell

Credit to https://forum.openwrt.org/t/hasivo-switches/151758/174 for rooting instructions.

Installing OpenWrt
------------------
1. Connect to UART. UART requires soldering an RJ45 connector to the
   console footprint on the board. The header is on the top right of
   this image: 4d2ab97fad.jpeg
2. Set computer IP to 192.168.0.111.
3. Enter bootloader by pressing esc key during boot.
4. Enter password 'Hs2021cfgmg'.
5. Type 'XXXX'.
6. setenv bootcmd 'rtk network on; bootm 0xb4300000'
7. saveenv
8. rtk network on
9. tftpboot 0x84f00000 <openwrt-initramfs>
10. bootm 0x84f00000

Now you can copy over the sysupgrade image and install.

Credit to
https://forum.openwrt.org/t/hasivo-switches/151758/22?u=andrewjlamarche
for u-boot console access instructions.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17137
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 18:50:03 +02:00
Jan Hoffmann
6fa1775348 kernel: mtdsplit_h3c_vfs: return 0 for non-fatal errors
Since Linux 6.7, introduced with commit 5c2f7727d437 ("mtd: mtdpart:
check for subpartitions parsing result"), errors during subpartition
parsing cause all MTD partitions to be torn down.

Since the current mtdsplit driver for devices using H3C VFS returns
-EINVAL if it does not find a file system containing an OpenWrt image,
this makes initial installation of OpenWrt impossible.

Work around this by returning 0 when the file system contains unexpected
data. Also print a message in this case to show what is going on.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19475
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 18:24:50 +02:00
Rosen Penev
4f716eb43a apm821xx: sata: refresh config
ran with make kernel_oldconfig

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19481
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 18:22:31 +02:00
Rosen Penev
4e92e34244 apm821xx: run through kernel_oldconfig
IDPF goes away and some rust symbol appears.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19481
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 18:22:31 +02:00
Rosen Penev
3d8a13413f apm821xx: fix sata config
The initial + looks like a copy/paste error.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19481
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 18:22:31 +02:00
Donghyun Ko
0e4a69e340 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

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19497
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 17:20:04 +02:00
Jan Hoffmann
ec69736270 realtek: implement polling for hardware counters
Maintain 64 bit counters by polling the hardware counters and adding up
the differences. Polling needs to happen just often enough to catch
every single overflow.

As we now have non-overflowing counters now, we can safely calculate
composite counters without getting weird results on overflow. Use this
to follow RFC 3635 more accurately by mapping the hardware counters to
the proper counters, while taking into account hardware quirks as best
as possible.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/18415
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 16:46:20 +02:00
Jan Hoffmann
fa63a5365e realtek: implement get_stats64
By default, the network interface stats are based on software counters,
which only consider traffic from and to the CPU. Implementing the
get_stats64 method allows to report the full hardware counters instead.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/18415
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 16:46:20 +02:00
Jan Hoffmann
e27e695978 realtek: use more specific APIs for ethtool stats where possible
The kernel offers several alternatives to get_ethtool_stats which allow
to report some stats in a more structured way. Use them where possible.

Ideally, we should follow RFC 3635 to translate the hardware counters to
the supported frame and octet counters. However, this is not feasible,
as some of the counters are 32-bit only (so it would produce incorrect
results as soon as one of them overflows).

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/18415
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 16:46:19 +02:00
Jan Hoffmann
831c1cd864 realtek: fix ethtool stats for RTL839x and RTL930x
The MIB registers contain different stats depending on the SoC, and for
RTL930x some stats are in an additional register.

Create separate MIB descs for each SoC to implement this. Also make
reading 64-bit counters more robust, by protecting against an overflow
of the lower 32 bits during the read.

RTL931x remains unsupported, because it uses a table and thus requires
a separate implementation.

While we are at it, rename structs/functions to use the rtldsa prefix.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/18415
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 16:46:19 +02:00
Hauke Mehrtens
c2066fcb95 gemini: Remove kmod-md-multipath dependency
kmod-md-multipath was removed in kernel 6.12, remove the dependency here
too.

This fixes the build of the gemini target.

Fixes: d12a603de5 ("kernel: kmod-md-multipath: Depend on kernel 6.6")
Link: https://github.com/openwrt/openwrt/pull/19532
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-27 01:35:36 +02:00
Markus Stockhausen
21d3722c40 realtek: don't disable MIPS counter on secondary VPEs
After observation that timer interrupt 7 always fires on secondary VPEs
the counter was disabled in the startup code. This is a bad idea when
building the kernel with jitterentropy. To generate entropy it makes use
of function random_get_entropy(). On MIPS architecture this simply reads
the counter register on the current core. With a disabled counter it
always returns the same value and the entropy initialization stalls the
core if it runs on a secondary VPE. See backtrace

[   21.736246] rcu: INFO: rcu_sched self-detected stall on CPU
[   21.736246] rcu: INFO: rcu_sched self-detected stall on CPU
[   21.748594] rcu:     1-....: (2100 ticks this GP) idle=064c/1/0x40000002 softirq=7/7 fqs=1050
[   21.748594] rcu:     1-....: (2100 ticks this GP) idle=064c/1/0x40000002 softirq=7/7 fqs=1050
[   21.766871] rcu:     (t=2102 jiffies g=-1187 q=25 ncpus=2)
[   21.766871] rcu:     (t=2102 jiffies g=-1187 q=25 ncpus=2)
[   21.778429] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.39 #482
[   21.778429] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.39 #482
[   21.778461] Hardware name: Zyxel GS1900-48
[   21.778461] Hardware name: Zyxel GS1900-48
...
[   21.779757] [<8029b968>] jent_measure_jitter+0xc8/0x10c
[   21.779757] [<8029b968>] jent_measure_jitter+0xc8/0x10c
[   21.779779] [<8029b9e8>] jent_gen_entropy+0x3c/0xb0
[   21.779779] [<8029b9e8>] jent_gen_entropy+0x3c/0xb0
[   21.779800] [<8029bcc0>] jent_entropy_collector_alloc+0x104/0x118
[   21.779800] [<8029bcc0>] jent_entropy_collector_alloc+0x104/0x118
[   21.779822] [<8029bd6c>] jent_entropy_init+0x4c/0x2ec
[   21.779822] [<8029bd6c>] jent_entropy_init+0x4c/0x2ec
[   21.779844] [<8086f184>] jent_mod_init+0x58/0xac
[   21.779844] [<8086f184>] jent_mod_init+0x58/0xac
[   21.779865] [<80100200>] do_one_initcall+0x70/0x250
[   21.779865] [<80100200>] do_one_initcall+0x70/0x250
[   21.779883] [<8085c018>] kernel_init_freeable+0x1f0/0x280
[   21.779883] [<8085c018>] kernel_init_freeable+0x1f0/0x280
[   21.779905] [<8067cba4>] kernel_init+0x20/0xb0
[   21.779905] [<8067cba4>] kernel_init+0x20/0xb0
[   21.779926] [<80101158>] ret_from_kernel_thread+0x14/0x1c
[   21.779926] [<80101158>] ret_from_kernel_thread+0x14/0x1c

This bit of entropy is helpful on these low end devices. Reenable the
counter and simply disable the interrupt.

Fixes: b7aab19585 ("realtek: SMP handling of R4K timer interrupts")
Reported-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19499
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 15:51:23 +02:00
Markus Stockhausen
a3bfb67072 realtek: mdio: RTL838x: move functions over to bus
The mdio bus functions are still split between ethernet and dsa driver.
Before moving everthing out to a separate mdio driver we decided to
collect everything in the ethernet driver with the rtmdio prefix.
Take over the remaining RTL838x functions.

Remark: This is more or less a copy/paste with function renaming. As
there are still some consumers in the DSA driver the definitions and
inclusions must be flipped.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19484
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 15:46:31 +02:00
INAGAKI Hiroshi
6e8042ed97 mediatek: add missing #address/size-cells for ELECOM WRC-X3000GS3
Add missing `#address-cells = <1>;` and `#size-cells = <0>;` properties
to `&eth` and `&wifi` nodes to resolve the following warnings.

```
../dts/mt7981b-elecom-wrc-x3000gs3.dts:114.3-13: Warning (reg_format): /soc/ethernet@15100000/mac@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-elecom-wrc-x3000gs3.dts:129.3-13: Warning (reg_format): /soc/ethernet@15100000/mac@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-elecom-wrc-x3000gs3.dts:372.3-13: Warning (reg_format): /soc/wifi@18000000/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-elecom-wrc-x3000gs3.dts:378.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-elecom-wrc-x3000gs3.dts:112.15-125.4: Warning (avoid_default_addr_size): /soc/ethernet@15100000/mac@0: Relying on default #address-cells value
../dts/mt7981b-elecom-wrc-x3000gs3.dts:112.15-125.4: Warning (avoid_default_addr_size): /soc/ethernet@15100000/mac@0: Relying on default #size-cells value
../dts/mt7981b-elecom-wrc-x3000gs3.dts:127.15-136.4: Warning (avoid_default_addr_size): /soc/ethernet@15100000/mac@1: Relying on default #address-cells value
../dts/mt7981b-elecom-wrc-x3000gs3.dts:127.15-136.4: Warning (avoid_default_addr_size): /soc/ethernet@15100000/mac@1: Relying on default #size-cells value
../dts/mt7981b-elecom-wrc-x3000gs3.dts:371.9-375.4: Warning (avoid_default_addr_size): /soc/wifi@18000000/band@0: Relying on default #address-cells value
../dts/mt7981b-elecom-wrc-x3000gs3.dts:371.9-375.4: Warning (avoid_default_addr_size): /soc/wifi@18000000/band@0: Relying on default #size-cells value
../dts/mt7981b-elecom-wrc-x3000gs3.dts:377.9-381.4: Warning (avoid_default_addr_size): /soc/wifi@18000000/band@1: Relying on default #address-cells value
../dts/mt7981b-elecom-wrc-x3000gs3.dts:377.9-381.4: Warning (avoid_default_addr_size): /soc/wifi@18000000/band@1: Relying on default #size-cells value
```

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19530
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 15:41:23 +02:00
Markus Stockhausen
ded18a3683 realtek: dsa: enhance pcs_get_state() for RTL83xx
Currently the SerDes driven SFP ports give strange ethtool readings
on RTL83xx devices. Especially duplex and speed are shown even if
no link is up and running. That leads to confusion because the MAC
reports arbitrary values.

Enhance the readout by refactoring the pcs_get_state() function.
Calculate speed/duplex/pause only if link is detected. Additionally
add reporting of 10G for SFP+ on RTL839x.

ethtool for empty SFP cage before/after

root@OpenWrt:~# ethtool lan9
Settings for lan9:
        Supported ports: [ MII ]
        Supported link modes:   1000baseT/Full
                                1000baseKX/Full
                                1000baseX/Full
                                1000baseT1/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseT/Full
                                1000baseKX/Full
                                1000baseX/Full
                                1000baseT1/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 10Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Link detected: no

root@OpenWrt:~# ethtool lan9
Settings for lan9:
        Supported ports: [ MII ]
        Supported link modes:   1000baseT/Full
                                1000baseKX/Full
                                1000baseX/Full
                                1000baseT1/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseT/Full
                                1000baseKX/Full
                                1000baseX/Full
                                1000baseT1/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: Unknown!
        Duplex: Unknown! (255)
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Link detected: no

ethtool with inserted but NOT connected 1G module before/after

root@OpenWrt:~# ethtool lan9
Settings for lan9:
        Supported ports: [ FIBRE ]
        Supported link modes:   1000baseX/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseX/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: FIBRE
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Link detected: no

root@OpenWrt:~# ethtool lan9
Settings for lan9:
        Supported ports: [ FIBRE ]
        Supported link modes:   1000baseX/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseX/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: Unknown!
        Duplex: Unknown! (255)
        Port: FIBRE
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Link detected: no

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19524
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-26 13:23:42 +02:00
Hauke Mehrtens
88c7803197 kernel: Reorder kernel configuration
This was done by running:
./scripts/kconfig-reorder.sh

Link: https://github.com/openwrt/openwrt/pull/19480
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 01:11:21 +02:00
Hauke Mehrtens
3c246f6d03 x86: Activate CONFIG_DRM_ACCEL
This allows building the kmod-drm-ivpu which depends on
CONFIG_DRM_ACCEL. This module is x86_64 only.

Link: https://github.com/openwrt/openwrt/pull/19480
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 01:11:21 +02:00
Hauke Mehrtens
27643ebfa9 bcm27xx: Make kernel modules depend on target
The kmod-rpi-panel-attiny-regulator and kmod-rpi-panel-7inch-touchscreen
are included in target modules.mk file, they should also depend on the target,
otherwise they can be selected from every target.

Fix the AutoProbe for panel-raspberrypi-touchscreen too.

Link: https://github.com/openwrt/openwrt/pull/19480
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 01:11:21 +02:00
Hauke Mehrtens
da0736c16f armsr: Make kernel modules depend on target
The kmod-imx2-wdt, kmod-imx7-ulp-wdt and kmod-wdt-sp805 are included in
target modules.mk file, they should also depend on the target, otherwise
they can be selected from every target.

Link: https://github.com/openwrt/openwrt/pull/19480
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 01:11:21 +02:00
Hauke Mehrtens
e9ae1f678c apm821xx: kmod-ata-dwc: Make kernel module depend on target
The kmod-ata-dwc is included in target modules.mk file, it should also
depend on the target, otherwise it can be selected from every target.

Link: https://github.com/openwrt/openwrt/pull/19480
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 01:11:21 +02:00
Hauke Mehrtens
5a04f17857 kernel: kmod-phy-bcm7xxx: Add driver
The CONFIG_BCMGENET kernel config option will select this driver. Add
the driver to the kernel config menu and make kmod-bcmgenet depend on
it.

Link: https://github.com/openwrt/openwrt/pull/19480
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 01:11:20 +02:00
Leo Barsky
b6276e33eb kernel: bump 6.12 to 6.12.40
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.40
Removed upstreamed patches:
   generic/pending-6.12/680-net-fix-TCP-UDP-fraglist-GRO.patch
   generic/pending-6.12/802-nvmem-u-boot-env-align-endianness-of-crc32-values.patch
1- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.40&id=7c532f222361191fe228e54c5d3e0026fef8a5a0
2- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.40&id=c29a2328af96338d327cd851803338423c6f07a1
All other patches auto-refreshed.

Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19514
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 01:00:09 +02:00
Leo Barsky
05d344cb2c 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.

Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19514
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-26 01:00:09 +02:00
Jan Hoffmann
15a4d621d8 realtek: actually enable 2500Base-X
The SerDes setup function needs to be called to make 2500Base-X work.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19517
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-25 23:52:49 +02:00
Markus Stockhausen
19bc6e8c7f realtek: phy: add basic RTL8218B setup
On some devices (like ZyXEL GS1920) the phys are not initialized and patched
by the bootloader. This is done through the vendor SDK when the software
starts. To make these devices usable too, provide the most basic setup
sequence for the RTL8218B.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19491
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-24 00:44:02 +02:00
Markus Stockhausen
9533e2e574 realtek: dsa: relax capability checks for 2.5G modes
The driver currently uses two checks to verify the capabilities. These
are ..._phylink_get_caps() and ..._pcs_validate(). For RTL930x these
must allow 2.5G modes. Enhance that as follows:

Add 2500BASEX to phylink_get_caps(). Sort the interfaces alphabetically
and rename the function to the new prefix. IMPORTANT REMARK! Until now
this function allowed the XGMII mode (10G only parallel interface) that
was somehow mixed with the Realtek proprietary mode XSGMII (10G SGMII).
Remove it to avoid further confusion.

Looking upstream pcs_validate() is used less and less. There are only
2 consumers left in 6.16 and the calling location reads:

	/* Validate the link parameters with the PCS */
	if (pcs->ops->pcs_validate) {
		ret = pcs->ops->pcs_validate(pcs, supported, state);
		if (ret < 0 || phylink_is_empty_linkmode(supported))
			return -EINVAL;

		/* Ensure the advertising mask is a subset of the
		 * supported mask.
		 */
		linkmode_and(state->advertising, state->advertising,
			     supported);
	}

There is no need for this additional check. Drop the functions.

Tested-by: Jan Hoffmann <jan@3e8.eu>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19429
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-24 00:35:00 +02:00
Hauke Mehrtens
e53c53b7d5 mediatek: Remove modules.builtin file
This file should be generated automatically at runtime by the kernel
build system.

Link: https://github.com/openwrt/openwrt/pull/19473
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-22 00:01:38 +02:00
Marcin FM
28a88ff7e6 ramips: EAP615-Wall v1: fix bootloop by reducing LZMA dictionary
Fix bootloop on TP-Link EAP615-Wall v1 by reducing LZMA dictionary
size. Before this patch and after an upgrade to kernel 6.12 this
device couldn't boot a kernel because of an error: "lzma compressed:
uncompress error 1".

I have chosen -d22 as dictionary size as suggested by @namiltd.
The usual sizes for problematic devices are -d16, -d20, -d22. I
have confirmed with my tests that this device can boot with a value
up to -d27, but there is no size benefit from values above -d21,
therefore -d22 is good enough.

See also: https://github.com/openwrt/openwrt/issues/19403

Signed-off-by: Marcin FM <marcin@ipv8.pl>
Link: https://github.com/openwrt/openwrt/pull/19433
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-21 23:56:32 +02:00
Donghyun Ko
aea6d1bf5e mediatek: filogic: add support for ipTIME AX3000Q
Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3GHz
- RAM       : DDR3 256Mbytes, ESMT M15T2G16128A
- Flash     : 128Mbytes NAND Flash, ESMT F50L1G41LB
- WLAN      : MediaTek MT7976CN dual-band Wi-Fi 6
  - 2.4GHz  : b/g/n/ax, MU-MIMO
  - 5GHz    : a/n/ac/ax, MU-MIMO
- Ethernet  : MediaTek MT7531AE
  - LAN     : 10/100/1000 Mbps x4
  - WAN     : 10/100/1000 Mbps x1
- UART      : 1x4 pin header on PCB
  - [J6] TX, RX, GND, 3.3V (115200, 8N1)
- Buttons   : WPS, Reset
- LEDs      : 1x CPU (Amber)
              1x Wi-Fi 5GHz (Amber)
              1x Wi-Fi 2.4GHz (Amber)
              1x WAN activity (Amber)
              4x LAN activity (Amber)
- Power     : 12VDC, 1A (Center positive polarity)

MAC address
-----------
+-----------+-------------------+-----------------------+
| Interface | MAC               | Algorithm             |
+-----------+-------------------+-----------------------+
| WLAN 2.4G | B0:38:6C:48:xx:xx | label                 |
| WLAN 5G   | B2:38:6C:48:xx:xx | label with LA Bit Set |
| WAN       | B0:38:6C:48:xx:xx | label + 1             |
| LAN       | B0:38:6C:48:xx:xx | label + 3             |
+-----------+-------------------+-----------------------+
The WLAN 2.4G MAC was found in 'Factory' partition, 0x4

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. Replace a file in the OEM recovery software with the file from step 2
7. Run the OEM recovery software and follow the instructions
8. Wait for the router to boot from *squashfs-factory.bin

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19368
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-21 23:52:56 +02:00
Grzegorz Sterniczuk
c4586ceae8 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.

Fixes: #18844
Signed-off-by: Grzegorz Sterniczuk <grzegorz@sternicz.uk>
Link: https://github.com/openwrt/openwrt/pull/19398
[Add patch header]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-21 23:39:20 +02:00
Aleksander Jan Bajkowski
7b6dcaf37c mediatek: filogic: increase nand flash speed on Redmi AX6000
This commit increases the SPI bus frequency from 20 to 52 MHz. Reduces boot
time by 2s. Below is a performance comparison.

Before:
root@OpenWrt:~# dd if=/dev/mtd5 of=/dev/null bs=10M count=1 status=progress
10485760 bytes (10 MB, 10 MiB) copied, 2 s, 5.8 MB/

After:
root@OpenWrt:~# dd if=/dev/mtd5 of=/dev/null bs=10M count=1 status=progress
10485760 bytes (10 MB, 10 MiB) copied, 1 s, 9.7 MB/s

Taken from PR #18752 as each device should be tested individually, so I have
created a separate PR for this.

Signed-off-by: Sky Huang <SkyLake.Huang@mediatek.com>
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/19439
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-21 23:15:50 +02:00
Daniel Golle
8097cbc14a mediatek: disable MediaTek SoC Information (mtk-socinfo) driver
With the switch to Linux 6.12 this driver was enabled by accident.
However, it doesn't support any of the router SoCs but is meant to be
used only by the smartphone, tablet and chromebook SoCs.
Disable the driver again to silence a kernel error logline during boot.

Fixes: 0a0f5f94ec ("mediatek: mt7623: update config-6.12")
Fixes: 029b7ed9c4 ("mediatek: mt7622: update config-6.12")
Reported-by: https://aparcar.org/openwrt-tests/119/
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-21 14:27:11 +01:00
Hauke Mehrtens
66c34c6f4a malta: drop 6.6 support
Drop configs and patches for Linux 6.6.

Link: https://github.com/openwrt/openwrt/pull/19414
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 23:37:37 +02:00
Hauke Mehrtens
472ae5d826 malta: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Link: https://github.com/openwrt/openwrt/pull/19414
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 23:37:37 +02:00
INAGAKI Hiroshi
ccaa4933b1 mediatek: add support for ELECOM WRC-X3000GS3
ELECOM WRC-X3000GS3 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on
MT7981B.

Specification:

- SoC             : MediaTek MT7981B
- RAM             : DDR3 512 MiB (Winbond W634GU6QB-09)
- Flash           : SPI-NOR 128 MiB (Winbond W25N01GVZEIG)
- WLAN            : 2.4/5 GHz 2T2R (MediaTek MT7981B (SoC))
- Ethernet        : 5x 10/100/1000 Mbps
  - wan (phy)     : MediaTek MT7981B (SoC)
  - lan (switch)  : MediaTek MT7531A
- LEDs/Keys (GPIO): 8x/4x
- UART            : through-hole on PCB (J500)
  - assignment    : 3.3V, TX, RX, NC, GND from tri-angle marking
  - settings      : 115200n8
- Power           : 12 VDC, 1 A (Max. 12.8 W)

Flash instruction using factory.bin image:

1. Boot WRC-X3000GS3 in router mode normally
2. Access to the WebUI ("http://192.168.2.1/") on the device and open
   the firmware update page ("ファームウェア更新")
3. Select the OpenWrt factory.bin image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing

Switching to the stock firmware:

1. Load the elecom.sh script

   . /lib/upgrade/elecom.sh

2. Check the current index of firmware partition

   mstc_rw_bootnum

3. Set the bootnum to opposite value between 1 and 2

   mstc_rw_bootnum <value>

   example:

   - step2 returned "1": mstc_rw_bootnum 2

   - step2 returned "2": mstc_rw_bootnum 1

4. Reboot

Notes:

- ELECOM sells (or sold) multiple models as AX3000 class with different
  hardwares:

  - WRC-X3000GS(N) : Lantiq(Intel) GRX350/GRX550
  - WRC-X3000GS(T)2: Qualcomm IPQ5018
  - WRC-X3000GS3   : MediaTek MT7981B

MAC Addresses:

LAN   : 38:97:A4:xx:xx:40 (Factory, 0x2A(hex)/Ubootenv,"ethaddr"(text))
WAN   : 38:97:A4:xx:xx:43 (Factory, 0x24(hex))
2.4GHz: 38:97:A4:xx:xx:41 (Factory, 0x4 (hex))
5GHz  : 38:97:A4:xx:xx:42 (Factory, 0xA (hex))

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18976
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 16:12:57 +02:00
INAGAKI Hiroshi
76143aec09 mediatek: filogic: enable mstc-boot mtdsplit parser
Enable mstc-boot mtdsplit parser on mediatek/filogic subtarget to handle
dual-boot on ELECOM WRC-X3000GS3.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18976
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 16:12:57 +02:00
INAGAKI Hiroshi
ddf7d63e94 generic: add mstc-boot mtdsplit parser
Add new mtdsplit parser "mstc-boot" for the devices manufactured by MSTC
(Mitra Star Technology Corp.). This is necessary to handle dual-boot on
those devices.
This parser splits kernel+rootfs or only rootfs(or UBI) based on the
image in the firmware partition or pre-defined partitions in dts, and
"bootnum" value in the "persist" (or "working") partition.

Note: "bootnum" is used for switching active firmware partitions on the
      devices manufactured by MSTC and '1' or '2' are used on most
      devices. But some devices use '0' or '1'. (example: I-O DATA
      WN-DEAX1800GR)

Sequence:

1. obtain "bootnum" value
2. child nodes exsist (regardless of bootnum)
   -> fixed partitions
      (active parts  : without bootnum (ex.: "kernel", "rootfs")
       inactive parts: with bootnum (ex.: "kernel2", "rootfs2"))
3. current partition is active (dt bootnum == mtd bootnum)
   -> image-based partitions

Device Tree:

- common

  - mstc,bootnum  : "bootnum" value for the mtd partition (0/1/2)
  - mstc,persist  : phandle of "persist" partition containing "bootnum"
                    value

- fixed partitions

  - #address-cells: indicate cell count of address of child nodes (1)
  - #size-cells   : indicate cell count of size of child nodes (1)
  - (child nodes) : define the child partitions
    - reg         : define the offset and size
    - label-base  : define the base name of the partition
      - (example) : base:"kernel"->"kernel"(active)/"kernel2"(inactive)

  example:

  partition@3c0000 {
  	compatible = "mstc,boot";
  	reg = <0x3c0000 0x3240000>;
  	label = "firmware1";
  	mstc,bootnum = <1>;
  	mstc,persist = <&mtd_persist>;
  	#address-cells = <1>;
  	#size-cells = <1>;

  	partition@0 {
  		reg = <0x0 0x800000>;
  		label-base = "kernel";
  	};

  	partition@800000 {
  		reg = <0x800000 0x2a40000>;
  		label-base = "ubi";
 	};
  };

- image-based partitions

  (no additional properties)

  example:

  partition@5a0000 {
  	compatible = "mstc,boot";
  	label = "firmware1";
  	reg = <0x5a0000 0x3200000>;
  	mstc,bootnum = <1>;
  	mstc,persist = <&mtd_persist>;
  };

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18976
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 16:12:56 +02:00
Shiji Yang
e0d3c307f9 ipq40xx: enable 6.12 testing kernel
The 6.12 testing kernel for ipq40xx target is ready now.

Tested on SKSpruce WIA3300-20.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
ac69d0510a ipq40xx: migrate wifi configuration device paths for 6.12 kernel
The device tree PCIe host node name has been changed in the new
6.12 kernel[1]. Hence we have to update the wifi device path to
make sure it can work properly.

This script is based on:
target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/ieee80211/05-wifi-migrate

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=07299ba2e7d98045e6b522f7c5b97f402b15bc82
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
8d2744dfe5 ipq40xx: dts: fix incorrect PCIe bus number
On the ipq40xx platform, the bus range is 1 - 255. Therefore, bus
number 0 is clearly incorrect. Change the bus number to 1, just
like other ipq40xx devices. This patch fixes the following dtc
warnings on 6.12 kernel:

qcom-ipq4019.dtsi:476.5-29: Warning (pci_device_bus_num): /soc/pcie@40000000/pcie@0/wifi@0,0:bus-range: PCI bus number 0 out of range, expected (1 - 255)
qcom-ipq4019.dtsi:476.5-29: Warning (pci_device_bus_num): /soc/pcie@40000000/pcie@0/wifi@0,0:bus-range: PCI bus number 0 out of range, expected (1 - 255)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
cfb15d7f83 ipq40xx: dts: correct PCIe device node name
According to the dtc source code, the PCIe device node unitname
needs to follow the following naming rules:

```
reg = fdt32_to_cpu(cells[0]);
dev = (reg & 0xf800) >> 11;
func = (reg & 0x700) >> 8;
snprintf(unitname, sizeof(unitname), "%x,%x", dev, func);
```

These devices' reg cell[0] is equal to 0x10000, hence the correct
node unitname should be "0,0". This patch fixes the following dtc
warnings for 6.12 kernel:

qcom-ipq4019-map-ac2200.dts:211.11-216.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-rt-ac42u.dts:315.11-319.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-fritzbox-7530.dts:318.10-321.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/dsl@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-fritzrepeater-3000.dts:239.11-245.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-gl-b2200.dts:340.11-348.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-ea8300.dts:97.11-102.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-mr8300.dts:83.11-88.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-whw03v2.dts:234.11-241.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4029-insect-common.dtsi:282.11-287.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4029-insect-common.dtsi:282.11-287.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-lbr20.dts:488.11-495.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-orbi.dtsi:317.11-322.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-orbi.dtsi:317.11-322.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-orbi.dtsi:317.11-322.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-orbi.dtsi:317.11-322.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-orbi.dtsi:317.11-322.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-orbi.dtsi:317.11-322.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-a62.dts:218.11-225.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-pa2200.dts:198.11-205.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-mf18a.dts:478.11-484.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"
qcom-ipq4019-mf289f.dts:429.11-435.4: Warning (pci_device_reg): /soc/pcie@40000000/pcie@0/wifi@1,0: PCI unit address format error, expected "0,0"

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
08e2fdc17d ipq40xx: dts: compatibility changes for 6.12 kernel
- Remove duplicate PCIe bridge. A default bridge node has been
  added upstream.
- Do not refer to the qca807x node. This node label has been
  removed. We can disable the qca807x phy in mdio node.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
fb94b01f7f ipq40xx: add PCIe bridge node reference label for ipq4019.dtsi
Add a bridge node label so that we can insert PCIe peripheral nodes.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
334a4322dd ipq40xx: tag_oob/ipqess: update DSA APIs
In the new 6.12 LTS kernel, master/slave keywords were replaced
by conduit/user.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=6ca80638b90cec66547011ee1ef79e534589989a
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
cdf2e21e82 ipq40xx: refresh 6.12 kernel config files
Manually selected symbols:

- Enable ARCH_QCOM_RESERVE_SMEM
  Reserve SMEM at the beginning of RAM

- Enable QCOM_TZMEM_MODE_GENERIC
  TrustZone interface memory allocator mode

- Disable QCOM_QSEECOM
  Qualcomm QSEECOM interface driver

- Disable IPQ_NSSCC_QCA8K
  QCA8K(QCA8386 or QCA8084) NSS Clock Controller

- Disable MSM_IOMMU
  MSM IOMMU Support

- Disable INTERCONNECT_QCOM
  Qualcomm Network-on-Chip interconnect drivers

All other symbols are automatically refreshed by
`make kernel_oldconfig CONFIG_TARGET=target` and
`make kernel_oldconfig CONFIG_TARGET=subtarget`.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
230c6f44ab ipq40xx: refresh 6.12 kernel patches
Remove upstreamed:
004-v6.7-firmware-qcom_scm-disable-SDI-if-required.patch [1]
709-ARM-dts-qcom-ipq4019-add-QCA8075-PHY-Package-nodes.patch [2]

Manually rebased:
422-firmware-qcom-scm-fix-SCM-cold-boot-address.patch
701-net-dsa-add-out-of-band-tagging-protocol.patch
850-soc-add-qualcomm-syscon.patch
900-PCI-qcom-add-hack-compatible-for-ipq4019-Lantiq-DSL.patch
910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=ff4aa3bc98258a240b9bbab53fd8d2fb8184c485
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=2338f4315f16b937e924ff679b91bb8c0ab53f25
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
b040c74542 ipq40xx: restore kernel 6.6 arch files
Copy arch directory from 6.12 kernel to restore the default
6.6 device tree files.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
de4ec9a733 ipq40xx: restore kernel 6.6 config files and patches
Copy patches and kernel configs from 6.12 kernel to restore the
default 6.6 kernel support files.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
6f23dd9336 ipq40xx: move arch files to 6.12 directory
This is a preparation for 6.12 kernel support. It can help us
track the device tree files history by using the Git tool.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
2c97a041c4 ipq40xx: rename patchset and kernel configs to 6.12
This is a preparation for 6.12 kernel support. It can help us
track the patches and Kconfig history by using the Git tool.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:03 +02:00
Shiji Yang
054ab50935 ipq40xx: refresh kernel symbol configs
This is a preparation for introducing the 6.12 kernel support.
All configs are automatically refreshed. In theory, they will
generate the same .config files in the kernel build directory
as before.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:02 +02:00
Shiji Yang
855a8942e6 ipq40xx: qca8k-ipq4019: add missing header platform_device.h
The prototype of `devm_platform_ioremap_resource_byname()` was defined
in `linux/platform_device.h`.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:02 +02:00
Shiji Yang
2a31e006d6 ipq40xx: ipqess: remove explicit phylink_generic_validate() references
The phylink_generic_validate() can be automatically called if
phylink_validate method was not given in the switch operations.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=5938bce4b6e2146d5194badd7ecf0acc6bf877fc
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:02 +02:00
Shiji Yang
1f7514bb92 ipq40xx: gcc-ipq4019: mark qcom_find_freq_close() function as static
This function is only used by the current source file gcc-ipq4019.c.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:02 +02:00
Shiji Yang
875c3ba079 ipq40xx: dts: fix dtc warnings for MikroTik hAP ac3 LTE6
Correct the mtd partition reg property size to fix the following
dtc warnings:

qcom-ipq4019-hap-ac3-lte6-kit.dts:202.5-25: Warning (reg_format): /soc/spi@78b5000/flash@0/partitions/partition@0:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
qcom-ipq4019-hap-ac3-lte6-kit.dts:209.5-29: Warning (reg_format): /soc/spi@78b5000/flash@0/partitions/partition@80000:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
qcom-ipq4019-hap-ac3-lte6-kit.dts:226.5-31: Warning (reg_format): /soc/spi@78b5000/flash@0/partitions/partition@110000:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:02 +02:00
Shiji Yang
ddbd360fcc ipq40xx: dts: fix led-controller node name for Netgear LBR20
The node name should include the reg property value. Fix warning:

qcom-ipq4019-lbr20.dts:415.17-449.4: Warning (i2c_bus_reg): /soc/i2c@78b7000/led-controller: I2C bus unit address format error, expected "27"

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-20 15:33:02 +02:00
Daniel Golle
07a7281ebd bcm27xx: package modules for official 7" touchscreen TFT display
Add driver modules for the official RaspberryPi 7" touchscreen TFT display.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-20 12:16:13 +01:00
Hauke Mehrtens
6213bb69f7 armsr: drop 6.6 support
Drop configs and patches for Linux 6.6.

Link: https://github.com/openwrt/openwrt/pull/19413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 18:49:28 +02:00
Hauke Mehrtens
3196fca3a7 armsr: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Link: https://github.com/openwrt/openwrt/pull/19413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 18:49:28 +02:00
Hauke Mehrtens
e3389e2783 mvebu: Use common files folder
The files-6.6 and files-6.12 folder contain the same content, merge them
into the files folder for both kernel versions.

Link: https://github.com/openwrt/openwrt/pull/19423
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 18:34:58 +02:00
Sander van Deijck
5303f6330b kirkwood: add kmod-ata-ahci as default to ix4-200d
The ix4-200d is a 4 bay NAS supported since OpenWrt 23.05. Drive trays
controller. Due to a kernel-related issue with the SATA controller,
trays #1 and #2 were not recognized. This issue has been fixed in
kernel 6.10, so with the adoption of kernel 6.12 in the Kirkwood
target trays #1 and #2 can now be made accessible. This requires the
kmod-ata-ahci package, which this commit adds as default to the
makefile.

Signed-off-by: Sander van Deijck <sander@vandeijck.com>
Link: https://github.com/openwrt/openwrt/pull/19435
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 17:58:41 +02:00
Leo Barsky
813470d04c kernel: bump 6.12 to 6.12.39
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.39

All patches auto-refreshed.

Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19448
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 11:59:56 +02:00
Leo Barsky
3148a57758 kernel: bump 6.6 to 6.6.99
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.99

All patches auto-refreshed.

Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19448
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 11:59:49 +02:00
Shiji Yang
f8c0da8525 mediatek: stage mt7622/mt7629 rfb u-boot images to bin folder
These u-boot images are no longer automatically copied to the
bindir since commit:
ed50004319 ("uboot-mediatek: add support for Linksys E8450")

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-19 02:59:16 +01:00
Daniel Golle
c5a6dc31d2 kernel: modules: input: add modules for PS/2 mouse support
Package kernel modules for PS/2 mouse support, mostly to allow
using touchpads and trackpoints built-into laptops (many of those
are connected using classic i8052-compatible PS/2 I/O).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-19 02:56:26 +01:00
Rosen Penev
b0df4795b1 apm821xx: enable kernel 6.12
It builds now.

Tested on Cisco Meraki MX60W.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18798
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 00:01:12 +02:00
Rosen Penev
4a30ded7e6 apm821xx: refresh 6.12 kernel config
Some symbols changed.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18798
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 00:01:12 +02:00
Rosen Penev
38fd269993 apm821xx: refresh 6.12 patches
pci driver went to a different directory and thus manually edited.

All else done with kernel_oldconfig.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18798
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 00:01:12 +02:00
Rosen Penev
623a200bfc apm821xx: restore 6.6 kernel config/patches
Copy kernel config and patches from 6.12 to restore the default 6.6
kernel support files.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18798
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 00:01:12 +02:00
Rosen Penev
d15ed1614d apm821xx: rename kernel config/patches to 6.12
This is a preparation for 6.12 kernel support. It can help us
track the files history by using the Git tool.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18798
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-19 00:01:12 +02:00
Markus Stockhausen
963ee6ac3f 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

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19365
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-18 23:52:54 +02:00
Markus Stockhausen
926ffa10b4 realtek: simplify RTL8218B/RTL8214Fx detection
The current implementation has several issues:

- it uses the hacky phy_port* macros
- it uses SoC dependent raw pages
- it disables/enables SoC dependent polling

Get rid of these dependencies and access the mdio bus the normal way.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19372
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-18 23:36:51 +02:00
Enrico Mioso
4ff02b46b9 uboot-mediatek: add support for GL.iNet GL-MT2500
Add an OpenWrt-based U-Boot build for this device, allowing for more
flexibility and customization.

Expected behaviour
------------------
When plugging the device, keeping the reset button pressed will enter
TFTP recovery mode: the board will send requests for the initramfs file
(openwrt-mediatek-filogic-glinet_gl-mt2500-initramfs-kernel.bin) from
IP 192.168.1.1 to 192.168.1.10 TFTP server.
The bootloader will populate the environment with the unit serial number
as reported by the "sn" value in eMMC, the "sn_bak" value, the country
code and ddns. WAN and LAN MAC addresses are reported in the environment
as well.

Limitations
-----------
No web interface is available, and only the LAN port can be used for
system recovery.

Notes
-----
This port has been tested with the Maxlinear version only, and with a
board that does not exhibit eMMC communication problems. Even though eMMC
frequency has been lowered, some testing is probably needed and always
very welcome.
A -factory image has been introduced, and is only needed when using the
"Load Firmware via TFTP then write to eMMC." boot menu function.
The device has not been converted to use uImage.FIT including the rootfs
to keep compatibility with stock bootloader and firmware.

Installation
------------
From a Linux root shell:
0. Transfer the needed files to the board, placing them in /tmp.
1. Make sure your U-Boot environment is erased: all of my units came with
unpopulated environment, but I am not sure this is always the case.
Issue the command
cat /dev/zero >/dev/mmcblk0p2
(you will get a "no space left" error, which is reasonable and expected).
2. Unlock the eMMC boot area where BL2 is located:
echo 0 >/sys/block/mmcblk0boot0/force_ro
3. Write the new BL2 code:
cat openwrt-mediatek-filogic-glinet_gl-mt2500-emmc-preloader.bin >/dev/mmcblk0boot0
4. Write new BL31+U-Boot image:
cat openwrt-mediatek-filogic-glinet_gl-mt2500-emmc-bl31-uboot.fip >/dev/mmcblk0p4
5. Reboot.

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
2025-07-18 14:02:18 +01:00
Enrico Mioso
072ae5a76b mediatek: filogic: add SD card support to GatoNetworks GDSP
The device is equipped with a GPS module, reporting data via /dev/ttyS1.
A TF card reader is also present. Only one of those components can be
used at once, since they share some PINs.
This commit adds two devicetree overlays to allow for the user to select
the desired configuration. Another overlay configuration to allow booting
from SD card is provided.

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
2025-07-18 12:36:39 +01:00
Shiji Yang
5e0f06d558 lantiq: enable 6.12 testing kernel
The 6.12 testing kernel for lantiq target is ready now.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
53aa30402c lantiq: refresh 6.12 kernel config files
All kernel symbols are automatically refreshed by
`make kernel_oldconfig CONFIG_TARGET=target` and
`make kernel_oldconfig CONFIG_TARGET=subtarget`.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
8d45c6d9d2 lantiq: add the missing function pointer ltq_pci_plat_dev_init
Partial revert upstream commit 075dd2eef025 ("MIPS: lantiq: Remove
unused function pointer variables") to fix the build error:

mips-openwrt-linux-musl-ld: arch/mips/lantiq/xway/ath5k_eep.o: in function `of_ath5k_eeprom_probe':
arch/mips/lantiq/xway/ath5k_eep.c:(.init.text+0x31c): undefined reference to `ltq_pci_plat_dev_init'
mips-openwrt-linux-musl-ld: arch/mips/lantiq/xway/ath5k_eep.c:(.init.text+0x338): undefined reference to `ltq_pci_plat_dev_init'

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>

lantiq: fix vmmc driver build warnings
2025-07-18 12:31:00 +01:00
Shiji Yang
a86c319267 lantiq: fix i2c driver compatibility issue on 6.12 kernel
* Drop obsolete flag I2C_CLASS_SPD. [1]
* Change .remove callback return type to NULL.
* Use strscpy instead of strlcpy.

This patch fixes the following build errors:

drivers/i2c/busses/i2c-lantiq.c:599:41: error: 'I2C_CLASS_SPD' undeclared (first use in this function); did you mean 'I2C_CLASS_HWMON'?
  599 |         adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
      |                                         ^~~~~~~~~~~~~
      |                                         I2C_CLASS_HWMON
drivers/i2c/busses/i2c-lantiq.c:600:9: error: implicit declaration of function 'strlcpy'; did you mean 'strncpy'? [-Wimplicit-function-declaration]
  600 |         strlcpy(adap->name, DRV_NAME "-adapter", sizeof(adap->name));
      |         ^~~~~~~
      |         strncpy
drivers/i2c/busses/i2c-lantiq.c:729:19: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Wincompatible-pointer-types]
  729 |         .remove = ltq_i2c_remove,
      |

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=e61bcf42d290e73025bab38e0e55a5586c2d8ad5
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
9208ba286d lantiq: lantiq-flash: platform driver .remove_new conversion
The .remove has been converted to .remove_new in the 6.12 kernel.
We have to change remove function return type from int to void
to match the upstream changes.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=5882bf98089f3a9ecbee5a57ae0aec6f54797855
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
dbb9c55611 lantiq: refresh 6.12 kernel patches
Manually rebased:
001-MIPS-lantiq-add-pcie-driver.patch
028-NET-lantiq-various-etop-fixes.patch
152-lantiq-VPE.patch
160-owrt-lantiq-multiple-flash.patch

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
925f8492dd lantiq: remove upstreamed patches from 6.12 kernel patchset
Remove upstreamed patches with version labels in their names.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
c17b19f18e lantiq: restore kernel 6.6 config files and patches
Copy patches and kernel configs from 6.12 kernel to restore the
default 6.6 kernel support files.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
544f0fd5e7 lantiq: rename patchset and kernel configs to 6.12
This is a preparation for 6.12 kernel support. It can help us
track the files history by using the Git tool.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
5b7637911e lantiq: refresh kernel symbol configs
This is a preparation for introducing the 6.12 kernel support.
All configs are automatically refreshed.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:31:00 +01:00
Shiji Yang
dd0c83575f lantiq: fix vmmc driver build warnings
This patch fixes the following build warnings:

arch/mips/lantiq/xway/vmmc.c:31:14: error: no previous prototype for 'ltq_get_mps_ad0_irq' [-Werror=missing-prototypes]
   31 | unsigned int ltq_get_mps_ad0_irq(void)
      |              ^~~~~~~~~~~~~~~~~~~
arch/mips/lantiq/xway/vmmc.c:40:14: error: no previous prototype for 'ltq_get_mps_ad1_irq' [-Werror=missing-prototypes]
   40 | unsigned int ltq_get_mps_ad1_irq(void)
      |              ^~~~~~~~~~~~~~~~~~~
arch/mips/lantiq/xway/vmmc.c:49:14: error: no previous prototype for 'ltq_get_mps_vc_irq' [-Werror=missing-prototypes]
   49 | unsigned int ltq_get_mps_vc_irq(int idx)
      |              ^~~~~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:30:59 +01:00
Shiji Yang
988133846d lantiq: fix pcie driver build warnings
This patch fixes the following build warnings:

arch/mips/pci/ifxmips_pcie.c:1084:36: error: invalid use of undefined type 'struct platform_device'
 1084 |     struct device_node *node = pdev->dev.of_node;
      |                                    ^~
arch/mips/pci/ifxmips_pcie.c:1204:12: error: no previous prototype for 'ifx_pcie_bios_init' [-Werror=missing-prototypes]
 1204 | int __init ifx_pcie_bios_init(void)
      |            ^~~~~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:30:59 +01:00
Shiji Yang
b87c88efee lantiq: fix eeprom driver build warnings:
This patch fixes the following build warnings:

arch/mips/lantiq/xway/ath5k_eep.c:34:12: error: no previous prototype for 'of_ath5k_eeprom_probe' [-Werror=missing-prototypes]
   34 | int __init of_ath5k_eeprom_probe(struct platform_device *pdev)
      |            ^~~~~~~~~~~~~~~~~~~~~
arch/mips/lantiq/xway/eth_mac.c:15:11: error: no previous prototype for 'ltq_get_eth_mac' [-Werror=missing-prototypes]
   15 | const u8* ltq_get_eth_mac(void)
      |           ^~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:30:59 +01:00
Shiji Yang
671638d8fc lantiq: fix timer driver build warnings
This patch fixes the following build warnings:

arch/mips/lantiq/xway/timer.c:160:14: error: no previous prototype for 'ltq_get_fpi_bus_clock' [-Werror=missing-prototypes]
  160 | unsigned int ltq_get_fpi_bus_clock(int fpi) {
      |              ^~~~~~~~~~~~~~~~~~~~~
arch/mips/lantiq/xway/timer.c:803:36: error: invalid use of undefined type 'struct platform_device'
  803 |         ret = devm_mutex_init(&pdev->dev, &timer_dev.gptu_mutex);
      |                                    ^~
arch/mips/lantiq/xway/timer.c:864:12: error: no previous prototype for 'lq_gptu_init' [-Werror=missing-prototypes]
  864 | int __init lq_gptu_init(void)
      |            ^~~~~~~~~~~~
arch/mips/lantiq/xway/timer.c:873:13: error: no previous prototype for 'lq_gptu_exit' [-Werror=missing-prototypes]
  873 | void __exit lq_gptu_exit(void)
      |             ^~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:30:59 +01:00
Shiji Yang
69b38ed670 lantiq: misc build warning fixes for upstream codes
This patchset fixes a lot of compilation warnings. In the upcoming
6.12 kernel, these warnings will be treated as errors.

Link:
https://lore.kernel.org/all/OSBPR01MB1670163BDCA60924B3671D45BC72A@OSBPR01MB1670.jpnprd01.prod.outlook.com/

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-07-18 12:30:59 +01:00
Daniel Golle
7fe6921fe6 mediatek: remove files, patches and config for Linux 6.6
Drop support for Linux 6.6 now that we are using Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-18 12:27:29 +01:00
Daniel Golle
4e7d58ebef mediatek: switch to Linux 6.12 by default
Use Linux kernel version 6.12 by default for all mediatek subtargets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-18 12:26:40 +01:00
Lorenzo Bianconi
4dd35ca674 target: mediatek: Enable WED for MT7988 devices running 6.12.x kernels
Add WED related nodes to the device tree of the MT7988 SoC family.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-18 02:18:15 +01:00
Mieczyslaw Nalewaj
8a5ed24de6 generic: dsa: backport upstream realtek patches
Import patches from kernel 6.13:
- net: dsa: realtek: Use for_each_child_of_node_scoped()
- net: dsa: realtek: rtl8365mb: Make use of irq_get_trigger_type()
- net: dsa: realtek: rtl8366rb: Make use of irq_get_trigger_type()

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/19381
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-17 21:17:43 +02:00
Daniel Golle
5b8c385f90 x86: modules: fix wrong Kconfig symbol
It's CONFIG_MFD_INTEL_LPSS, not CONFIG_INTEL_LPSS.

Fixes: f780a72293 ("x86: modules: add packages for Intel LPSS drivers")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-17 11:45:13 +01:00
Daniel Golle
f780a72293 x86: modules: add packages for Intel LPSS drivers
Add driver packages for Intel Low-Power Subsystem devices which are part
of some Intel chipsets. They are mainly needed to have access to the I2C
bus used for HID devices.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-16 13:14:16 +01:00
Leo Barsky
cd1c8f9ea2 kernel: bump 6.12 to 6.12.38
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.38
Minor kernel update with a single fix:
-  x86/CPU/AMD: Properly check the TSA microcode

Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19411
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-16 09:40:36 +02:00
Leo Barsky
cc932c1ea6 kernel: bump 6.6 to 6.6.98
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.98
Minor kernel update with a single fix:
- x86/CPU/AMD: Properly check the TSA microcode
Automatically refreshed:
- airoha/patches-6.6/901-snand-mtk-bmt-support.patch

Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19411
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-16 09:40:36 +02:00
Shubham Vishwakarma
6fa9cff052 qualcommax: ipq50xx: update qcn6122 caldata offset of yuncore ax830
The current offset used for extracting QCN6122 calibration data
is incorrect on the Yuncore AX830. This patch corrects the
offset to ensure proper WiFi initialization.

Tested on: Yuncore AX830

Signed-off-by: Shubham Vishwakarma <shubhamvis98@fossfrog.in>
Link: https://github.com/openwrt/openwrt/pull/19416
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-16 00:06:30 +02:00
Pawel Dembicki
53acaf1f3f kirkwood: add 6.12 as testing kernel
Support for 6.12 is ready; add it as a testing kernel.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-15 22:03:55 +02:00
Pawel Dembicki
66f4530c72 kirkwood: 6.12: refresh kernel config
6.12 kernel config need to be refreshed.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-15 22:03:55 +02:00
Pawel Dembicki
52d9f37e54 kirkwood: kernel: 6.12: refresh patches
Most of them were manually refreshed.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-15 22:03:55 +02:00
Pawel Dembicki
fa862776a3 kernel/kirkwood: Restore kernel files for v6.6
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: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-15 22:03:54 +02:00
Pawel Dembicki
5066e10e69 kernel/kirkwood: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-15 22:03:54 +02:00
Pawel Dembicki
9881f4a164 kirkwood: move files-6.6 to files
No need to keep it in kernel specified folder anymore.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-15 22:03:54 +02:00
Daniel Golle
06267823a3 x86: enable built-in driver for MMC/SDHCI
Many x86 machines can boot from SD cards, and some embedded x86 devices
come with an eMMC. Include drivers for all common MMC/SDHCI controllers
to allow booting from SD/MMC on x86.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-07-14 22:48:48 +01:00
Marty Jones
e02c7a2014 rockchip: add RK3588 Hardware Random Number Generator
Backport support for RK3588 hardware RNG driver.

Signed-off-by: Marty Jones <mj8263788@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19366
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-14 22:37:03 +02:00
Shiji Yang
2f944ecd3e treewide: simplify kernel version number comparisons
Directly call the function "get_linux_version()" to get the integer
kernel version number.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19172
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-14 22:30:20 +02:00
Mateusz Krzak
6615c8cfc8 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.

Signed-off-by: Mateusz Krzak <kszaquitto+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18878
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 17:35:39 +02:00
Donghyun Ko
1c6cb6d5be mediatek: add support for ipTIME AX3000SM
Specification
-------------
- SoC       : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3GHz
- RAM       : DDR3 256Mbytes, Nanya Technology NT5CC128M16IP
- Flash     : 128Mbytes NAND Flash, ESMT F50L1G41LB
- WLAN      : MediaTek MT7976CN dual-band Wi-Fi 6
  - 2.4GHz  : b/g/n/ax, MU-MIMO
  - 5GHz    : a/n/ac/ax, MU-MIMO
- Ethernet  : 10/100/1000 Mbps x4, LAN (MediaTek MT7531AE)
              10/100/1000 Mbps x1, WAN (MT7981 internal PHY)
- UART      : 1x4 pin header on PCB
  - [J500] 3.3V, TX, RX, GND (115200, 8N1)
- Buttons   : WPS, Reset
- LEDs      : 1x Power (Amber)
              1x CPU (Amber)
              1x Wi-Fi 5GHz (Amber)
              1x Wi-Fi 2.4GHz (Amber)
              1x WAN activity (Amber)
              4x LAN activity (Amber)
- Power     : 12VDC, 1A (Center positive polarity)

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

Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18689
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 17:26:01 +02:00
Sky Huang
058bd6c9d3 mediatek: filogic: mt7986: fix SPI driving for NAND and increase to 52MHz on ZyXEL EX5601
8mA driving will cause overshoot issue on SPI NAND. Change it to 4mA.
- Reference:
003744197a

On Linux mainline (mt7986.dtsi), spi's source clock is: clocks = <&topckgen CLK_TOP_MPLL_D2>, which is
208MHz. Usable clock division will be:
- 208/4=52MHz
- 208/6~=35MHz
- 208/8=26MHz
and so on

If we specify 50MHz for spi-max-frequency, it will actually run under about 35MHz. Most SPI NAND & NOR
flashes are capable of running with more than 52MHz, include Micorn MT29F4G01ABAFDWB on ZyXEL EX5601.
[Ref: #18752] To reach highest performance on mt7986, use spi-max-frequency = <520000000>. Basically,
this setting should work on all mt7986 PCBs since most mt7986 boards follow reference design. However,
other boards needs further test to guarantee stability.

Signed-off-by: Sky Huang <SkyLake.Huang@mediatek.com>
Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/18813
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 17:04:06 +02:00
Jonas Jelonek
6432b41180 realtek: rtl931x: fix setting number of leds per port
In rtl931x_led_init, the number of leds per port is not properly set. It
currently uses a hardcoded value of 1 which seems to be taken initially
from a specific device. This hardcoded value assumes any port always has
exactly two leds.

The RTL930x variant - rtl930x_led_init - does a better job at this. So
take it and use it for RTL931x too with the corresponding register.
While at it, rename the function to a proper naming scheme.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19241
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 16:47:42 +02:00
Chukun Pan
bad9ec3322 qualcommbe: remove useless cpu erratum
These cpu erratums are used by other SoCs, just remove them.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19380
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 15:27:54 +02:00
Chukun Pan
c70de5277d qualcommax: remove useless cpu erratum
These cpu erratums are used by other SoCs, just remove them.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19380
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 15:27:54 +02:00
Chukun Pan
0ceedec6fa generic: 6.12: add new config symbols
Move the following kernel symbol configs to generic:
  COMPRESSED_INSTALL and IMX_SCMI related configs

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19380
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 15:27:54 +02:00
Tomasz Maciej Nowak
a89eced3ab ath79: add support for Dell SonicPoint ACi APL27-0B1
Dell/SonicWall APL27-0B1 (marketed as SonicPoint ACi) is a dual band
wireless access point. Very similar to already supported APL26-0AE,
which all antennas are external, while this variant has internal
antennas. End of life as of 2022-07-31.

Specification
SoC: QualcommAtheros QCA9550
RAM: 256 MB DDR2
Flash: 32 MB SPI NOR
WIFI: 2.4 GHz 3T3R integrated
      5 GHz 3T3R QCA9890 oversized Mini PCIe card
Ethernet: 2x 10/100/1000 Mbps QCA8334
          port labeled lan1 is PoE capable (802.3at)
USB: 1x 2.0
LEDs: LEDs: 6x which 5 are GPIO controlled and two of them are dual color
Buttons: 1x GPIO controlled
Serial: RJ-45 port, SonicWall pinout
        baud: 115200, parity: none, flow control: none

Before flashing, be sure to have a copy of factory firmware, in case You
wish to revert to original firmware.

Installation
1. Prepare TFTP server with OpenWrt sysupgrade image and rename that
   image to "ap135.bin".
2. Connect to one of LAN ports.
3. Connect to serial port.
4. Hold the reset button (small through hole on side of the unit),
   power on the device and when prompted to stop autoboot, hit any key.
   The held button can now be released.
5. Alter U-Boot environment with following commands:
    setenv bootcmd bootm 0x9F110000
    saveenv
6. Adjust "ipaddr" (access point, default is 192.168.1.1) and "serverip"
   (TFTP server, default is 192.168.1.10) addresses in U-Boot
   environment, then run following commands:
    tftp 0x80060000 ap135.bin
    erase 0x9F110000 +0x1EF0000
    cp.b 0x80060000 0x9F110000 $filesize
7. After successful flashing, execute:
    boot
8. The access point will boot to OpenWrt. Wait few minutes, until the
    wrench LED will stop blinking, then it's ready for configuration.

Notes
By default no power is provided on USB port, so attached USB devices
won't enumerate. To change that enable regulator with:
echo "enabled" > /sys/devices/platform/output-usb-vbus/state
To disable power write "disabled" to the same file.
Ther regulator state will reset on reboot, consider running this command
on hotplug event or add it to /etc/rc.local. The hotplug event should
look like this:
if [ "${PRODUCT}" = "1d6b/2/606" ] && [ "${ACTION}" = "add" ]; then
	echo "enabled" > /sys/devices/platform/output-usb-vbus/state
fi
Place it in /etc/hotplug.d/usb/10-usb-power.

Known issues
Initramfs image can't be bigger than specified kernel size, otherwise
bootloader will throw LZMA decompressing error. Switching to lzma-loader
should workaround that.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250529202033.28250-2-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 01:03:36 +02:00
Tomasz Maciej Nowak
1d3cfe8eb0 tegra: add 6.12 as testing kernel
Introduce LED migration script as the names have changed.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250618170045.473711-8-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 00:49:37 +02:00
Tomasz Maciej Nowak
5aae86b39d tegra: 6.12: refresh config and drop upstreamed patch
Refresh of config drops IOMMU GART driver as it has been removed
upstream.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250618170045.473711-7-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 00:49:28 +02:00
Tomasz Maciej Nowak
9e30462287 kernel/tegra: Restore kernel files for v6.6
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: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250618170045.473711-6-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 00:49:14 +02:00
Tomasz Maciej Nowak
c89f3d3864 kernel/tegra: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250618170045.473711-5-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 00:49:05 +02:00
Tomasz Maciej Nowak
2073f2e16b generic: 6.12: add few DRM symbols
Found on tegra kernel 6.12 refresh.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250618170045.473711-4-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 00:48:56 +02:00
Tomasz Maciej Nowak
b8dea6056d 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.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250618170045.473711-2-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-13 00:48:34 +02:00
Hauke Mehrtens
c5330bdf7e kernel: Fix boot of amrsr target in qemu
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.

Link: https://github.com/openwrt/openwrt/pull/19376
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 23:23:43 +02:00
Weijie Gao
01a9a27dfa loongarch64: add 6.12 as testing kernel
Runtime-tested on Loongson-3A6000-HV-7A2000-XA61200 with AMD RX580

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19136
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 23:17:00 +02:00
Weijie Gao
492cb20976 loongarch64: Restore kernel files for v6.6
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: Weijie Gao <hackpascal@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19136
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 23:16:56 +02:00
Weijie Gao
9454095e1a loongarch64: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19136
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 23:16:51 +02:00
Antonino Orlando
e34e874a11 mediatek: add support for Zyxel NWA90AX PRO
Same hardware as Zyxel NWA50AX PRO.
DEVICE_ALT0_VENDOR := Zyxel
DEVICE_ALT0_MODEL := NWA90AX Pro

Signed-off-by: Antonino Orlando <orlando.antonino@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19257
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 23:03:34 +02:00
Jonathan Sturges
79b5151d7f ramips: add support for Wavlink WL-WN570HA2
The Wavlink Aerial HD3 (WL-WN570HA2) is an AC1200 dual-band outdoor
access point.  It supports 802.3AT/AF PoE and is IP67 waterproof.
It is based on the MediaTek MT7628DAN SoC and MT7613BEN WiFi 5 chip.
This model uses the 100Mbit LAN and 2.4Ghz WiFi elements of the
MT7628 and the 5Ghz WiFi of the MT7613.

Specification:
- SoC: MediaTek MT7628DAN (1C/1T) @ 580MHz
- RAM: 64MB DDR2 (integrated in SoC)
- FLASH: 16MB SPI NOR (Fudan FM25Q128A)
- Ethernet: 1x 10/100Mbps
- WiFi: 2.4/5 GHz 2T2R
  - 2.4GHz MediaTek MT7628DAN bgn
  - 5GHz MediaTek MT7613BEN nac
- Antennas: 2x detachable, dual-band 7dBi with RP-SMA connectors.
- USB: none
- BTN: Reset
- LED: 6 total: power; WAN/LAN; WiFi; WiFi low; WiFi med; Wifi high
- UART:  surface-mount on PCB.  Pins are marked via silkscreen.
   pin1 (square pad, towards Ethernet)=Vcc, pin2=RX,
   pin3=TX, pin4=GND.  Settings: 57600/8N1.
   NOTE: The TX & RX silkscreens were reversed on my test unit.

Installation:
1) This device requires a HTTP recovery procedure to do an initial load
  of OpenWRT.  You will need:
  a. A web browser (private window recommended)
  b. Configure an Ethernet interface to 192.168.1.x/24; don't use .1
  c. Connect a cable between the computer and the Wavlink's PoE injector.
2) Put the Wavlink in HTTP recovery mode.
  a. Do this by pressing and holding the reset button on the bottom while
  powering the unit on.
  b. As soon as all 6 LEDs light up blue (roughly 2-3 seconds), release
  the button.
  c. The LEDs should all remain lit, indicating it's in HTTP recovery.
3) Point the browser at http://192.168.1.1/index.html
4) Click "Choose File" and select the OpenWRT sysupgrade image.
5) Click the "Update Firmware" button and wait while the unit flashes
the image and reboots.
6) When the system comes back up fully, only the power LED will be lit.
Wait an extra minute then you should be able to reach OpenWRT on
http://192.168.1.1
5) Log into LuCI as root; there is no password.

Revert to the OEM Firmware:
--------------------------
* U-boot HTTP:
  Follow the HTTP recovery steps, and use a firmware image downloaded
  from Wavlink.

Signed-off-by: Jonathan Sturges <jsturges@redhat.com>
Link: https://github.com/openwrt/openwrt/pull/18856
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 22:51:39 +02:00
Russ Innes
80a9da93f6 ath79: ubnt-amplifi-hd: Add 2nd USB bus (integrated ath3k bluetooth)
Add/enable 2nd USB bus (integrated ath3k bluetooth) to dts. This already
exists in the qca956x dtsi, adding the pointer here to bring the bluetooth to life.

The 2nd bus hosts the integrated bluetooth at 0x1b400000.

See in the comments for more info:
c5b7ec8cee

Tested-by: Russ Innes <russ.innes@gmail.com> on Ubiquiti Amplifi HD .

Signed-off-by: Russ Innes <russ.innes@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19303
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 21:43:22 +02:00
Gustavo Curi
dd15117dab ramips: add support for TP-Link EX220 v2
This device is similar to the TP-Link EX220 v1.
The differences are the number of ports (3 LANs
and 1 WAN) and the number of LEDs (1 LED RGB)

Hardware
--------

CPU:    MediaTek MT7621 DAT
RAM:    128MB DDR3 (integrated)
FLASH:  16MB SPI-NOR
WiFi:   MediaTek MT7905 + MT7975 (2.4 / 5 DBDC) 802.11ax
SERIAL: 115200 8N1
        LED - (TX - RX - GND - 3V3 ) - ETH ports

Installation
------------

Flashing is only possible via a serial connection using the sysupgrade
image; the factory image must be signed. You can flash the sysupgrade
image directly through the U-Boot console, or preferably, by booting the
initramfs image and flashing with the sysupgrade command. Follow these
steps for sysupgrade flashing:

1. Establish a UART serial connection.
2. Set up a TFTP server at 192.168.0.2 and copy the initramfs image
   there.
3. Power on the device and press any key to interrupt normal boot.
4. Load the initramfs image using tftpboot.
5. Boot with bootm.
6. If you haven't done so already, back up all stock mtd partitions.
7. Copy the sysupgrade image to the router.
8. Flash OpenWrt through either LuCI or the sysupgrade command. Remember
   not to attempt saving settings.

Revert to stock firmware
------------------------

Flash stock firmware via OEM web-recovery mode. If you don't have access
to the stock firmware image, you will need to restore the firmware
partition backed up earlier.

Web-Recovery
------------

The router supports an HTTP recovery mode:

1. Turn off the router.
2. Press the reset button and power on the device.
3. When the LED start flashing, release reset and quickly press it
   again.

The interface is reachable at 192.168.0.1 and supports installation of
the OEM factory image. Note that flashing OpenWrt this way is not
possible, as mentioned above.

Signed-off-by: Gustavo Curi <gpcuri@land.ufrj.br>
Link: https://github.com/openwrt/openwrt/pull/19104
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 21:37:52 +02:00
Yonghyu Ban
e507398b88 mediatek: filogic: add support for TP-Link Festa FR365
Hardware
--------
SOC     : MediaTek MT7981B 2x A53
RAM     : NT5AD256M16E4-JR 512MiB
Flash   : ESMT F50L1G41LB 128MB
ETH     : 5x 1GbE (1x WAN, 4x LAN)
          1x SFP+ (2.5 GbE)
Switch  : MediaTek MT7531AE
WiFi    : MediaTek MT7976D
Buttons : Reset
Power   : DC 12V 2A

Installation
------------
1. Disassemble the device
2. Create solder bridge on R85, R86, Solder 4-pin header on J4.
3. Connect UART console.
4. In U-Boot shell, enter the following commands to prepare flashing
```
enable_phy
extra_para set extra-para score 100
extra_para set extra-para fwFlag good
```
5. Use `mtkupgrade` command to TFTP flash openwrt-mediatek-filogic-tplink_fr365-v1-squashfs-factory.bin
6. Reboot the device

Signed-off-by: Yonghyu Ban <yhban@silicon.moe>
Link: https://github.com/openwrt/openwrt/pull/19203
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 20:21:43 +02:00
Yonghyu Ban
d8754f3866 mediatek: allow mounting ubifs by its device and partition name
Since not every device sets an ubifs partition name as the same as their
parent mtd partition, this change allows mount_ubi_part to usable in
other devices

Signed-off-by: Yonghyu Ban <yhban@silicon.moe>
Link: https://github.com/openwrt/openwrt/pull/19203
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 20:21:43 +02:00
Fil Dunsky
db1de8d21f mediatek: add Huasifei WH3000 Pro support
**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
```

Cherry-picked from 949d0bd77a

Fixed `green` to `blue` LED in dts, added `SUPPORTED_DEVICES += huasifei,fudy-pro` - to make sysupgrade compatible with factory QWRT/Lede fork firmware.

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19315
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 19:31:54 +02:00
Shiji Yang
57aa05e8e5 kernel: bump 6.12 to 6.12.37
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.37

Manually rebased patch:
  generic/hack-6.12/902-debloat_proc.patch[1]

New Kconfig symbol:
  x86: enable MITIGATION_TSA[2]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.37&id=ead91de35d9cd5c4f80ec51e6020f342079170af
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.37&id=7a0395f6607a5d01e2b2a86355596b3f1224acbd

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19317
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 16:47:58 +02:00
Shiji Yang
04d764576b kernel: bump 6.6 to 6.6.97
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.97

Remove upstream patch:
  generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch[1]

Manually rebased patch:
  bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch[2]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.97&id=8a7ac2737211451b8b98657b919c4c4e0a4c0c2f
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.97&id=7609899eb6b70b536123eb58eeab27c764752b82

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Co-authored-by: John Audia <therealgraysky@proton.me>
Tested-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19317
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 16:47:58 +02:00
Shiji Yang
be3ce63822 kernel: bump 6.12 to 6.12.36
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.36

Remove upstream patches:
  generic/backport-6.12/780-09-v6.13-r8169-add-support-for-RTL8125D.patch[1]
  generic/backport-6.12/781-04-v6.13-net-phy-realtek-merge-the-drivers-for-internal-NBase.patch[2]
  generic/backport-6.12/781-05-v6.13-net-phy-realtek-add-RTL8125D-internal-PHY.patch[3]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.36&id=37cb5967bd2513416398ff1a87a5ee2e63270b00
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.36&id=5eb0b10eea271e2e1f7d4fa1a6af6c09b2ecc4f5
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.36&id=5d479182d4ccde76df830a72927b3bdaafd142bf

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Tested-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19317
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 16:47:58 +02:00
Shiji Yang
2d8d11a42c kernel: bump 6.6 to 6.6.96
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.96

Remove upstream patch:
  generic/pending-6.6/650-Revert-ipv6-save-dontfrag-in-cork.patch[1]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.96&id=c46358d0275953b27c3d86f7a224e229f2d57d05

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Tested-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19317
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-07-12 16:47:58 +02:00
Markus Stockhausen
d2108c2c58 realtek: enhance RTL930x SerDes/PLL/CMU interoperability
The operating mode of a SerDes must be aligned with the attached PHY or
SFP module. That does not only require to change the protocol (e.g. SGMII,
10Gbase-R, ...) but also the speed (e.g. 1.25G). For this the SerDes must
be re-initialized properly.

- It must be taken into power down
- The PLL speed must be set
- Maybe the CMU (clock management unit) must be resetted
- The new mode must be set
- The state machine must be resetted
- The power must be reactivated

Until now this sequence is bugged. First the driver relies on a clean
setup from U-Boot (rtk network on) and second trying to to change mode
and PLL speeds does not work at all. And not to forget: Currently two
adjacent SerDes cannot drive SGMII/HSGMII at the same time. Fix this by
taking care about the right SerDes/PLL/CMU command init order.

P.S. This code is inspired by the work of Jan Hofmann, who tried to
enable parallel SGMII/HSGMII mode. The only missing bit was a proper CMU
reset sequence.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19220
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-11 10:05:52 +02:00
Felix Fietkau
118d8ee981 ath79: revert wmac node names
Changing the node names arbitrarily broke existing configurations, which
rely on the device path in /etc/config/wireless.
Revert that part of the change without altering the compatible strings.

Fixes: 7e09959efd ("mac80211: fix wmac node names")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-07-09 17:17:05 +02:00
Andrew LaMarche
b77fa45d12 kernel: fix rtl8261n driver for realtek
The RTL8261N driver does not work correctly on non-mediatek devices. Remove
some of the power controls for Realtek chips.

This assumes the network has been started by the bootloader already:
(rtk network on).

Co-authored-by: Sebastian Gottschall
- bf45143f03
- 2fb02a5745
- 598a16a8d8
Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19081
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-09 14:45:14 +02:00
Andrew LaMarche
d2f9846760 kernel: support RTL8264 in rtl8261n driver
Add support for the RTL8264 (quad-10G phy) by matching the appropriate PHY_ID
in the driver.

Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19081
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-09 14:45:14 +02:00
Jakob Haufe
6e58e64501 octeon: ubnt-*: Add device specific DTS pruning
This imports device specific DTS pruning from
https://github.com/UI-Packages/kernel_e200/blob/master/arch/mips/cavium-octeon/octeon-platform.c#L1067

- Reduce MMC clock frequency on E200/E220 to make
  MMC communication reliable again. See linked issue.
- Remove unused MMC node on E300.

Link: https://github.com/openwrt/openwrt/issues/13762
Signed-off-by: Jakob Haufe <sur5r@sur5r.net>
Link: https://github.com/openwrt/openwrt/pull/19229
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-09 10:39:29 +02:00
Mieczyslaw Nalewaj
6f09f8ca31 ramips: update drivers to be compatible with kernel 6.12 and above
Replace .remove_new with .remove for compatibility with future kernel versions.
Dropping compatibility with older kernels.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/19320
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-07-07 20:30:26 +02:00
Mieczyslaw Nalewaj
ce97258300 ramips: drop 6.6 support
Drop configs and patches for Linux 6.6.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/19320
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-07-07 20:30:26 +02:00
Mieczyslaw Nalewaj
3402384f17 ramips: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/19320
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-07-07 20:30:26 +02:00
Rosen Penev
7e09959efd mac80211: fix wmac node names
The upstream submission for this mandates the node to be named wifi
instead of wmac. Change all ath79 entries to match the new names and
remove the compatibility patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19328
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-07 17:28:14 +02:00
Rosen Penev
65c539be80 kernel: backport GCC15 fix for powerpc
Comes with kernel 6.16. I assume it will be backported at some point.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19329
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-07 17:20:53 +02:00
Felix Fietkau
604355e8c4 kernel: fix fraglist GRO on linux 6.12
Merged segments had a broken skb network header offset.

Fixes: https://github.com/openwrt/openwrt/issues/19130
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-07-05 15:27:12 +02:00
Gao Xiang
f7fa414d3b
image: add support for EROFS rootfs image generation
Add support for generating EROFS rootfs images.

The EROFS filesystem can offer competitive I/O performance while
minimizing final image size when using the MicroLZMA compressor.

Target platform: linux-x86_generic (target-i386_pentium4_musl)

Filesystem     Image Size
=============  ==========
root.erofs     4882432
root.ext4      109051904
root.squashfs  4903302

Co-Developed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://github.com/openwrt/openwrt/pull/19244
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-07-05 15:24:54 +02:00
Felix Fietkau
e618ad06b3 mediatek: fix switch mdio id on mt7622-rfb1 on linux 6.12
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-07-05 14:43:34 +02:00
Christian Marangi
f827d231fb
generic: 6.6: drop netdev backported patch for netdev_tx_reset_subqueue
Patch backporting netdev_tx_reset_subqueue new OP has been already
backported in recent minor kernel version for 6.6.

Drop the related patch to fix compilation error on 6.6.

Fixes: 34ba7e8a8a ("generic: backport some flow offload helper patch")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-07-05 10:42:00 +02:00
Christian Marangi
ad2077165b
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.

Refresh all affected patch.

Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k
Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-07-05 10:10:35 +02:00
Christian Marangi
afea8bda0d
airoha: backport minor fixes for ethernet driver
Backport some upstream patch for Airoha ethernet driver in preparation
for Flow Offload support.

Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k
Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-07-05 10:10:35 +02:00
Christian Marangi
34ba7e8a8a
generic: backport some flow offload helper patch
Backport some flow offload helper patch in preparation for Airoha Flow
Offload support.

Link: https://github.com/openwrt/openwrt/pull/18166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-07-05 10:10:35 +02:00
Christian Marangi
921d438564
airoha: replace PCIe patch with upstream version
Replace PCIe patch with upstream version and update DTS with new PBUS
CSR property now required.

Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> # tested on Quantum W1700k
Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18166
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-07-05 10:10:34 +02:00
Rosen Penev
f955716341 ramips: fix wifi nodes to upstream standards
Replaced all mt76@ with wifi@ per upstream requirement for all wifi
nodes.

Added missing compatible string where appropriate as stated by mt76.yaml
upstream.

Also updated reg value to be consistent everywhere.

Replace all pci14c3 entries to use mediatek,mt76.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19067
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-04 22:01:40 +02:00
Dim Fish
edc7cb9104 mediatek: spinand: force update_cache_variants to use reset for Foresee NAND
Force update_cache_variantsvariants to use reset for Foresee NAND with bad blocks.

Tested on Xiaomi AX3000T + F35SQA001G with bad blocks and without bad blocks

Signed-off-by: Dim Fish <dimfish@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17963
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2025-07-04 17:38:50 +08:00
Markus Stockhausen
9d31db2833 realtek: add RTL931x support to rt-loader
The RTL931x devices have an other register that describes the
current RAM configuration. Enhance the identification routine.

Tested on LGS352C (RTL9311).

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19284
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-03 11:42:21 +02:00
Tianling Shen
9add155a20 rockchip: switch to kernel 6.12
Switch to kernel 6.12 and remove kernel 6.6 files.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19259
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-07-01 22:10:20 +02:00
Shubham Vishwakarma
52e339b8ed qualcommax: ipq50xx: Add support for Yuncore AX830
Specifications:
SOC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
Memory: 512MB DDR3L
Standard: 802.11ax/ac/b/g/n
Flash: SPI NOR 8MB (Winbond W25Q64DW) + NAND 128MB (Winbond W25N01GWZEIG)
2.4G Frequency: 2.4GHz - 2.484GHz
2.4G Wi-Fi standard: 802.11b/g/n/ax
5.8G Frequency: 4.9~5.9G
5.8G Wi-Fi Standard: 802.11 a/n/ac/ax
Interface:
  Optional 1(Without 8081):
    1 * 10/100 /1000Mbps RJ45 WAN Port and PoE port;
    1* Gigabit Console port;
  Optional 2(With 8081):
    1 * 10/100/1000/2500Mbps RJ45 WAN port and PoE port,
    1*10/100/1000Mbps LAN port
Buttons: 1 * Reset button, press 10 seconds to revert to default setting
Antenna: Build in 4*4dBi dual band MIMO Antenna
Data Rate: 3000Mbps (2.4G 600Mbps, 5.8G 2400Mbps)
End Users: 128+
2.4G RF Power: ≤ 23dBm
5.8G RF Power: ≤ 23dBm
DC: 12V----2A
PoE: 48V (IEEE 802.3at)
LED Light: Sys, WAN, LAN
Power Consumption: ≤ 20W

BACKUP YOUR STOCK FIRMWARE:
- Put openwrt-*-initramfs-uImage.itb to your
  TFTP server and rename it to initramfs.bin
- Enable serial console and enter to u-boot cli
  and exec these commands:
    ```
    tftpboot <your_tftp_server_ip>:initramfs.bin
    bootm
    ```
- Once boot completed and you get the openwrt shell
  execute below commands:
    ```
    device=ax830
    mkdir -p /tmp/fw_backup; cd /tmp/fw_backup
    rootfs=$(cat /proc/mtd | grep \"rootfs\" | cut -d: -f1)
    rootfs_1=$(cat /proc/mtd | grep \"rootfs_1\" | cut -d: -f1)
    dd if=/dev/${rootfs} of=rootfs_${rootfs} bs=1M
    dd if=/dev/${rootfs_1} of=rootfs_1_${rootfs_1} bs=1M
    cp /sys/firmware/fdt fdt.dtb
    md5sum * > md5sum
    tar -cvzf /tmp/${device}.tar.gz .
    sum=$(md5sum /tmp/${device}.tar.gz | cut -d' ' -f1)
    mv /tmp/${device}.tar.gz /tmp/${device}_${sum}.tar.gz
    echo "stock fw backup saved to: /tmp/${device}_${sum}.tar.gz"
    ```
- Upload/save your backup to a safe place.

STOCK FIRMWARE RECOVERY:
- Boot initramfs image
- Upload your backed-up stock fw tarball to the device
  using scp or download it from the device using wget.
- Enter device ssh cli or tty and exec:
    ```
    cd /tmp && wget <your_web_server_ip>/${stock_fw_backup}.tar.gz`
    tar -xpzf ${stock_fw_backup}.tar.gz
    rootfs=$(cat /proc/mtd | grep \"rootfs\" | cut -d: -f1)
    rootfs_1=$(cat /proc/mtd | grep \"rootfs_1\" | cut -d: -f1)
    ubiformat /dev/${rootfs} -y -f /tmp/rootfs_${rootfs}
    ubiformat /dev/${rootfs_1} -y -f /tmp/rootfs_1_${rootfs_1}
    reboot
    ```

INSTALLATION:
1. initramfs method
- Put openwrt-*-initramfs-uImage.itb to your
  TFTP server and rename it to initramfs.bin
- Enable serial console and enter to u-boot cli
  and exec these commands:
    ```
    tftpboot <your_tftp_server_ip>:initramfs.bin
    bootm
    ```
- Once boot completed and you get the openwrt shell
  execute below commands:
    ```
    cd /tmp && wget <your_web_server_ip>/factory.ubi`
    export rootfs=$(cat /proc/mtd | grep rootfs | cut -d: -f1)
    export rootfs_1=$(cat /proc/mtd | grep rootfs_1 | cut -d: -f1)
    ubiformat /dev/${rootfs} -y -f factory.ubi
    ubiformat /dev/${rootfs_1} -y -f factory.ubi
    reboot
    ```

2. u-boot factory.ubi image method
- Put factory.ubi to your TFTP server and
  enter u-boot cli and exec these commands:
    ```
    tftpboot <your_tftp_server_ip>:factory.ubi
    #After downloading is finished:
    flash rootfs
    flash rootfs_1
    reset
    ```

Signed-off-by: Shubham Vishwakarma <shubhamvis98@fossfrog.in>
Link: https://github.com/openwrt/openwrt/pull/18968
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-30 14:04:31 +02:00
Markus Stockhausen
978d24ce40 realtek: rt-loader bootbase device enhancement
Until now the rt-loader only works on U-Boot driven devices where the
environment (e.g. coprocessor) is usually setup properly. Devices like
the ZyXEL GS1920 series use BootBase as start environment and skip
some of the basic initialization steps. rt-loader will fail in these
cases. Take care about the CP0 registers.

Additionally enhance the documentation of the printf implementation.
It was optimized during the different revisions of the initial PR.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19253
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-29 17:41:20 +02:00
Kazuhiro Ito
5d0a07c90f x86: 64: Enable PCI MMCONFIG
Some devices can't boot since kernel 6.6 without PCI MMCONFIG.

Fixes: https://github.com/openwrt/openwrt/issues/18228
Fixes: https://forum.openwrt.org/t/openwrt-24-10-x86-64-boot-hangs-after-pci-nvme-initialization/229086
Signed-off-by: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
Link: https://github.com/openwrt/openwrt/pull/19256
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-29 17:40:18 +02:00
John Audia
1831966406 kernel: bump 6.6 to 6.6.95
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.95

Removed upstreamed:
 backport-6.6/201-v6.16-mips-Add-std-flag-specified.patch[1]
 mvebu/patches-6.6/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[2]
 mvebu/patches-6.6/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[3]
 mvebu/patches-6.6/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[4]
 mvebu/patches-6.6/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[5]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=231f6a1de15b3f62eb8d6163a8b1bc5935025c69
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=ae48bc0b8be8786fd0ceab4b5a95c09b5aa93816
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=8a15a5438c5816a1003b88ce20f25ccc92909ee7
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=02c966a8869becb29282403540c88ba33e19c347
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=14a26f6692062a529b612420adb6c0b9290b25d3

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19248
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-28 22:55:13 +02:00
Shiji Yang
9ddeb30499 kernel: bump 6.12 to 6.12.35
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.35

Remove upstreamed patches:
  bcm27xx/patches-6.12/950-0961-media-imx335-Use-correct-register-width-for-HNUM.patch [1]
  bcm27xx/patches-6.12/950-1003-drivers-media-i2c-imx335-Fix-frame-size-enumeration.patch [2]
  gemini/patches-6.12/0001-net-ethernet-cortina-Use-TOE-TSO-on-all-TCP.patch [3]
  generic/backport-6.12/300-v6.16-mips-Add-std-flag-specified.patch [4]
  mvebu/patches-6.12/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch [5]
  mvebu/patches-6.12/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch [6]
  mvebu/patches-6.12/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch [7]
  mvebu/patches-6.12/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch [8]

Manually rebased patches:
  bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch [9]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=b93864e0865f235a791e69dc9ef4f896e559ef77
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=1f78790d988c9d55cf8d4b4d511d4b3e38ecb81d
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=2bd434bb0eeb680c2b3dd6c68ca319b30cb8d47f
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=6dbda47fe8bd6aa978c150bc9d321a286d2cc3f4
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=2cd2022c38fa26257cc6eec100ae122de9c1541c
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=133f17922b3dbae44fe583fb898b92b03558a657
[7] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=aefe45843ea667366e35df4fcfef5ff9051a86c9
[8] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=461d5a73ae45fbe6c300a6e64600f9792684eb52
[9] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=3f2098f4fba7718eb2501207ca6e99d22427f25a

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19249
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-28 22:47:48 +02:00
Markus Stockhausen
e32977f7ac realtek: Convert LGS310C to compressed kernel
There are too many supported Realtek devices so avoid activating the
rt loader recipe in the default builds. Just start with the LGS310C.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18397
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-28 16:14:55 +02:00
Markus Stockhausen
ae0a1f5b08 realtek: add rt-loader recipe
To make use of the new rt-loader provide the needed recipes.
This has been tested with the following devices:

- rtl838x Linksys LGS310: initramfs & flash
- rtl930x Zyxel XGS1210: initramfs

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18397
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-28 16:14:55 +02:00
Markus Stockhausen
ccbff8bbdd realtek: add rt-loader (runtime loader)
The bootloader of many Realtek switches only supports gzipped kernel images.
With limited flash space that might get critical in future versions. For better
compression allow support for compressed images. For this a new loader was
developed. Several ideas have been taken over from the existing lzma loader
but this has been enhanced to make integration simpler. What is new:

- Loader is position independent. No need to define load addresses
- Loader identifies device memory on its own
- Loader uses "official" upstream kernel lzma uncompress
  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/lib/decompress_unlzma.c
- Loader uses "official" UNMODIFIED nanoprintg that is used by several
  bare metal projects. https://github.com/charlesnicholson/nanoprintf

Compiled the loader ist just under 12KiB and during boot it will show:

rt-loader
Found RTL8380M (chip id 6275C) with 256MB
Relocate 2924240 bytes from 0x80100000 to 0x8fce0000
Extract kernel with 2900144 bytes from 0x8fce521c to 0x80100000...
Extracted kernel size is 9814907 bytes
Booting kernel from 0x80100000 ...

[    0.000000] Linux version 6.12.33 ...
[    0.000000] RTL838X model is 83806800
...

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18397
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-28 16:14:55 +02:00
Daniel Golle
e310d7187e mediatek: mt7988a: 6.12: move SoC dtsi changes to dedicated patch
Move changes to mt7988a.dtsi from patch adding the support for the
MT7988A Reference Board to a dedicated patch to ease maintainance.

Fixes: f9206d1111 ("kernel/mediatek: 6.12: replace downstream files by patches")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-06-26 01:10:34 +01:00
Daniel Golle
e46eeb89d7 mediatek: 6.12: mt7988a-rfb: complete conversion to all-UBI fitblk
Restore the conversion to an all-UBI NAND layout and use of fitblk on
SPI-NAND connected via the mt65xx SPI controller.
Apply the same also for SPI-NAND connected via the SNFI controller, and
use fitblk also for boot from SPI-NOR, eMMC and SD.

Fixes: f9206d1111 ("kernel/mediatek: 6.12: replace downstream files by patches")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-06-26 01:10:18 +01:00
Daniel Golle
5d266b49ac mediatek: 6.12: fix wrong SoC compatible of MT7988A RFB
The MediaTek MT7988A RFB currently hangs on boot as CCI fails to probe.
This is due to the wrong SoC compatible string "mediatek,mt7988" instead of
"mediatek,mt7988a". Fix that.

Fixes: f9206d1111 ("kernel/mediatek: 6.12: replace downstream files by patches")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-06-26 01:10:18 +01:00
Markus Stockhausen
6a1d7bf52b realtek: overwrite c22 polling unconditionally on RTL930x
During setup the mdio driver decides the polling mode of the 4 smi
busses depending on the DTS phy settings. This works as follows:

- set polling to c45 if at least one phy is ethernet-phy-ieee802.3-c45
- set polling to c22 if all phys are ethernet-phy-ieee802.3-c22

On RTL930x it is not possible to switch to c22 if uboot has set c45
before. Fix this by overwriting the bitfield properly. While we are
here:

- Sort variables according to kernel style (inverse christmas tree)
- Initialize fields properly with  = { 0 }
- Use GENMASK() for better readability
- Make use of RTMDIO_MAX_SMI_BUS

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19161
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 13:29:00 +02:00
Mantas Pucka
d324d6f07e qualcommbe: ipq95xx: add 8devices Kiwi-DVK support
Specifications:
  SoC:     Qualcomm IPQ9570
  RAM:     1 GiB DDR4
  Flash:   4 GiB eMMC
  ETH1:    2.5G Maxlinear GPY211C (48V POE-in)
  ETH2:    10G Realtek RTL8261N
  SFP:     10G SFP+ cage
  WLAN1:   QCN9274 2.4GHz 802.11b/g/n/ax/be 2x2
  WLAN2:   QCN9274 5-6GHz 802.11a/n/ac/ax/be 2x2
  PCIE0:   Gen3x1 mPCIe or M.2(B+M)
  PCIE1:   Gen3x1 M.2(A+E) or M.2(B+M)
  PCIE2:   Gen3x2 M.2(A+E)
  USB:     1x 3.0
  Console: USB-C via FTDI
  Button:  Reset

Install using sysupgrade:

  sysupgrade openwrt-qualcommbe-ipq95xx-8devices_kiwi-dvk-squashfs-sysupgrade.bin

Install using U-Boot:

 * Put factory.bin at TFTP server(192.168.2.254) as fwupdate.bin
 * Run 'run do_recovery' in U-Boot shell

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18435
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 10:20:38 +02:00
Mantas Pucka
10055976ec qualcommbe: package PPE and PCS drivers as kmods
This will allow more flexibility in using PHY drivers as kmods.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18435
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 10:20:37 +02:00
Mantas Pucka
c88c2d40d0 qualcommbe: add PCS driver fixes
After update to v6.12 some PCS driver fixes were dropped and additional
are needed due to updated driver.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18435
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 10:20:37 +02:00
Alexandru Gagniuc
8c14f33bb4 qualcommbe: v6.12: update PCS patches to use .pcs_validate()
The original PCS driver did not use the .pcs_validate() in
phylink_pcs_ops. The patches for 1000/2500base-x and 10g modes were
taken from this old driver, and thus did not bother with
.pcs_validate(). Thus, even though these modes are supported, phylink
would not enable them.

To fix these, list these modes in .pcs_validate(). Also list them in
ipq_pcs_clk_rate_get(). While the latter does not appear to change
behavior, it does change the clock rates listed under
/sys/kernel/debug/clk

Co-developed-by: Mantas Pucka <mantas@8devices.com>
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18435
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 10:20:37 +02:00
Mantas Pucka
2c6a830c3d qualcommbe: v6.12: drop upstreamed patch
0102-arm64-dts-qcom-ipq9574-Fix-USB-vdd-info.patch was merged in 6.12.34
Other patches automatically refreshed.

Fixes: cb1b656027 ("kernel: bump 6.12 to 6.12.34")
Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/19232
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-25 10:18:23 +02:00
Daniel Golle
3fb1605931 ipq806x: add support for IgniteNet SunSpot AC Wave2
The IgniteNet SS-W2-AC2600 is an 802.11ac outdoor (IP-55) access point.
FCC ID: HEDSSW2AC2600

Specification:
 - Qualcomm dual-core IPQ8068 @ 1.4 GHz
 - 256 MB of DDR3L RAM (2x Winbond W631GU6KB-12)
 - 16 MB of SPI NOR (Winbond W25Q128FW)
 - 128 MB of NAND (Macronix MX30UF1G18AC)
 - Qualcomm QCA9994 2.4GHz 802.11bgn
 - Qualcomm QCA9994 5GHz 802.11ac
 - 2 x 10/100/1000 Mbit/s Ethernet
 - 115200, 8N1 RS-232 console (unpopulated RJ-45)
 - Reset button
 - Power and WLAN LEDs
 - Powered via 802.3at PoE or 12V 2A barrel connector

Tested-by: Elektra Wagenrad <onelektra@gmx.net>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-06-25 02:07:02 +01:00
Erik Servili
9df3d6b21c qualcommax: ipq60xx: WAX610 remove unmountable oem partitions on upgrade
When using TFTP install method on a fresh unit, wifi_fw and ubi_rootfs UBI volumes must be removed or will hang when mounting.

Signed-off-by: Erik Servili <serverror@serverror.com>
Link: https://github.com/openwrt/openwrt/pull/19215
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-24 13:51:15 +02:00
Tim Harvey
2b0b353104 imx: venice: disable PCI AER
As a workaround to an issue causing hang during PCI enumeration on
imx8mp with a specific PCIe switch, disable PCI AER.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19189
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-23 11:49:12 +02:00
Tim Harvey
6bb42ddf0e 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

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19189
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-23 11:49:12 +02:00
Tim Harvey
5c9460a4da imx: 6-12: add additional patches
Backport some additional upstream patches:
 - 6.13-arm64-dts-imx8mm-venice-gw73xx-remove-compatible-in-overlay-files.patch
   (this resolves some issues when using dt overlays on gw73xx-0x)
 - 6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch
 - pending-PCI-imx6-Remove-apps_reset-toggle-in-_core_reset-function
   (these resolve enumeration issues on imx8mm/imx8mp with a pcie switch)

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19189
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-23 11:49:12 +02:00
Anton Yu. Ivanusev
7aecbefb52 ramips: mt76x8: add support for Keenetic 4G (KN-1212)
Specification:
SoC: MediaTek MT7628NN
RAM: 128 MB, EtronTech EM68C16CWQG-25H (DDR2)
Flash: 32MB, Winbond 25Q256JVFQ (Dual Boot, SPI)
Switch: MediaTek MT7628AN, 4 ports 100 Mbps
WiFi: MediaTek MT7603 2T2R/2.4GHz 802.11n
GPIO: 3 buttons (Wi-Fi, Reset, FN), 3 LEDs (Power, Internet, Wi-Fi), 1 port USB 2.0

Disassembly:
At the bottom, under the LEDs, there are 2 screws hidden by rubber feet. After removing the screws, pry the gray plastic part around (it is secured with latches) and remove it.

Serial Interface:
The serial interface can be connected to the 5 pin dots located on the right between the operating mode switch and the antenna.
Pins (from antenna to operating mode switch):
VCC
TX
RX
NC
GND
Settings: 115200, 8N1

Flashing via OEM recovery software:
1. Download the OEM recovery software from the manufacturer's website
2. Download the firmware image (for OpenWRT it is *-squashfs-factory.bin), rename it to KN-1212_recovery.bin
3. Replace the file in the fw folder OEM recovery software with the file from step 2.
4. Run the OEM recovery software and follow the instructions.

Flashing via TFTP:
1. Connect your PC and router to port 1-3, configure PC interface using IP 192.168.1.2, mask 255.255.255.252
2. Serve the firmware image (for OpenWRT it is *-squashfs-factory.bin) renamed to KN-1212_recovery.bin via TFTP
3. Power up the router while pressing Reset button on the back
4. Release Restart button when Power LED starts blinking

To revert back to OEM firmware:
The return to the OEM firmware is carried out by using the methods described above with the help of the appropriate firmware image.

When using OEM bootloader, the firmware image size cannot exceed the size of one OEM «Firmware_x» partition or Kernel + rootFS size.

Signed-off-by: Anton Yu. Ivanusev <ivanusevanton@yandex.ru>
Link: https://github.com/openwrt/openwrt/pull/19157
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 23:13:27 +02:00
Markus Stockhausen
83880cd01e realtek: Use Otto timer on RTL931x
Until now the timer management on the RTL931x devices depends
on the MIPS default timer. Looking at the clock progress on
these devices one can see that it is totally off. It is running
at half the required speed (e.g. if 1 minute passes the date
command shows that according to the timers only 30 seconds have
elapsed). This is a mix from wrong DTS and bad startup code.

This is not only a cosmetic issue but has effects on every
delay operation inside the kernel. Switch RTL931x to the proven
Otto timer.

Tested on LGS352C based on RTL9311.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19205
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 23:12:02 +02:00
Markus Stockhausen
ee46517a63 realtek: build Otto timer for RTL931x
The Otto timer is very helpful on the RTL931x devices.
Include it into the builds.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19205
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 23:12:02 +02:00
Markus Stockhausen
f1257b1ca3 realtek: backport MIPS GIC patch
Upstream has gained support for forced affinity settings in the MIPS
GIC interrupt controller. This is needed to enable the Otto timer on
the RTL931x platform. See

https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/
commit/?id=2250db8628a0d8293ad2e0671138b848a185fba1

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19205
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 23:12:02 +02:00
INAGAKI Hiroshi
97af506edf mvebu: add support for Check Point V-81
Check Point V-80 (Quantum Spark 1590 Appliance) is an Appliance, based
on Armada 8040 (88F8040).

Specification:

- SoC             : Marvell Armada 8040 (88F8040)
- RAM             : DDR4 2 GiB (4x 512 MiB chip)
- Flash           : eMMC 4 GiB
- Ethernet        : 10x 10/100/1000 Mbps
  - LAN 1-8       : Marvell 88E6393X
  - WAN           : Marvell 88E1512
  - DMZ           : Marvell 88E1512 (RJ-45/SFP combo)
- LEDs/Keys (GPIO): 11x/1x
- UART            : "CONSOLE" port (USB 1.1 Type-C)
  - chip          : Silicon Labs CP2102N
  - port          : ttyS0
  - settings      : 115200bps 8n1
- HW Monitoring   : 2x nuvoTon NCT7802Y
- USB             : USB 3.0 Type-A
- Power           : 12 VDC, 3.3 A
  - plug          : DC Plug 2.5/5.5 mm (inner/outer)

Flash instruction (common):

1. Boot V-81 normally
2. Login to the vendor CLI (default: admin/admin) and login to the Linux
   CLI by `expert` command
3. Update U-Boot environment variables by the following commands

   fw_setenv bootcmd_ow_usb 'usb start; load usb 0:1 ${loadaddr} boot.scr && source ${loadaddr}'
   fw_setenv bootcmd_ow_sd 'load mmc 0:1 ${loadaddr} boot.scr && source ${loadaddr}'
   fw_setenv bootcmd_ow_emmc 'run set_mmc_internal; mmc read ${loadaddr} ${prim_header_mmc_blk} 4 && source ${loadaddr}'
   fw_setenv bootcmd 'run bootcmd_ow_usb; run bootcmd_ow_sd; run bootcmd_ow_emmc; run bootcmd_part${activePartition};'

   Attention: don't forget single quatations of values to prevent
              expansion of variables

4. Turn off the device

Flash instruction (USB-boot/SD-boot):

1. Extract and burn (squashfs|ext4)-sdcard.img.gz to USB storage or
   MicroSD card
2. Connect that storage to V-81
3. Turn on V-81 and it will be booted with OpenWrt in that USB storage

Flash instruction (eMMC-boot):

1. Copy initramfs image, dtb and bootsctipt to the USB storage with
   renaming

   initramfs.bin -------> Image
   dtb -----------------> armada-8040-v-81.dtb
   bootscript (.scr) ---> boot.scr

2. Connect that storage to the USB 3.0 port on V-81
3. Turn on V-81 and it will be booted with OpenWrt initramfs image in
   that USB storage
4. Upload (squashfs|ext4)-sysupgrade.gz to V-81
5. Perform sysupgrade with the uploaded image
6. Wait ~100 seconds to complete flashing

Reverting to stock firmware:

1. Turn on V-81 and interrupt booting by Ctrl + C
2. Select "4. Restore to Factory Defaults (local)"
3. Wait ~180 seconds to complete restoring and rebooting

Notes:

- The partition table in the internal eMMC has single partition, but
  "blkdevparts=" parameter will be passed from the bootloader and that
  definition will be used instead.

- The port-side LED pairs of RJ-45/SFP ports on V-81 are switched by a
  GPIO pin of pin7 on &cp0_gpio2. (High(1): RJ-45, Low(0): SFP)
  This needs to be switched manually.

- The MicroSD card slot is too unstable and the following messages are
  printed without "marvell,xenon-phy-slow-mode;" property.

  [   97.060851] mmc0: error -84 whilst initialising SD card
  [   97.137049] mmc0: error -84 whilst initialising SD card
  [   97.214315] mmc0: error -84 whilst initialising SD card
  ...

- There are no detailed information about maximum power consumption
  limit of the SFP port or optional DSL-SFP modules sold officially.
  But the power requirement of almost DSL-SFP modules are 3.3V/700mA, so
  set the maximum value of the SFP port to 2000 mW (Power Level III).

- Do not insert a MicroSD card before turning of the device when OpenWrt
  installation. The stock firmware deletes all files in the first
  partition automatically, to use it as a storage for logs.

MAC addresses:

LAN: 00:1C:7F:xx:xx:FA (mmcblk1boot0, ethaddr  (text))
WAN: 00:1C:7F:xx:xx:F9 (mmcblk1boot0, eth2addr (text))
DMZ: 00:1C:7F:xx:xx:FB (mmcblk1boot0, eth1addr (text))

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16904
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 22:17:20 +02:00
INAGAKI Hiroshi
35c851b813 mvebu: add support for Check Point V-80
Check Point V-80 (Quantum Spark 1550 Appliance) is an Appliance, based
on Armada 7040 (88F7040).

Specification:

- SoC             : Marvell Armada 7040 (88F7040)
- RAM             : DDR4 2 GiB (4x Nanya NT5AD512M8D3-HR)
- Flash           : eMMC 4 GiB (Toshiba THGBMNG5D1LBAIL)
- Ethernet        : 6x 10/100/1000 Mbps
  - LAN 1-5       : Marvell 88E6352
  - WAN           : Marvell 88E1512
- LEDs/Keys (GPIO): 6x/1x
- UART            : "CONSOLE" port (USB 1.1 Type-C)
  - chip          : Silicon Labs CP2102N
  - port          : ttyS0
  - settings      : 115200bps 8n1
- HW Monitoring   : 2x nuvoTon NCT7802Y
- USB             : USB 3.0 Type-A
- Power           : 12 VDC, 3.3 A
  - plug          : DC Plug 2.5/5.5 mm (inner/outer)

Flash instruction (common):

1. Boot V-80 normally
2. Login to the vendor CLI (default: admin/admin) and login to the Linux
   CLI by `expert` command
3. Update U-Boot environment variables by the following commands

   fw_setenv bootcmd_ow_usb 'usb start; load usb 0:1 ${loadaddr} boot.scr && source ${loadaddr}'
   fw_setenv bootcmd_ow_emmc 'run set_mmc_internal; mmc read ${loadaddr} ${prim_header_mmc_blk} 4 && source ${loadaddr}'
   fw_setenv bootcmd 'run bootcmd_ow_usb; run bootcmd_ow_emmc; run bootcmd_part${activePartition};'

   Attention: don't forget single quatations of values to prevent
              expansion of each variables

4. Turn off the device

Flash instruction (USB-boot):

1. Burn (squashfs|ext4)-sdcard.img.gz to USB storage
2. Connect that storage to the USB 3.0 port on V-80
3. Turn on V-80 and it will be booted with OpenWrt in that USB storage

Flash instruction (eMMC-boot):

1. Copy initramfs image, dtb and bootsctipt to the USB storage with
   renaming

   initramfs.bin -------> Image
   dtb -----------------> armada-7040-v-80.dtb
   bootscript (.scr) ---> boot.scr

2. Connect that storage to the USB 3.0 port on V-80
3. Turn on V-80 and it will be booted with OpenWrt initramfs image in
   that USB storage
4. Upload (squashfs|ext4)-sysupgrade.gz to V-80
5. Perform sysupgrade with the uploaded image
6. Wait ~100 seconds to complete flashing

Reverting to stock firmware:

1. Turn on V-80 and interrupt booting by Ctrl + C
2. Select "4. Restore to Factory Defaults (local)"
3. Wait ~180 seconds to complete restoring and rebooting

Notes:

- V-80 has some HW versions. Internal MicroSD card slot and mPCIe slot
  is available on some HW versions, but not on the other HW versions.

  confirmed (MicroSD/mPCIe slots):

  - 1.0.1: unavailable
  - 1.0.3: available

- The partition table in the internal eMMC has single partition, but
  "blkdevparts=" parameter will be passed from the bootloader and that
  definition will be used instead.

MAC addresses:

LAN: 00:1C:7F:xx:xx:4B (mmcblk1boot0, ethaddr (text))
WAN: 00:1C:7F:xx:xx:4A (mmcblk1boot0, eth1addr (text))

Tested-by: Yanase Yuki <dev@zpc.st>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16904
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 22:17:20 +02:00
INAGAKI Hiroshi
2c379af543 mvebu: add specific signature support to Build/boot-scr
Add image-specific signature support to Build/boot-scr.
This is required to switch root devices passed to the kernel on Check
Point V-80 and V-81.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16904
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 22:17:20 +02:00
INAGAKI Hiroshi
61f3e2d132 mvebu: cortexa72: enable emmc feature
Enable "emmc" feature to use the emmc helpers on sysupgrade.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16904
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 22:17:20 +02:00
INAGAKI Hiroshi
e10a811408 mvebu: cortexa72: enable CONFIG_CMDLINE_PARTITION for blkdevparts
Enable CONFIG_CMDLINE_PARTITION symbol to use "blkdevparts=" parameter
support on Check Point V-80.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16904
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 22:17:20 +02:00
John Audia
515db1e069 x86: config-6.12: enable RAPL interface
Expose the sysfs interface to userspace tools for power monitoring.
Useful for tracking energy usage in CPU package, cores, DRAM, etc.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18255
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 20:10:12 +02:00
jinkela air
1e00b92597 mediatek: Ruijie RG-X60 Pro: Fix LAN port status light
Fix the status indicator light of the LAN port.

Signed-off-by: jinkela air <air_jinkela@163.com>
Link: https://github.com/openwrt/openwrt/pull/19135
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 19:58:29 +02:00
cheng wang
594da824a4 mediatek: add support for Cudy TR3000 256MB v1 flash version
This device is similar to the Cudy TR3000 v1 128MB version.
The difference is that the flash memory is 128mb and the other is 256mb

Hardware:
 - SoC: MediaTek MT7981B
 - CPU: 2x 1.3 GHz Cortex-A53
 - Flash: 256 MiB SPI NAND
 - RAM: 512 MiB
 - WLAN: 2.4 GHz, 5 GHz (MediaTek MT7976CN, 802.11ax)
 - Ethernet: 1x 10/100/1000/2500 Mbps RTL8221B WAN, 1x10/100/1000 Mbps MT7981 LAN
 - USB 3.0 port
 - Buttons: 1 Reset button, 1 slider button
 - LEDs: 1x Red, 1x White
 - Power: 5 VDC, 3 A

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.

Signed-off-by: cheng wang <typedelta@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19167
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 19:17:25 +02:00
Jonas Jelonek
12f13b227c realtek: remove patches, files and config for 6.6
Remove all files etc. for 6.6 because 6.12 is default now.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19139
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:38:11 +02:00
Jonas Jelonek
1cd68e915d realtek: switch to 6.12 as default
Use Linux 6.12 as default for all subtargets.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19139
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:38:11 +02:00
Markus Stockhausen
cbf0d662c2 realtek: make use of serdes helper for Zyxel XGS1210-12
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. For
this device it is only a substitution of the existing DTS configuration.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
eea6c5b3ea realtek: make use of serdes helper for Zyxel XGS1250-12
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. For
this device it is only a substitution of the existing DTS configuration.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
761b5d3906 realtek: make use of serdes helper for TP-Link TL-ST1008F v2.0
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. For
this device it is only a substitution of the existing DTS configuration.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
44df763825 realtek: make use of serdes helper for XIKESTOR SKS8300-8X
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. For
this device it is only a substitution of the existing DTS configuration.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
880565956d realtek: make use of serdes helper for Zyxel GS1900-24(HP) v1/v2
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
13a6e0620f realtek: make use of serdes helper for D-Link DGS-1210-26
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
cfd2db41a4 realtek: make use of serdes helper for D-Link DGS-1210-10P
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
5fd72e7518 realtek: make use of serdes helper for Zyxel GS1900-10HP
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
8b04cddd2e realtek: make use of serdes helper for TP-Link SG2xxx
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
7b2b095cc9 realtek: make use of serdes helper for Panasonic M8EG PN28080K
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
0cf2db1fa1 realtek: make use of serdes helper for Netgear GS310TP v1
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

REMARK! The original commit c829bc1f2c ("realtek: Add support for
Netgear S350 series switches GS308T and GS310TP") says that the SFP
ports are untested. Looking at device internal pictures from
https://techinfodepot.shoutwiki.com/wiki/Netgear_GS310TP there are no
external phys for the SFP ports. So fix port description.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
d3dbd97043 realtek: make use of serdes helper for HPE 1920 8G
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:33 +02:00
Markus Stockhausen
4b72463f3c realtek: make use of serdes helper for Engenius EWS2910P
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:32 +02:00
Markus Stockhausen
b172a2473b realtek: make use of serdes helper for D-Link DGS-1210-10MP
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:32 +02:00
Markus Stockhausen
9512db4362 realtek: make use of serdes helper for Linksys LGS310C
Use the new INTERNAL_PHY_SDS() helper to describe the SFP ports. With
this change the driver now knows that ports 24/26 are driven by serdes
4/5.

For the RTL838x devices this is currently only an additional information
for the mdio bus. It is not evaluated further because everything is
hardcoded.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:32 +02:00
Markus Stockhausen
5703ca465c realtek: add dts helper for internal phy with serdes
Until now only the RTL930x devices make use of the following notation.

  phy8: ethernet-phy@8 {
    compatible = "ethernet-phy-ieee802.3-c22";
    phy-is-integrated;
    reg = <8>;
    sds = <3>;
  };

This indicates that the link is driven by a serdes directly without
external phy. As the devices have multiple serdes it must be clarified
what serdes is responsible for that port.

Nevertheless all other devices have the same requirements. E.g. RTL838x
usually drives port 24 from serdes 4 and port 26 from serdes 5. All this
currently works because the driver has a lot of hardcoded port/serdes
mapping.

Make the situation better by adding dts helpers that can describe the
topology as needed.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 16:37:32 +02:00
Hauke Mehrtens
f62c33bc4a kernel: Fix IPv6 UDP fragmentation regression
Fixes a IPv6 UDP fragmentation regression introduced in v6.6.93.

Fixes: https://github.com/openwrt/openwrt/issues/19198
Link: https://github.com/openwrt/openwrt/pull/19199
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-22 13:32:51 +02:00
Hauke Mehrtens
a944a6d6b1 kernel: Add missing config option
This broke the armsr/armv8 build.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Link: https://github.com/openwrt/openwrt/pull/19200
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 11:28:09 +02:00
Hauke Mehrtens
c695cf6109 kernel: Refresh kernel configs
Run this script:
./scripts/kconfig-reorder.sh

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Link: https://github.com/openwrt/openwrt/pull/19200
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 11:28:09 +02:00
Joe Holden
502b2f4ee5 realtek: switch HP-1920-48G to new shared gpio driver
This allows the SFPs to work without manually switching port type.

Signed-off-by: Joe Holden <jwh@zorins.us>
Link: https://github.com/openwrt/openwrt/pull/18914
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 11:13:01 +02:00
Joe Holden
a37b47a512 rtl839x: fix sfp ports on HPE 1920-48G PoE
The 4 sfp ports on the RTL8214FC are actually wired to the gpio expander instead of internal.

Relatively minor changes to the dts are required, simply overriding some of the properties
inherited from rtl8393_hpe_1920.dtsi.

The speed is reported as 100/full and the media type is incorrect, but the ports pass traffic
just fine.

Signed-off-by: Joe Holden <jwh@zorins.us>
Link: https://github.com/openwrt/openwrt/pull/18914
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 11:13:01 +02:00
Zheng Zhang
f1584bc733 qualcommbe: enable CONFIG_THERMAL and CONFIG_THERMAL_HWMON
The Qualcomm TSENS driver only exposes sensors to as a thermal
zone without registering hwmon, making these temperature sensors
unreadable by lm-sensors. This commit enables CONFIG_THERMAL and
CONFIG_THERMAL_HWMON for qualcommbe target to access the sensors
from hwmon.

Suggested-by: Yao Zi <ziyao@disroot.org>
Signed-off-by: Zheng Zhang <everything411@qq.com>
Link: https://github.com/openwrt/openwrt/pull/19137
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 09:51:01 +02:00
Zheng Zhang
7c22fce0f5 qualcommax: enable CONFIG_THERMAL and CONFIG_THERMAL_HWMON
The Qualcomm TSENS driver only exposes sensors to as a thermal
zone without registering hwmon, making these temperature sensors
unreadable by lm-sensors. This commit enables CONFIG_THERMAL and
CONFIG_THERMAL_HWMON for qualcommax targets to access the sensors
from hwmon.

Suggested-by: Yao Zi <ziyao@disroot.org>
Signed-off-by: Zheng Zhang <everything411@qq.com>
Link: https://github.com/openwrt/openwrt/pull/19137
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-22 09:51:01 +02:00
Thomas Richard
dd57c070e9 stm32: modules: add missing dependency for stm32-dfsdm-adc
Now on Linux 6.12, stm32-dfsdm-adc also depends on
kmod-industrialio-backend.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18740
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 14:28:42 +02:00
Thomas Richard
774a22e00e stm32: modules: add kmod-stm32-dcmipp package
Add kernel module package for Digital Camera Memory Interface Pixel
Processor (DCMIPP) support for kernel 6.12.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18740
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 14:28:42 +02:00
Thomas Richard
b1e93ee54f stm32: enable 6.12 testing kernel
The stm32 target now supports 6.12 kernel as testing.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18740
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 14:28:42 +02:00
Thomas Richard
db05331f38 stm32: 6.12: update kernel 6.12 config
Update stm32mp1 kernel config for 6.12.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18740
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 14:28:42 +02:00
Thomas Richard
1cdbddae6e stm32: 6.12: refresh kernel patches
Drop upstreamed patches and refresh remaining ones.

Manually rebased:
- 033-ARM-dts-stm32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch
- 035-ARM-dts-stm32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18740
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 14:28:42 +02:00
Thomas Richard
234eadd07e kernel/stm32: Restore kernel files for v6.6
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: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18740
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 14:28:42 +02:00
Thomas Richard
9e57133944 kernel/stm32: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18740
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 14:25:44 +02:00
John Audia
836a4cc6d3 kernel: bump 6.6 to 6.6.94
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.94

Removed upstreamed:
	generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch[1]
	generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch[2]
	generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch[3]
	mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch[4]
	mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch[5]

Added new back-port:
	generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch[6]
All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=29abb7fc82443bee273ba4623ce319bf7ba1d43d
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=59d5f3134b5c265df233b7f385bbe718191411be
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=2e02edb66427e3b8752e1f3dd3cfc1bef3f2357b
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=39ed85ae485d991ffb24d25629a679c0b22e2d8f
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=8f0f45a312151a52aae920a091ea4b454ac97caf
6. Addresses a build failure for pcc

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19183
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 13:54:17 +02:00
Shiji Yang
cb1b656027 kernel: bump 6.12 to 6.12.34
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.34

Remove upstreamed patches:
  generic/backport-6.12/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch [1]
  generic/backport-6.12/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch [2]
  generic/backport-6.12/610-06-v6.16-net-dsa-b53-do-not-enable-RGMII-delay-on-bcm63xx.patch [3]
  generic/backport-6.12/610-08-v6.16-net-dsa-b53-allow-RGMII-for-bcm63xx-RGMII-ports.patch [4]
  generic/backport-6.12/610-09-v6.16-net-dsa-b53-do-not-touch-DLL_IQQD-on-bcm53115.patch [5]
  generic/backport-6.12/611-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch [6]

Manually rebased patches:
  bcm27xx/patches-6.12/950-0665-drm-vc4-tests-Drop-drm-parameter-for-vc4_find_crtc_f.patch [7]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=408ca1d1803b223d615f9021055f9ccb4f4863ea
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=2a98786e258718ff93ef6d6bd26a9a39076e0cb7
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=6d1c93a5c6b0ae87bb7001d8d6fdef3b3be9c6c6
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=1aa31695bf0dc1ee3e6c559c14db7fd05b6bb102
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=b2fc08d276797e529cacad6fa9d704a7367090b5
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=2c32fc56c05aa69439fdfd5e0b25f57e2a158627
[7] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.34&id=aba86d49e5ac3700295ab8c417436abacc19cc32

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19184
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-21 13:50:11 +02:00
Stefan Kalscheuer
7e014bbe0b mvebu: add 6.12 testing kernel
Add 6.12 testing kernel for mvebu target.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/18975
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 23:09:40 +02:00
Stefan Kalscheuer
819f78463c mvebu: 6.12: refresh kernel config
Add new and remove obsolete symbols for Kernel 6.12

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/18975
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 23:09:40 +02:00
Stefan Kalscheuer
1738e87632 mvebu: 6.12: refresh patches
Drop upstreamed patches:
0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch
0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch
820-v6.11-01-dt-bindings-firmware-add-cznic-turris-omnia-mcu-bind.patch
820-v6.11-02-platform-cznic-Add-preliminary-support-for-Turris-Om.patch
820-v6.11-03-platform-cznic-turris-omnia-mcu-Add-support-for-MCU-.patch
820-v6.11-04-platform-cznic-turris-omnia-mcu-Add-support-for-powe.patch
820-v6.11-05-platform-cznic-turris-omnia-mcu-Add-support-for-MCU-.patch
820-v6.11-06-platform-cznic-turris-omnia-mcu-Add-support-for-MCU-.patch
820-v6.11-07-ARM-dts-turris-omnia-Add-MCU-system-controller-node.patch
820-v6.11-08-ARM-dts-turris-omnia-Add-GPIO-key-node-for-front-but.patch
820-v6.11-09-platform-cznic-turris-omnia-mcu-Depend-on-OF.patch
820-v6.11-10-platform-cznic-turris-omnia-mcu-Depend-on-WATCHDOG.patch
820-v6.11-11-platform-cznic-turris-omnia-mcu-fix-Kconfig-dependen.patch

Manually refreshed:
310-linksys-use-eth0-as-cpu-port.patch
350-drivers-thermal-step_wise-add-support-for-hysteresis.patch
901-dt-bindings-Add-IEI-vendor-prefix-and-IEI-WT61P803-P.patch
902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch
910-drivers-leds-wt61p803-puzzle-improvements.patch

All other patches automatically refreshed.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/18975
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 23:09:40 +02:00
Stefan Kalscheuer
6354ac76a4 kernel/mvebu: Restore kernel files for v6.6
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: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/18975
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 23:09:40 +02:00
Stefan Kalscheuer
1e1e91a213 kernel/mvebu: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/18975
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 23:09:40 +02:00
Chukun Pan
782afec6c1 mediatek: 6.12: fix cci driver probe for mt7988d
The patch of kernel 6.12 missing cpufreq part for
mt7988d, causing the ccifreq driver probe to fail.
Add it to avoid mt7988d devices boot hang.

Fixes: a9822e8 ("kernel/mediatek: 6.12: drop patches which have been applied upstream")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2025-06-19 22:53:04 +02:00
Shiji Yang
9817c9186a x86: move common kconfig symbols into target shared config
These kernel config symbols are selected by all sub-targets. We
can merge them together to simplify the config files.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18632
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 22:49:43 +02:00
Shiji Yang
805b5d893c x86: refresh kernel symbol configs
All kernel config symbols are refreshed by `make kernel_oldconfig`.
Some symbols are moved to the generic/config-6.12 because the
refresh tool will automatically trim them.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18632
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 22:49:43 +02:00
Markus Stockhausen
23faf4c485 realtek: activate MIPS power cluster controller for RTL931x
The SMP environment is prepared well for the RTL93X. Now describe the
power cluster controller in the DTS. Tested on RTL9311 based Linksys
LGS352C.

Without patch:

root@OpenWrt:~# dmesg | grep CPU
[    0.140425] CPU1 revision is: 0001a120 (MIPS interAptiv (multi))
[    0.191952] Synchronize counters for CPU 1: done.
[    1.232191] CPU2: failed to start
[    1.237863] No online CPU in core 1 to start CPU3
[    2.273784] CPU3: failed to start
[    2.277589] smp: Brought up 1 node, 2 CPUs

root@OpenWrt:~# cat /proc/cpuinfo  | grep -E "model|proc"
processor               : 0
cpu model               : MIPS interAptiv (multi) V2.0
processor               : 1
cpu model               : MIPS interAptiv (multi) V2.0

With patch:

root@OpenWrt:~# dmesg | grep CPU
[    0.000000] CPU0 revision is: 0001a120 (MIPS interAptiv (multi))
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Failed to get CPU clock: -2
[    0.000000] CPU frequency from device tree: 1000MHz
[    0.133360] smp: Bringing up secondary CPUs ...
[    0.140418] CPU1 revision is: 0001a120 (MIPS interAptiv (multi))
[    0.191950] Synchronize counters for CPU 1: done.
[    0.230103] CPU2 revision is: 0001a120 (MIPS interAptiv (multi))
[    0.289220] Synchronize counters for CPU 2: done.
[    0.326189] CPU3 revision is: 0001a120 (MIPS interAptiv (multi))
[    0.378861] Synchronize counters for CPU 3: done.
[    0.413829] smp: Brought up 1 node, 4 CPUs

processor               : 0
cpu model               : MIPS interAptiv (multi) V2.0
processor               : 1
cpu model               : MIPS interAptiv (multi) V2.0
processor               : 2
cpu model               : MIPS interAptiv (multi) V2.0
processor               : 3
cpu model               : MIPS interAptiv (multi) V2.0

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19110
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 21:56:49 +02:00
Markus Stockhausen
a51359aafd kernel: mtdsplit_uimage: return 0 if not fatal
Introduced with Linux 6.7, in commit:
5c2f7727d437 ("mtd: mtdpart: check for subpartitions parsing result"),
when a parser returns an error, this will be passed up, and
consequently, all parent mtd partitions get torn down.

Adjust the mtdsplit_uimage driver to only return an error if there is a
critical problem in reading from the mtd device or allocating memory.
Otherwise return 0 to indicate that no partitions were found.
Also add logging to indicate what went wrong.

E.g. on Realtek devices that are booted for the first time through
initramfs with OpenWrt never installed before boot log will show

[    0.975518] Creating 7 MTD partitions on "spi0.0":
[    0.981062] 0x000000000000-0x0000000e0000 : "u-boot"
[    1.041320] 0x0000000e0000-0x0000000f0000 : "u-boot-env"
[    1.060683] 0x0000000f0000-0x000000100000 : "u-boot-env2"
[    1.080992] 0x000000100000-0x000000200000 : "jffs2-cfg"
[    1.100988] 0x000000200000-0x000000300000 : "jffs2-log"
[    1.120599] 0x000000300000-0x000000fe0000 : "firmware"
[    1.157426] mtdsplit_uimage: no rootfs after uImage in "firmware"
[    1.176456] mtdsplit_uimage: no rootfs after uImage in "firmware"
[    1.200262] 0x000000fe0000-0x000001000000 : "log"

Similar issues were fixed before with commit ade045084b
("kernel: mtdsplit_minor: return 0 if not fatal") and
c78765213e ("kernel: mtdsplit_uimage: return 0 if not fatal")

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19163
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 20:51:18 +02:00
Valeriy Manzhos
f7dba4ebbc 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

Signed-off-by: Valeriy Manzhos <manzhos.va@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 20:42:02 +02:00
Yijie Jin
c35f2a23c8 ramips: mt7621: add support for JDCloud RE-SP-01B
JDCloud RE-SP-01B is a dual-band WiFi 5 router based on the MT7621AT.

Specifications:
- SoC: MediaTek MT7621AT
- RAM: 512MB DDR3
- Flash: 32MB SPI NOR
- WiFi: MediaTek MT7603EN (2.4GHz), MediaTek MT7615N (5GHz)
- Ethernet: 1x WAN, 2x LAN (Gigabit Ethernet)
- LEDs: red, blue, green (GPIO controlled)
- Button: Reset (GPIO controlled)
- eMMC: Single onboard (32GB/64GB/128GB)
- USB: 1x USB 2.0 port

MAC Address Structure:
The MAC addresses share the structure DC:D8:7C:XX:XX:XX, where:
- WAN, LAN, and 2.4GHz WiFi: same as the label MAC address.
- 5GHz WiFi: label MAC address + 0x800000.

The manufacturer writes the label MAC address at different
offsets depending on the storage version of the device:

e.g.
128GB version:  &config + 0x442a
64GB version:   &config + 0x4429

So `get_mac_ascii()` is used here to search for the
base label MAC address of the device.

Ref:
https://github.com/openwrt/openwrt/pull/17409#discussion_r1899674262
https://github.com/immortalwrt/immortalwrt/commit/c0c480d

Flash Instruction:
A 3rd party bootloader is required to boot the image. You can
use a SOP16 test clip to burn the image/bootloader to the flash.

The official bootloader does provide a web recovery interface
which only accepts an official image. To access it, you will
need to hold the reset button and power on the device, set your
IP address to 192.168.68.2 and visit http://192.168.68.1.

Co-authored-by: Chukun Pan <amadeus@jmu.edu.cn>
Signed-off-by: Yijie Jin <jinyijie@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/17409
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 20:33:57 +02:00
Markus Stockhausen
22854586c6 realtek: fix/add switchcore syscon nodes for RTL838x/RTL839x/RTL931x
The switchcore node is the central location that describes the Realtek switch
register addresses starting at 0x1b000000. It will be used by current and
future regmap enabled device drivers. The upstream MDIO driver already makes
use of it by calling syscon_node_to_regmap(dev->parent->of_node);

In the current DTS base we have 3 issues that should be fixed:

- rtl838x.dtsi has a length of 0x20000 instead of 0x10000
- rtl839x.dtsi has a length of 0x20000 instead of 0x10000
- rtl931x.dtsi has no switchcore node at all

Align these mismatches with the "good" RTL930x template.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18642
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 20:28:30 +02:00
Jonas Jelonek
0bd5d5f748 realtek: rtl931x: fix I2C sda pin
The drivers for I2C bus and mux for RTL931x have an incorrectly defined
SDA0 pin number, causing an error with correct pin numbers specified in
the device tree.

Using the `show tech-support board` on the vendor firmware of a Netgear
MS510TXM shows the correct pin numbers but they don't work with the
drivers. So fix this.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19171
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 19:31:41 +02:00
Jonas Jelonek
24d9fdff2e realtek: rtl931x: add missing function reference for l2_hash_seed
Add missing function reference for the l2_hash_seed call in rtl931x_reg
in the rtl83xx DSA driver part.
While at it, rename the referenced function to proper naming convention
and simplify its content.

The missing reference causes a hard crash after a short time (on
MS510TXM) because the driver assumes the reference always exists.

[  111.785559] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 00000000, ra == 805469a0
[  111.800991] Oops[#1]:
[  111.801026] CPU: 0 PID: 11 Comm: kworker/u8:0 Tainted: G           O       6.12.33 #0
[  111.801046] Workqueue: dsa_ordered dsa_slave_switchdev_event_work
...
[  111.880600] epc   : 00000000 0x0
[  111.884219] ra    : 805469a0 rtl83xx_port_fdb_add+0x7c/0x204
[  111.890570] Status: 11000403 KERNEL EXL IE
[  111.895263] Cause : 50800008 (ExcCode 02)
[  111.899731] BadVA : 00000000
[  111.902946] PrId  : 0001a120 (MIPS interAptiv (multi))
[  111.956086] Process kworker/u8:0 (pid: 11, threadinfo=0b107c25, task=265aeb31, tls=00000000)
...
[  112.015167] Call Trace:
[  112.019549] [<80170b04>] load_balance+0x494/0x708
[  112.025022] [<807bb368>] dsa_port_do_fdb_add+0x24c/0x340
[  112.031048] [<807bc868>] dsa_switch_event+0xd44/0x13cc
[  112.036845] [<8015867c>] raw_notifier_call_chain+0x48/0x88
[  112.043031] [<807bcf3c>] dsa_tree_notify+0x10/0x3c
[  112.048395] [<807b2a64>] dsa_port_bridge_host_fdb_add+0x15c/0x190
[  112.055459] [<807b4e40>] dsa_slave_switchdev_event_work+0x164/0x1cc
...

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19170
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-19 19:22:45 +02:00
Shiji Yang
9b777547be ramips: PCIe driver improvements for mt7620 and mt7628
This patchset fixes some PCIe bridge register access issues and
reworks the initialization procedure. It may bring some stability
improvements. To match the driver changes, the memory remap range
was extended and a PCIe reset pinctrl was added to mt7628an.dtsi.

Link: https://lore.kernel.org/all/OSBPR01MB1670555F549B69B9A5E7F133BC72A@OSBPR01MB1670.jpnprd01.prod.outlook.com/
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/18299
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-18 20:35:23 +02:00
Shiji Yang
8e1d58a596 generic: net: phy: psb6970: fix missing-prototypes warnings
Fix the following build warnings on 6.12 kernel:

drivers/net/phy/psb6970.c:426:12: error: no previous prototype for 'psb6970_init' [-Werror=missing-prototypes]
  426 | int __init psb6970_init(void)
      |            ^~~~~~~~~~~~
drivers/net/phy/psb6970.c:434:13: error: no previous prototype for 'psb6970_exit' [-Werror=missing-prototypes]
  434 | void __exit psb6970_exit(void)
      |             ^~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19174
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-18 20:23:20 +02:00
Álvaro Fernández Rojas
3f69fe3907 bmips: update BCM531x5 RGMII delays patch
Replace BCM531x5 patch with the one sent upstream.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-18 11:12:00 +02:00
Álvaro Fernández Rojas
0bd694ea22 generic: 6.12: backport accepted BCM5325 patches
Backport accepted BCM5325 patches from net-next.
These patches will be merged in the v6.17 kernel window.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-18 11:11:54 +02:00
Markus Stockhausen
c131870c34 realtek: switch LGS310C devicetree to new i2s-gpio-shared driver
From now on both SFP ports can be used without manual intervention.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18737
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-17 10:52:42 +02:00
Markus Stockhausen
5b8155d434 realtek: activate i2c-gpio-shared driver
Currently only RTL83xx devices are known with shared SCL pins.
So activate the driver only for those targets.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18737
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-17 10:52:42 +02:00
Markus Stockhausen
acd7ecc9ed realtek: add new i2c-gpio-shared driver for shared SCL lines
Some Realtek switches have been designed with I2C busses that share a
single SCL line. The clock line is used for 2 or more busses. This cannot
be used with the standard i2c-gpio driver that relies on distinct SDA
and SCL pairs.

Provide a derived i2c-gpio-shared driver that can be used instead. This
driver can handle up to 4 busses with only a single clock line.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18737
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-17 10:52:42 +02:00
Zoltan HERPAI
326c634829 sunxi: add support for OrangePi Zero 2W
Specifications:
SoC:     Allwinner H618 SoC (Quad core Cortex-A53)
DRAM:    1/1.5/2/4 GB LPDDR4 DRAM (1.5GB version not supported)
Power:   5V USB-C
Video:   HDMI (Type 2.0A - micro)
Storage: microSD / 16MByte SPI flash
Network: Unisoc UWE5622 (no driver currently)
Debug:   serial UART

Flashing instructions:
  Standard sunxi SD card installation procedure - copy image to SD card,
  insert into SD card slot on the device and boot.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-16 23:10:54 +02:00
Marius Durbaca
c908fc7d95 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)

Signed-off-by: Marius Durbaca <mariusd84@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18514
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 22:46:55 +02:00
Shiji Yang
143cfd6113 ramips: dts: increase maximum MMC clock frequency
The High-Speed SD mode stability issue should have been fixed.
Increase the MMC max-frequency to improve the IO speed. We can
still use the sysfs to limit the clock frequency, e.g.

root@OpenWrt:~# echo 25000000 > /sys/kernel/debug/mmc0/clock

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18896
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 19:31:51 +02:00
Shiji Yang
3f78e5c918 ramips: mtk-sd: stability improvements for MIPS mt762x SoCs
* Add tuning parameters to improve the stability of 48~50 MHz
  High-Speed SD mode.

* Fix I/O errors on EMMC mode by disabling unsupported auto CMD23
  feature.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18896
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 19:31:51 +02:00
Shiji Yang
db76fe6a02 ramips: mtk-sd: backport Host Software Queue support
This new feature has some improvements for random RW performance.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18896
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 19:31:51 +02:00
Shiji Yang
e69c867cdf ramips: mtk-mmc: fix data timeout value
The MT7628 programing guide shows that the correct DTOC unit is
1048576 clocks instead of 65536 clocks. This value is also used
by linux upstream mtk-sd driver. Correct the DTOC register and
also round up its value.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18896
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 19:31:51 +02:00
Anton Yu. Ivanusev
ca866328d5 ramips: mt76x8: add support for Keenetic Start (KN-1112)
Specification:
SoC: MediaTek MT7628NN
RAM: 128 MB, EtronTech EM68C16CWQG-25H (DDR2)
Flash: 32MB, Winbond 25Q256JVFQ (Dual Boot, SPI)
Switch: MediaTek MT7628AN, 4 ports 100 Mbps
WiFi: MediaTek MT7603 2T2R/2.4GHz 802.11n
GPIO: 2 buttons (Wi-Fi, Reset), 3 LEDs (Power, Internet, Wi-Fi), 1 mode switch

Disassembly:
At the bottom, under the LEDs, there are 2 screws hidden by rubber feet. After removing the screws, pry the gray plastic part around (it is secured with latches) and remove it.

Serial Interface:
The serial interface can be connected to the 5 pin dots located on the right between the operating mode switch and the antenna.
Pins (from antenna to operating mode switch):
VCC
TX
RX
NC
GND
Settings: 115200, 8N1

Flashing via OEM recovery software:
1. Download the OEM recovery software from the manufacturer's website
2. Download the firmware image (for OpenWRT it is *-squashfs-factory.bin), rename it to KN-1112_recovery.bin
3. Replace the file in the fw folder OEM recovery software with the file from step 2.
4. Run the OEM recovery software and follow the instructions.

Flashing via TFTP:
1. Connect your PC and router to port 1-3, configure PC interface using IP 192.168.1.2, mask 255.255.255.252
2. Serve the firmware image (for OpenWRT it is *-squashfs-factory.bin) renamed to KN-1112_recovery.bin via TFTP
3. Power up the router while pressing Reset button on the back
4. Release Restart button when Power LED starts blinking

To revert back to OEM firmware:
The return to the OEM firmware is carried out by using the methods described above with the help of the appropriate firmware image.

When using OEM bootloader, the firmware image size cannot exceed the size of one OEM «Firmware_x» partition or Kernel + rootFS size.

Signed-off-by: Anton Yu. Ivanusev <ivanusevanton@yandex.ru>
Link: https://github.com/openwrt/openwrt/pull/19091
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-16 19:01:18 +02:00
Nicolas BERTRAND
6af9476b8a realtek: Add support for Zyxel XGS1210-12 Switch
The Zyxel XGS1210-12 Switch is a 10 + 2 port multi-GBit switch with
8 x 1000BaseT, 2 x 10/100/1000/2500BaseT Ethernet ports and
2 SFP+ module slot.

Hardware:
- RTL9302B SoC
- Macronix MX25L12833F (16MB flash)
- Nanja NT5CC64M16GP-1 (128MB DDR3 SDRAM)
- RTL8231 GPIO extender to control the port LEDs
- RTL8218D 8x Gigabit PHY
- RTL8226 2x 10m/100m/1/2.5 Gigabit PHY
- SFP+ 2x 10GBit slot

Power is supplied via a 12V 1.5A standard barrel connector. At the
right side behind the grid is UART serial connector. A Serial
header can be connected to from the outside of the switch trough
the airvents with a standard 2.54mm header.
Pins are from top to bottom Vcc(3.3V), TX, RX and GND. Serial
connection is via 115200 baud, 8N1.

A reset button is accessble through a hole in the front panel

At the time of this commit, all ethernet ports work under OpenWrt,
including the various NBaseT modes, SFP+ slots are supported with i2c bus.

Installation
--------------
* Connect serial as per the layout above. Connection parameters: 115200 8N1.
* Navigate to 'Management' in the OEM web interface and click on 'Firmware upgrade'
  to the left.
* Upload the OpenWrt initramfs image, and wait till the switch reboots.
* Connect to the device through serial and change the U-boot boot command.
  > fw_setenv bootcmd 'rtk network on; boota'
* Reboot, scp the sysupgrade image to /tmp, verify the checksum and flash it:
  > sysupgrade openwrt-realtek-rtl930x-Zyxel_xgs1210-12-squashfs-sysupgrade.bin
* Upon reboot, you have a functional OpenWrt installation. Leave the bootcmd
  value as is - without 'rtk network on' the switch will fail to initialise
  the network.

Debug
------------
* Connect serial as per the layout above. Connection parameters: 115200 8N1.
* A tftp server is requiered, tftpd-hpa works well.
* Power the device, at U-Boot start rapidly hit Esc key to stop autoboot
* Enable network:
  > rtk network on
* Change ip address (default is 192.168.1.1):
  > setenv ipaddr 192.168.1.6
* Download initramfs:
  > tftpboot 0x84f00000 192.168.1.111:openwrt-realtek-rtl930x-Zyxel_xgs1210-12-initramfs-kernel.bin
* Boot loaded file:
  > bootm 0x84f00000

This prodecudre also apply to the sock firmware with the file XGS1210-12_V2.00(ABTY.1)C0.bix.

More information can be found on the page of XGS1250-12 as they share the same base.

Signed-off-by: Nicolas BERTRAND <nicolasbertrand89@gmail.com>
[fixed white space error]
Signed-off-by: Paul Spooren <mail@aparcar.org>
2025-06-16 13:46:51 +02:00
Jonas Jelonek
39b9b491bb realtek: add support for TP-Link TL-ST1008F v2.0
The TP-Link TL-ST1008F is an 8-port multi-gig switch with 8x SFP+ ports
which support 1G/2.5G/10G speeds. Out of the box it is an unmanaged
switch but with RTL9303 and sufficient RAM + Flash it easily can run as
a managed Linux switch.

Hardware:
 - Realtek RTL9303 Switch SoC
 - Winbond 25Q256JVFQ (32MB flash)
 - Samsung K4B4G1646E-BYMA (512MB DDR3 SDRAM)
 - TCA9534 GPIO extender to control the port LEDs
 - 8x SFP+ 1/2.5/10G slot
 - Serial: 3V3 logic, 115200 8N1
 - 5-pin JTAG
 - physical tri-state switch (used by stock firmware for port speed
   config)
 - 24-LED port speed matrix
 - robust full-metal case

Power is supplied via a 12V 2A standard barrel connector.
There are THT holes on the PCB for serial console next to the flash chip
and JTAG pads. Serial uses 3V3 logic and standard 115200-8N1 config.
Pinout is labeled on the PCB.

All ports/connectors and LEDs are on the back, only Power LED is on the
front.

Hints before flashing
----------------------

* It is recommended to backup the stock flash contents before proceeding.
  Backup can be done from U-Boot (with memory display), from OpenWrt
  initramfs or probably with SPI flash programmer.
  There is no stock recovery functionality.
* Use a small image for RAM boot or first flash. Since you need to use
  ymodem, this is really slow and takes time.
* This does not keep the dual-partition layout for firmware to have more
  space available for a single OpenWrt installation.

Initial flashing
----------------------

The stock U-boot has broken networking thus no TFTP available. Serial
transfer only.

1. Open device and connect serial as per layout and settings
   (recommended to use picocom, ymodem not working with minicom)
2. Connect power to device and press Esc when prompted to enter
   the U-Boot console.
3. Boot initramfs
  * in the U-Boot console:
      loady 0x82000000			(load OpenWrt image via ymodem)
      CTRL-A CTRL-S <initramfs.bin>	(specify initramfs image for
                                         picocom to upload)
      bootm 0x82000000			(boot initramfs from RAM)
(Just to be on the safe side, backup your flash now while RAM-booted)
4. Connect network to your device
5. Upload the sysupgrade image (e.g. with scp)
6. Do sysupgrade

There's no need to adjust the bootcmd in U-Boot. Networking is running
fine once the realtek driver initialized everything in OpenWrt. No
functional difference with running 'rtk network on' within U-Boot
before. Running this even fails and returns with an error.

Return to stock
------------------

This only works if you did a backup of the flash before flashing
OpenWrt. Stock dump then can be flashed from within U-Boot or OpenWrt.
There is no vendor firmware image because this is an unmanaged switch!

CAUTION: Make sure to not overwrite the U-Boot partition(s). If you do
	 not have a flash programmer, you may not be able to debrick
	 your device then.

Co-authored-by: Balázs Triszka <balika011@gmail.com>
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2025-06-16 13:30:52 +02:00
Tianling Shen
53b213b99b rockchip: add kernel 6.12 as testing kernel
Add kernel 6.12 as testing kernel.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18683
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-14 17:22:52 +02:00
Tianling Shen
966b365614 rockchip: refresh kernel configs
Refresh kernel configs with `make kernel_oldconfig CONFIG_TARGET=subtarget`.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18683
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-14 17:22:52 +02:00
Tianling Shen
9a59eac049 rockchip: refresh kernel patches
Remove upstreamed patches and refresh remaining ones.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18683
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-14 17:22:52 +02:00
Tianling Shen
eb974c3b3e rockchip: Restore kernel files for v6.6
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: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18683
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-14 17:22:52 +02:00
Tianling Shen
23b5f3a90a rockchip: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18683
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-14 17:22:52 +02:00
Zoltan HERPAI
7f2d7fbc23 starfive: drop 6.6 support
Drop configs and patches for Linux 6.6.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-14 00:53:19 +02:00
Zoltan HERPAI
e2e4dcfe75 starfive: usb3 and pcie support is compiled into kernel now
As support for these peripherals are now compiled into the kernel, the
respective kmods can be dropped.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-14 00:53:19 +02:00
Zoltan HERPAI
4801c5bec3 starfive: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-14 00:53:19 +02:00
Chukun Pan
86abc4640e starfive: remove useless aic8800 driver
AIC8800 is a WiFi/BT module based on Ceva's IP.
This driver is old and not enabled in the starfive target,
so remove it. We can add out of tree drivers if necessary.

Fixes: 8f0f02d2 ("starfive: 6.12: refresh patches and drop upstreamed ones")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2025-06-14 00:53:19 +02:00
George Moussalem
d7f9e240c2 qualcommax: ipq50xx: Add support for Xiaomi AX6000
Add support for Xiaomi AX6000.

Speficiations:
* SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
* Memory: Etrontech EM6HE16EWAKG 512 MiB DDR3L-933
* Serial Port: 1v8 TTL 115200n8
* Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax - up to 574 Mbps)
	 QCN9024 (4x4 5 Ghz 802.11an/ac/ax - up to 4804 Mbps)
 	 QCA9887 (1x1 5 Ghz 802.11ac/n - up to 433 Mbps)
* Ethernet: IPQ5018 integrated virtual switch connected to:
	- external QCA8337 switch   (3 LAN Ports 10/100/1000)
	- QCA8081 Phy WAN port  (10/100/1000/2500)
* Flash: Either of:
	- Gigadevice GD5F1GQ4RE9IGD (128 MiB)
	- ESMT F50D1G41LB (128 MiB)
* LEDs: 1x WLAN Link (GPIO 23 Active High)
	1x System Blue   (GPIO 24 Active High)
	1x System Yellow (GPIO 25 Active High)
	1x WAN Link Blue (GPIO 26 Active High)
	1x WAN Link Yellow   (GPIO 27 Active High)
	1x Green - Unused(GPIO 28 Active High)
	3x LAN Phy Green
	1x WAN Phy Green
* Buttons: 1x Reset  (GPIO 38 Active Low)

Known issue:
- QCA9887 doesn't come up (possibly due to 1-lane PCIe phy not coming up or missing method to drive power),
  hence the host PCIe controller is disabled in the DTS.

Flash instructions:

Download XMIR Patcher: https://github.com/openwrt-xiaomi/xmir-patcher

First flash a ubinized OpenWrt initramfs that will serve as the intermediate step, since
OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for
packages, through either of the below two methods:

Installation via XMIR Patcher:

1. Load the initramfs image: openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi

Installation via ubiformat method, through SSH:

1. If needed, enable SSH using XMIR Patcher.
2. Copy the file openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi to the /tmp directory
3. Open an SSH shell to the router
4. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1):
nvram get flag_boot_rootfs
5. Find the rootfs and rootfs_1 mtd indexes respectively:
cat /proc/mtd
Please confirm if mtd18 and mtd19 are the correct indexes from above!
6. Use the command ubiformat to flash the opposite mtd with UBI image:
If nvram get flag_boot_rootfs returned 0:
ubiformat /dev/mtd19 -y -f /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit
otherwise:
ubiformat /dev/mtd18 -y -f /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit
7. Reboot the device by:
reboot

Continue in order to pernamently flash OpenWrt:
1. Upload the sysupgrade image to /tmp/ using SCP:
scp -O <path to image> root@192.168.1.1:/tmp/
2. Open an SSH shell to 192.168.1.1 from a PC within the same subnet
3. Use sysupgrade to flash the sysupgrade image:
sysupgrade -n -v /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-squashfs-sysupgrade.bin

Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19004
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-13 12:02:39 +02:00
George Moussalem
f2221a0903 mtd: spinand: esmt: fix id code for F50D1G41LB
Upon detecting the ID for the ESMT F50D1G41LB chip, the fifth byte
returned is always 0x00 instead of the expected JEDEC continuation code
of 0x7f. This causes detection to fail:

[    0.304399] spi-nand spi0.0: unknown raw ID c8117f7f00
[    0.508943] spi-nand: probe of spi0.0 failed with error -524

So let's revert back to the 4 byte ID code for this chip
specifically.

Fixes: 4bd14b2fd8a8 ("mtd: spinand: esmt: Extend IDs to 5 bytes")
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/19004
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-13 12:02:39 +02:00
George Moussalem
a23f841289 net: dsa: qca8k: fix led devicename when using external mdio bus
The qca8k dsa switch can use either an external or internal mdio bus.
This depends on whether the mdio node is defined under the switch node
itself and, as such, the internal_mdio_mask is populated with its
internal phys. Upon registering the internal mdio bus, the
internal_mdio_bus of the dsa switch is assigned to this bus.
When an external mdio bus is used, it is left unassigned, though its id
is used to create the device names of the leds.
This leads to the leds being named '(efault):00:green:lan' and so on as
the internal_mdio_bus is null. So let's fix this by adding a null check
and use the devicename of the external bus instead when an external bus
is configured.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19004
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-13 12:02:39 +02:00
Chukun Pan
323bbce600 generic: 6.12: disable cont read for MX35LFxGE4AD
Continuous read does not work properly in on-die ECC mode.
Disable it to fix ubi io error on the GL.iNet GL-MT3000.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2025-06-13 11:15:08 +02:00
Chukun Pan
f60207a2d3 mediatek: cleanup device tree for mt7988 devices
Fix wrong pwm-fan node for bpi-r4.
Remove useless status for pwm-fan.
Remove blank lines added by b992aa11.

Fixes: b992aa11 ("mediatek: dts: bring mt7988a.dtsi closer to upstream")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2025-06-13 11:15:08 +02:00
Joe Holden
e67b70b8f4 realtek: align port names
Only 2 devices use leading zeroes to pad interface names,
align the remaining ones so that it is consistent.

Signed-off-by: Joe Holden <jwh@zorins.us>
Link: https://github.com/openwrt/openwrt/pull/18913
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-12 14:12:38 +02:00
John Audia
98ead2c70f kernel: bump 6.12 to 6.12.33
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.33

All patches automatically rebased.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19084
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-12 12:42:15 +02:00
Álvaro Fernández Rojas
fd3e1f0c4d bmips: bcm6358: add support for Huawei HG553
Specifications:
- SoC: Broadcom BCM6358 dual 300MHz MIPS
- Flash: 16MB NOR
- RAM: 64MB DDR
- Ethernet: 4x 100M
- Wifi: Broadcom BCM4318
- 2x USB 2.0 port
- 2x Button
- 9x LED
- RJ11 2x FXS VoIP (unsupported)
- RJ11 xDSL (unsupported)

Install instructions:
- Assign static IP 192.168.1.100 to PC.
- Unplug the power source.
- Press the RESTART button at the router, don't release it yet!
- Plug the power source and wait at least 15 seconds.
- Release the RESTART button.
- Browse to http://192.168.1.1 with your PC.
- Upload the openwrt-bmips-bcm6358-huawei_hg553-squashfs-cfe.bin file.
- Wait some minutes until the firmware upgrade completes.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-12 12:38:31 +02:00
INAGAKI Hiroshi
0cbdab5038 qualcommax: add support for I-O DATA WN-DAX3000GR
I-O DATA WN-DAX3000GR is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based
on IPQ5018.

Specification:

- SoC             : Qualcomm IPQ5018
- RAM             : DDR3 512 MiB
- Flash           : SPI-NAND 128 MiB (Macronix MX35UF1G24AD-Z4I)
- WLAN            : 2.4/5 GHz 2T2R
  - 2.4 GHz       : Qualcomm IPQ5018 (SoC)
  - 5 GHz         : Qualcomm Atheros QCN6102
- Ethernet        : 5x 10/100/1000 Mbps
  - wan (phy)     : Qualcomm IPQ5018 (SoC)
  - lan (switch)  : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO): 7x/5x
- UART            : through-hole on PCB (J3)
  - assignment    : 3.3V, TX, RX, NC, GND from tri-angle marking
  - settings      : 115200n8
- USB             : USB 2.0 Type-A (through-hole on PCB, "J6")
- Power           : 12 VDC, 1A (Typ. 930 mA)

Flash instruction using factory.bin image:

1. Boot WN-DAX3000GR with router mode
2. Access to the WebUI ("http://192.168.0.1/") on the device and open
   the firmware update page ("ファームウェア")
3. Select the OpenWrt factory.bin image and click update ("更新") button
4. Wait ~120 seconds to complete flashing

Switching to the stock firmware:

1. Load the elecom.sh script

   . /lib/upgrade/elecom.sh

2. Check the current index of rootfs

   bootconfig_rw_index 0:bootconfig rootfs

3. Set the index to inverted value

   bootconfig_rw_index 0:bootconfig rootfs <value>
   bootconfig_rw_index 0:bootconfig1 rootfs <value>

   example:

   - step2 returned "0":

     bootconfig_rw_index 0:bootconfig rootfs 1
     bootconfig_rw_index 0:bootconfig1 rootfs 1

   - step2 returned "1":

     bootconfig_rw_index 0:bootconfig rootfs 0
     bootconfig_rw_index 0:bootconfig1 rootfs 0

4. Reboot

Partition Layout (Stock FW, bootconfig(rootfs)=1):

0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000003c40000 : "rootfs_1"
0x000003c40000-0x000003fc0000 : "Config"
0x000003fc0000-0x000007300000 : "rootfs"
0x000007300000-0x000007680000 : "Config_2"
0x000007680000-0x000007700000 : "idmkey"
0x000007700000-0x000007c00000 : "Reserved"
0x000007c00000-0x000007c80000 : "FWHEADER"
0x000007c80000-0x000007d00000 : "Factory"

Known Issues:

- This device has a Macronix MX35UF1G24AD SPI-NAND chip registered as
  oobsize=128 in Linux Kernel. But using BCH8 breaks I/O on the chip
  with the following errors, so this support uses BCH4 instead.

  [    1.542261] 0x000000480000-0x000000500000 : "0:appsblenv"
  [    1.547959] 1 fixed-partitions partitions found on MTD device 0:appsblenv
  [    1.551265] Creating 1 MTD partitions on "0:appsblenv":
  [    1.558096] 0x000000000000-0x000000040000 : "env-data"
  [    1.627282] u-boot-env-layout 79b0000.qpic-nand:flash@0:partitions:partition-0-appsblenv:partition@0:nvmem-layout: probe with driver u-boot-env-layout failed with error -74

  root@OpenWrt:~# strings /dev/mtdblock10
  [   77.806720] mtdblock: MTD device '0:appsblenv' is NAND, please consider using UBI block devices instead.
  [   77.807554] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0
  [   77.815977] I/O error, dev mtdblock10, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 0
  [   77.824721] I/O error, dev mtdblock10, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 0
  [   77.834095] I/O error, dev mtdblock10, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
  [   77.843278] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
  [   77.851577] Buffer I/O error on dev mtdblock10, logical block 0, async page read

Notes:

- This device has dual-boot feature and it's managed by the index in the
  0:bootconfig and 0:bootconfig1 partitions.

- There are through-holes on PCB for USB 2.0, but it cannot be accessed
  without disassembly of the housing. So it's not enabled in this
  support.

- WN-DAX3000GR has the "bt_fw" volume in the firmware UBI in addition to
  the volumes that will be removed in the section of ELECOM WRC-X3000GS2
  in /lib/upgrade/platform.sh.
  That volume is unnecessary for OpenWrt and add
  `remove_oem_ubi_volume bt_fw` to remove that volume when sysupgrade.
  (that function doesn't anything without errors if no specified volume)

MAC Addresses:

LAN    : 50:41:B9:xx:xx:64 (0:APPSBLENV, "ethaddr"/"eth1addr" (text))
WAN    : 50:41:B9:xx:xx:66 (0:APPSBLENV, "eth0addr" (text))
2.4 GHz: 50:41:B9:xx:xx:64 (0:APPSBLENV, "wifi0"    (text))
5 GHz  : 50:41:B9:xx:xx:65 (0:APPSBLENV, "wifi1"    (text))

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19053
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-12 10:54:34 +02:00
INAGAKI Hiroshi
2186f4aa75 qualcommax: make header length configurable on Build/mstc-header
I-O DATA WN-DAX3000GR has a MSTC (Mitra Star Technology Corp.) specific
header with a different length than ELECOM WRC-X3000GS2.
Make the header length configurable by parameterizing on
Build/mstc-header.

- WRC-X3000GS2: 0x400
- WN-DAX3000GR: 0x480

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19053
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-12 10:54:34 +02:00
George Moussalem
b9704413c4 qualcommax: ipq50xx: correct fw memory mode for ipq5018 and qcn6122 wifi
The reason fwmode 2 was used for ipq5018 and qcn6122 wifi was that
coldboot calibration doesn't work and causes the firmware to crach
during wifi bringup. Since coldboot calibration is now disabled in the
driver, all boards can now use their respective firmware memory mode, so
let's the property in all board DTS files accordingly.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19083
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-12 10:47:44 +02:00
Álvaro Fernández Rojas
9117ff7b39 bcm27xx: select I2C/SPI packages by default
The I2C and SPI packages required for each RPi generation is different.
Therefore, in order to avoid confusion let's select them by default.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-12 07:25:32 +02:00
Markus Stockhausen
c9e934ffd8 realtek: 6.12: refactor EEE for RTL8218B/D and RTL8214FC
Three different code paths for the same phy model. Now the bus
is prepared to handle c45 (mmd) read/writes correctly. Remove
the custom implementations and let generic kernel functions do
their best. To achieve this

- disable the PHY-mode EEE in rtl821x_config_init() as upstream does
- provide mmd read/write functions that avoid EEE via c45 over c22

While chaning the phy_driver functions sort them alphabetically.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
ec310a0993 realtek: 6.12: allow fiber media status to be read without lock
rtl8214fc_media_is_fibre() will need to be run when bus lock is held.
Split the function into two versions.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
30fae30e03 realtek: 6.12: proper mdio c45 handling in DSA driver
As the mdio bus has been hardened and can now handle c45 requests
the DSA driver must honor that as well. For this

- add proper upstreamed bus read_c45 and write_c45 functions
- take over the disabled port mask from upstream bus

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
65cf5b74c5 realtek: 6.12: harden the mdio bus even more
With the follow up EEE patches the mdio bus will run c22 and c45
accesses during initial scan. Especially when accessing addresses
beyond the CPU port phy requests might fail in a way that cannot
be handled gratefully. Do two things

- do not allow access to addresses starting from cpu port
- set the scan disable bitmask to ports starting from cpu port

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
debb69ccb5 realtek: 6.12: enhance mdio max port patch (once again)
Some bits where missed during the last enhancement of the mdio
patch. In the forthcoming patches the phy_mask will be populated
to avoid unwanted ports (>= cpu port) from being scanned. Add
additional locations where 32 bit values need to be converted
to 64 bits.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
8917301b72 realtek: 6.12: allow mixed c22/c45 bus access
If mmd and normal phy ops are issued the bus is lost because
of wrong park page settings. Force it to 0x1f as in GPL.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
6d9f5a0ccf realtek: 6.12: activate testing kernel
Allow to build the new kernel.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
bb7e91243d realtek: 6.12: add missing include
The new kernel has relocated the definition of struct platform_device.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
22beb4fbc4 realtek: 6.12: align internal/external mac eee function names
The DSA driver uses set_mac_eee() for the outside API while
the interal helper is called port_eee_set(). Align that.
Additionally do not call the internal helpers directly by
the function names but use the register assignments.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
d7f51c1917 realtek: 6.12: refactor get_mac_eee
Upstream will get rid of the get_mac_eee() function in the DSA
driver and replace it by a boolean alternative. While we fill a
lot of data here (because of EEE bugs in the Realtek phy layer)
other DSA drivers only return if EEE is available or not for a
port. To make the next kernel upgrade easier follow that design.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
e124859587 realtek: 6.12: relocate R4K deactivation to late CPU init
To avoid unneeded interrupts the R4K timer is deactivated during
secondary cpu initialization. This is currently done during
phase init_secondary(). With the upgrade to 6.12 the kernel runs
a primary/secondary cpu timer/counter synchronization to verify the
proper setup in synchronise_count_slave(). That runs at a later
point in time and expects the secondary counter to be fully
functional. Finding a deactivated counter results in the following
messages:

WARNING: CPU: 1 PID: 0 at arch/mips/kernel/sync-r4k.c:99 check_counter_warp+0x220/0x254
Warning: zero counter calibration delta: 0 [max: 6500000]
Counter synchronization [CPU#0 -> CPU#1]:
Measured 278760029 cycles counter warp between CPUs

Relocate the deactivation to smp_finsh() at the end of the cpu
startup sequence. Additionally polish the startup code and remove
all unneeded parts.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
09440d9858 realtek: 6.12: fix phy-mode for XGS1250-12 port 1-8
Per IEEE 802.3 definition we have:
- parallel XGMII for single 10GBit ONLY links
- serial USGMII for 8 port 1GBit links (not known by kernel)
- serial USXGMII: for single/multiple links with a total bandwidth of 10GBit

The phy-mode of the first eight ports of the XGS1250-12 have always been
defined as XGMII (without S). This came from a confusion with the similar
named Realtek proprietary XSGMII (with S) mode that is basically 10GB SGMII.
From the above definition this is wrong but worked until kernel 6.6. With
the upgrade to 6.12 there is an enforced capabilities check within
phy_caps_from_interface() and link validation fails with

lan1: validation of xgmii with support 62ef and advertisement 62c0 failed: -EINVAL
lan1: failed to connect to PHY: -EINVAL
lan1: error -22 setting up PHY for tree 0, switch 0, port 0

Switch the ports to USXGMII as the most flexible option. This might be no
final solution but at least it better describes the phy/mac link.

Fixes 5b8b382df9 ("realtek: Add support for ZxXEL XGS1250-12 Switch")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
abee1c2040 realtek: 6.12: adapt RTL9300 i2c bus & mux drivers
Fix minor compilation errors due to kernel changes.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
d9a5cafc40 realtek: 6.12: adapt platform patch
Upstream has integrated the Realtek target into the generic MIPS
initialization and so MACH_REALTEK_RTL has gained some new features.
Especially:

- CONFIG_MACH_GENERIC_CORE generates central modules
- board-realtek module adds device specific extensions

The current downstream initialization works well and upgrading to
kernel 6.12 is not the right time to harmonize this. Modify the
MACH definitions to the current needs.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
48b6a011c7 realtek: 6.12: drop validate from phylink_mac_ops
The validate function no longer exists in phylink_mac_ops. Remove
it for the internal ethernet interface. Instead provide some
meaningful mac capabilities.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
34a070bfe1 realtek: 6.12: add mac capabilities to rtl83xx_phylink_get_caps()
Not only the link but also the mac capabilities are needed here.
Additionally do some alphabetical sorting.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
7234c7757c realtek: 6.12: rename dsa functions/structures to conduit/user
The old upstream notation has been changed to something not so racist.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
a4a40ab6ea realtek: 6.12: replace ethtool_eee with ethtool_keee
EEE functions are now called with ethtool_keee instead of
ethtool_eee. Replace all occurrences. This will fix function
signature checks but still produces compilation errors due
to structure changes.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
e9a093818c realtek: 6.12: refresh patches with slightly changed anchors
Patches where fuzz had to be cleaned up.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
081786887b realtek: 6.12: refresh patches with only source line changes
All these patches needed no manual intervention and applied cleanly
with new source code positions.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
ba707201ff realtek: 6.12: drop upstreamed otto timer
Thanks to Chris Packham this driver got upstreamed. Drop the
downstream files and patches.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:22 +02:00
Markus Stockhausen
c056cc8bb5 realtek: 6.12: restore config-6.6
Automatically generated commit.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:21 +02:00
Markus Stockhausen
296a16bc28 realtek: 6.12: create config-6.12 from config-6.6
Automatically generated commit.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:21 +02:00
Markus Stockhausen
8da7a1bfa9 realtek: 6.12: restore patches-6.6
Automatically generated commit.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:21 +02:00
Markus Stockhausen
b943c746d2 realtek: 6.12: create patches-6.12 from patches-6.6
Automatically generated commit.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:21 +02:00
Markus Stockhausen
ade52b291e realtek: 6.12: restore files-6.6
Automatically generated commit.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:21 +02:00
Markus Stockhausen
ac1be95438 realtek: 6.12: create files-6.12 from files-6.6
Automatically generated commit.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18935
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-11 22:27:21 +02:00
Álvaro Fernández Rojas
59f8312400 bcm27xx: add support for BRCMSTB I2C controller
Add kernel package for Broadcom Settop/DSL I2C controller.
This controller is used on RPi devices.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-11 20:28:51 +02:00
Christian Schmidbauer
710ec82367 ipq806x: fix Extreme Networks AP3935 LAN/WAN ports
This commit changes LAN1 to be WAN and LAN2 to be LAN, like all other
dual port Extreme Networks devices.

This partially reverts commit 84a489b7cf

Signed-off-by: Christian Schmidbauer <github@grische.xyz>
2025-06-11 18:42:54 +02:00
Christian Schmidbauer
f02e614f50 ipq806x: fix Extreme Networks AP3935 LAN LED order
Fixes LAN LED "1" to show activity of LAN1 and LAN LED "2" to show
activity of LAN2, not vice versa.

Signed-off-by: Christian Schmidbauer <github@grische.xyz>
2025-06-11 18:42:54 +02:00
Yin Ni
f7735158f3 mediatek: update pinconf for GL.iNet eMMC boards
Update the pin-configuration as well as maximum frequency for the eMMC
flash.

 - Use 26 MHz as the maximum clock of the eMMC memory
 - Configure 12mA as the pin drive-strength
 - Enable internal pull-reistors

Signed-off-by: Yin Ni <yin.ni@gl-inet.com>
[adapt commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
2025-06-11 18:40:26 +02:00
David Bauer
5b0f169f28 mpc85xx: fix function name
The function name is misspelled and does not exist. Fix the function
name so the correct function is called.

Signed-off-by: David Bauer <mail@david-bauer.net>
2025-06-11 18:39:55 +02:00
Mateusz Jończyk
b7fa9d92ae ramips/mt7621: mark EEE as broken in devicetree
Multiple users have reported a regression [1] in OpenWRT 24.10 with the
ramips/mt7621 target, which has the MT7530 PHYs: the Ethernet link is
periodically going down for a brief period of time:

        mt7530-mdio mdio-bus:1f lan1: Link is Down
        br-lan: port 1(lan1) entered disabled state
        mt7530-mdio mdio-bus:1f lan1: Link is Up - 1Gbps/Full - flow control rx/tx

The symptoms stop after disabling EEE and it was reported by Mediatek in
2021 that EEE is unstable for the MT7530 PHYs [2]:

> EEE of the 10-year-old MT7530 internal gephy has many IOT problems, so
> it is recommended to disable its EEE.

EEE is enabled by default for these devices in OpenWRT 24.10 whereas in the
previous version (OpenWRT 23.05, Linux 5.15) it was not. It was determined
that in Linux 6.6, the PHY driver tries to disable EEE in
mtk_gephy_config_init() in drivers/net/phy/mediatek-ge.c, but this is later
overridden by a subsequent execution of the genphy_c45_write_eee_adv()
function, which enables every EEE mode supported.

The best way forward for now seems to be to mark EEE as broken directly in
the devicetree, which affects the genphy_c45_write_eee_adv() function.

There are some devices, like GnuBee GB-PC2, that define additional PHYs,
for example ethernet-phy@5 or ethernet-phy@7. As reported by Chester A.
Unal, these are not MT7530 PHYs and they are not affected.

This would need to be cherrypicked for the OpenWRT 24.10 branch.

[1] https://github.com/openwrt/openwrt/issues/17351

[2] https://lore.kernel.org/all/0adde34f936a2dafca40b06b408d82afe0852327.camel@mediatek.com/

Tested-by: Darren Tucker
Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Closes: https://github.com/openwrt/openwrt/issues/17351
Link: https://github.com/openwrt/openwrt/pull/18585
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 15:38:25 +02:00
Álvaro Fernández Rojas
733067fc9a bmips: bcm6358: add support for Huawei HG556a ver C
Specifications:
- SoC: Broadcom BCM6358 dual 300MHz MIPS
- Flash: 16MB NOR Macronix MX29GL128EHT2I-90G
- RAM: 64MB DDR
- Ethernet: 4x 100M
- Wifi: Ralink RT3062F
- 3x USB 2.0 port
- 4x Button
- 13x LED
- RJ11 2x FXS VoIP (unsupported)
- RJ11 xDSL (unsupported)

Install instructions:
- Assign static IP 192.168.1.100 to PC.
- Unplug the power source.
- Press the RESTART button at the router, don't release it yet!
- Plug the power source and wait at least 15 seconds.
- Release the RESTART button.
- Browse to http://192.168.1.1 with your PC.
- Upload the openwrt-bmips-bcm6358-huawei_hg556a-c-squashfs-cfe.bin file.
- Wait some minutes until the firmware upgrade completes.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-11 15:10:46 +02:00
Álvaro Fernández Rojas
f9ea340288 generic: improve patches documentation
It's time to give the patches documentation some love by:
- Using Markdown.
- Differentiating between generic and specific target patches.
- Adding deeper explanation about patch numbering.

Link: https://github.com/openwrt/openwrt/pull/19092
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-11 15:09:46 +02:00
Shiji Yang
09c2ceb7a5 ramips: a workaround for system halt issue on 6.12 kernel
Fix potential invalid memory address access on ip_fast_csum().

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:16:21 +02:00
Mieczyslaw Nalewaj
4f62facf10 mips: ralink: add missing include
Missing headers causes an error on kernel 6.12:
arch/mips/ralink/irq.c:86:5: error: no previous prototype for 'get_c0_perfcount_int' [-Werror=missing-prototypes]
   86 | int get_c0_perfcount_int(void)
      |     ^~~~~~~~~~~~~~~~~~~~
arch/mips/ralink/irq.c:92:14: error: no previous prototype for 'get_c0_compare_int' [-Werror=missing-prototypes]
   92 | unsigned int get_c0_compare_int(void)
      |              ^~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:16:21 +02:00
Mieczyslaw Nalewaj
92fec1ff24 mtk-mmc: replace empty body macros
Replace macros with empty body with 'do {} while (0)'.
Remove unnecessary semicolons.

Fixes:
drivers/mmc/host/mtk-mmc/sd.c: In function 'msdc_irq':
drivers/mmc/host/mtk-mmc/sd.c:1969:87: error: suggest braces around empty body in an 'else' statement [-Werror=empty-body]
 1969 |                                 IRQ_MSG("XXX CMD<%d> MSDC_INT_RSPCRCERR", cmd->opcode);
      |                                                                                       ^
drivers/mmc/host/mtk-mmc/sd.c:1975:84: error: suggest braces around empty body in an 'else' statement [-Werror=empty-body]
 1975 |                                 IRQ_MSG("XXX CMD<%d> MSDC_INT_CMDTMO", cmd->opcode);
      |                                                                                    ^
cc1: all warnings being treated as errors

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:16:21 +02:00
Mieczyslaw Nalewaj
fa90484c6a ramips: enable 6.12 testing kernel
The ramips now supports 6.12 kernel as testing.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:16:21 +02:00
Mieczyslaw Nalewaj
e09d6ce9f3 kernel/ramips: update config for kernel 6.12
Update target ramips config for kernel 6.12.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
[Remove some more option already in generic config]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:15:57 +02:00
Mieczyslaw Nalewaj
02c991a141 ramips: pci-rt2880: 6.12: change pcibios_init declaration
Fixes error:
arch/mips/pci/pci-rt2880.c:267:12: error: no previous prototype for 'pcibios_init' [-Werror=missing-prototypes]
  267 | int __init pcibios_init(void)
      |            ^~~~~~~~~~~~
cc1: all warnings being treated as errors
make[8]: *** [scripts/Makefile.build:229: arch/mips/pci/pci-rt2880.o] Error 1
make[7]: *** [scripts/Makefile.build:478: arch/mips/pci] Error 2

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:12:26 +02:00
Mieczyslaw Nalewaj
d798bef016 ramips: 6.12: automatically rebuilding patches
Automatic rebasing of patches.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:12:26 +02:00
Mieczyslaw Nalewaj
65add58add ramips: 6.12: manually rebuilding patches
Manually rebuilding patches:
 - 001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch
 - 311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch
 - 314-MIPS-add-bootargs-override-property.patch
 - 405-mtd-spi-nor-Add-support-for-BoHong-bh25q128as.patch
 - 810-uvc-add-iPassion-iP2970-support.patch
 - 821-SPI-ralink-add-Ralink-SoC-spi-driver.patch
 - 825-i2c-MIPS-adds-ralink-I2C-driver.patch
 - 845-pwm-add-mediatek-support.patch
 - 860-ramips-add-eip93-driver.patch

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:12:26 +02:00
Mieczyslaw Nalewaj
5f34c308bc ramips: 6.12: remove obsolete patches
Remove obsolete patches already included in kernel 6.12.

Removed (already included):
 - 805-01-v6.9-pinctrl-Add-driver-for-Awinic-AW9523-B-I2C-GPIO-Expa.patch
 - 805-02-v6.9-pinctrl-aw9523-Add-proper-terminator.patch
 - 805-03-v6.10-pinctrl-aw9523-Destroy-mutex-on-remove.patch
 - 805-04-v6.10-pinctrl-aw9523-Use-correct-error-code-for-not-suppor.patch
 - 805-05-v6.10-pinctrl-aw9523-Always-try-both-ports-in-aw9523_gpio_.patch
 - 805-06-v6.10-pinctrl-aw9523-Make-use-of-struct-pinfunction-and-PI.patch
 - 805-07-v6.10-pinctrl-aw9523-Use-temporary-variable-for-HW-IRQ-num.patch
 - 805-08-v6.10-pinctrl-aw9523-Get-rid-of-redundant-U8_MAX-pieces.patch
 - 805-09-v6.10-pinctrl-aw9523-Remove-unused-irqchip-field-in-struct.patch
 - 805-10-v6.10-pinctrl-aw9523-Make-use-of-dev_err_probe.patch
 - 805-11-v6.10-pinctrl-aw9523-Sort-headers-and-group-pinctrl.patch
 - 805-12-v6.10-pinctrl-aw9523-Fix-indentation-in-a-few-places.patch

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:12:26 +02:00
Mieczyslaw Nalewaj
e0f7afef1a kernel/ramips: Restore kernel files for v6.6
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: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:12:25 +02:00
Mieczyslaw Nalewaj
2b4223c0db kernel/ramips: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-11 14:12:25 +02:00
Álvaro Fernández Rojas
83648084cc generic: 6.12: reorganize backports
Reorganize backported 6.12 generic patches, grouping them by following
a standard naming XXX-XX-v6.x-patch-file-name.patch.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-11 07:37:25 +02:00
Álvaro Fernández Rojas
84922a1e34 kernel: add support for DesignWare I2C Platform controller
Add kernel package for DesignWare I2C platform controller.
This controller is used on the RP1 SoC found on RPi 5 devices.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-10 14:49:40 +02:00
Albrecht Lohofener
82d20a0fbd kernel: add support for DesignWare SPI MMIO controller
Add kernel packages for DesignWare SPI core and MMIO controllers.
This is needed for the RP1 SoC found on RPi 5 devices.

Tested with a Microchip ENC28J60 Ethernet controller on a RPi 5.

Signed-off-by: Albrecht Lohofener <albrechtloh@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19049
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-09 11:43:46 +02:00
Christian Lamparter
11c2326b2a uml: drop 6.6 config+patches
Drop configs+patches for UML's Linux 6.6 support.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2025-06-09 11:10:19 +02:00
Christian Lamparter
6f59a2e6b0 uml: use kernel 6.12 by default
This patch switches the UML target Linux kernel version to 6.12.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2025-06-09 11:10:19 +02:00
Mario Andrés Pérez
6dffaf9316 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:

- SNR-CPE-ME1
- SNR-CPE-ME2-SFP

Fixes: 79bd017 ("ramips: mt7621: add uboot-envtools to all devices")
Fixes: https://github.com/openwrt/openwrt/issues/18960

Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19012
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 20:42:19 +02:00
John Audia
bf05b83305 kernel: add backport to fix build with GCC 15.1
Add the following to fix builds with GCC 15.1:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/arch/mips/vdso?h=next-20250606&id=0f4ae7c6ecb89bfda026d210dcf8216fb67d2333

% dmesg | grep gcc
[    0.000000] Linux version 6.6.93 (facade@redline) (mipsel-openwrt-linux-musl-gcc (OpenWrt GCC 15.1.0 r29972+15-7d617804cfe7) 15.1.0, GNU ld (GNU Binutils) 2.44) #0 SMP Sat Jun  7 12:13:18 2025

Error for reference:
./include/linux/stddef.h:11:9: error: cannot use keyword 'false' as enumeration constant
   11 |         false   = 0,
      |         ^~~~~
./include/linux/stddef.h:11:9: note: 'false' is a keyword with '-std=c23' onwards
./include/linux/types.h:35:33: error: 'bool' cannot be defined via 'typedef'
   35 | typedef _Bool                   bool;
      |                                 ^~~~
./include/linux/types.h:35:33: note: 'bool' is a keyword with '-std=c23' onwards
./include/linux/types.h:35:1: error: useless type name in empty declaration [-Werror]
   35 | typedef _Bool                   bool;
      | ^~~~~~~
  CC      arch/mips/lib/delay.o
  AR      arch/mips/fw/lib/built-in.a
  AR      arch/mips/fw/lib/lib.a
  CC      arch/mips/ralink/of.o
  CC      fs/read_write.o
  CC      block/elevator.o
cc1: all warnings being treated as errors
make[9]: *** [scripts/Makefile.build:243: arch/mips/vdso/vgettimeofday.o] Error 1
make[8]: *** [scripts/Makefile.build:480: arch/mips/vdso] Error 2

Build system: x86/64
Build-tested: ramips/tplink_archer-a6-v3
Run-tested: ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19058
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 20:34:43 +02:00
Shiji Yang
dd0476aca0 ramips: some minor FDT improvements for HiWiFi devices
This patch contains various minor FDT improvements for ramips
HiWiFi series devices:

* Add mt76 driver compatibles.
* Remove useless platform compatibles.
* Add default USB LED trigger for HC5861.
* Disable unused usbphy for HC5661, HC5661A and HC581B.
* Add switch port map properties based on 02_network scripts.
* Move aliases node to device dts because the LED nodes it
  references only exist in the device specific dts.
* Rename gpio-leds nodes to follow the upstream dt-bindings
  suggested pattern "(^led-[0-9a-f]$|led)".
* Convert deprecated LED label property to color and function.
  "system" LED has been renamed to "status", it is acceptable
  because these LEDs do not have text labels.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18251
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 19:37:49 +02:00
Shiji Yang
9e08350b10 ramips: convert HiWiFi devices MAC address to NVMEM format
For all HiWiFi series devices, the base MAC address is stored on
"bdinfo" partition, offset 0x18a, ASCII text format. The recently
introduced "mac-base" nvmem layout can handle the ASCII text now,
so it's time to move MAC address configurations to dts. There is
no valid MAC info in the "factory" partition, hence they will be
replaced with the correct ones.

Tested on HiWiFi HC5661A and HC5861.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18251
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 19:37:49 +02:00
Simonas Tamošaitis
7264a913a3 ramips: mt76x8: add Teltonika RUT951/RUT901 support
Specification:
- MediaTek MT7628AN SoC
- 128 MB of RAM EtronTech EM68C16CWQG-25IH
- 16MB of Flash Winbond W25Q128 SPI
- 4x 10/100 Mbps Ethernet, with passive PoE support on LAN1
- MediaTek MT7628AN 2.4 GHz 802.11n WiFi
- Quectel EC25-EUX 4G cat 4 modem (RUT951) or Quectel EC200A-EU 4G cat 4 modem (RUT901)
- 1x Digital input
- 1x Digital output
- 2x SIM slot (can be swapped via GPIO)
- eSIM (depends on hardware configuration, can be swapped via GPIO)

GPIO:
 - 1 button (Reset)
 - 7 LEDs (power, status green/red, RSSI 1,2,3,4,5)
 - 5 Modem control (power button, reset, status, SIM select, eSIM select)
 - 1 Digital input
 - 1 Digital output

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:
Quectel EC200A-EU send command to modem:
    echo -ne 'AT+QNETDEVCTL=3,1\r\n' > /dev/ttyUSB2
    Create DHCP interface with usb0 device.
Quectel EC25-EUX create proto qmi interface.

Signed-off-by: Simonas Tamošaitis <simsasss@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18788
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 17:10:03 +02:00
Simonas Tamošaitis
85e300c93d ramips: mt76x8: add Teltonika RUT956/RUT906 support
Specification:
- MediaTek MT7628AN SoC
- 128 MB of RAM EtronTech EM68C16CWQG-25IH
- 16MB of Flash Winbond W25Q128 SPI
- 4x 10/100 Mbps Ethernet, with passive PoE support on LAN1
- MediaTek MT7628AN 2.4 GHz 802.11n WiFi
- Quectel EC25-EUX (RUT956) or Meig SLM770A (RUT906) 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)

GPIO:
 - 1 button (Reset)
 - 7 LEDs (power, status green/red, RSSI 1,2,3,4,5)
 - 5 Modem control (power button, reset, status (v5 hw), SIM select, eSIM select)
 - 2 Digital input
 - 2 Digital output
 - 1 Isolated input
 - 1 RS485 tx enable
 - 1 RS485 rx enable
 - 1 Relay
 - 1 Data Carrier Detect (DCD)

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:
Meig SLM770 create proto DHCP interface with usb0 device.
Quectel EC25-EUX create proto qmi interface.

Signed-off-by: Simonas Tamošaitis <simsasss@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18788
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 17:10:02 +02:00
Mieczyslaw Nalewaj
b44f85f51c kernel: remove duplicate PREEMPT settings
Remove duplicate PREEMPT settings PREEMPT_NONE_BUILD and PREEMPT_RT
which are already in target/linux/generic/config-6.12.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18986
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-08 15:59:55 +02:00
Álvaro Fernández Rojas
5ab72cfc40 bmips: bcm6358: add support for Huawei HG556a ver A
Specifications:
- SoC: Broadcom BCM6358 dual 300MHz MIPS
- Flash: 16MB NOR Spansion S29GL128P10
- RAM: 64MB DDR
- Ethernet: 4x 100M
- Wifi: Atheros AR9223
- 3x USB 2.0 port
- 4x Button
- 13x LED
- RJ11 2x FXS VoIP (unsupported)
- RJ11 xDSL (unsupported)

Install instructions:
- Assign static IP 192.168.1.100 to PC.
- Unplug the power source.
- Press the RESTART button at the router, don't release it yet!
- Plug the power source and wait at least 15 seconds.
- Release the RESTART button.
- Browse to http://192.168.1.1 with your PC.
- Upload the openwrt-bmips-bcm6358-huawei_hg556a-a-squashfs-cfe.bin file.
- Wait some minutes until the firmware upgrade completes.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-08 05:09:24 +02:00
Álvaro Fernández Rojas
975f4de1c8 bmips: fix LAN LEDs configuration
Commit Fixes: 15430a1348 ("bmips: use wan ports as standalone ports")
removed bridge devices and therefore switch.1 no longer exists, so let's
use br-lan instead.

Fixes: 15430a1348 ("bmips: use wan ports as standalone ports")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-07 21:13:23 +02:00
Sander van Deijck
b6a07dd091 ramips: mt7621: add support for Arcadyan WE410443
The Arcadyan WE410443 is a WiFi AC access point distributed by various ISPs
under various names, including KPN SuperWifi and BT Whole Home Wi-Fi. It
features one ethernet port, dual MT7615N radios and four internal antennas.

Hardware:
- SoC: Mediatek MT7621AT
- Flash: 32 MB
- RAM: 128 MB
- Ethernet: 1x 10/100/1000 Mbps, built into the SoC
- WLAN: 2x MediaTek MT7615N
- Buttons: 1 Reset button, 1 WPS button
- LEDs: 1x Green, 1x Blue, 1x Red, all unmarked
- Power: 12 VDC, 1.5A barrel plug

Installation:
The bootloader is locked with a password, so the image needs to be written
directly to the SPI flash chip. To do this, you need to open up the case,
remove the heatsink and connect the flash chip to a Raspberry Pi. Use the
following connections:

Flash chip --> Raspberry Pi

VCC --> 3v3
RESET --> 3v3
/CS --> GPIO 8
DO --> GPIO 9
CLK --> GPIO 11
DI --> GPIO 10
GND --> Ground

You can solder wires to the flash chip, or use a SOIC16 clip. More details on
the Raspberry Pi and SPI chip pinouts are available on the wiki [1]
When you have the Raspberry Pi connected to the flash chip, boot your Pi and
follow the instructions:

1) Make sure your Pi has SPI enabled with sudo raspi-config

2) Install necessary tools: sudo apt install xxd libubootenv-tool mtd-utils

3) Upload overlay and execute:
sudo dtc -@ -I dts -O dtb -o
/boot/overlays/we410443.dtbo we410443-overlay.dts

4) Enable in /boot/firmware/config.txt by adding a new line containing
dtoverlay=we410443

5) Reboot your Pi and verify the mtd partitions with
cat /proc/mtd, you should see:

dev:    size   erasesize  name
mtd0: 02000000 00001000 "all"
mtd1: 00030000 00001000 "u-boot"
mtd2: 00010000 00001000 "u-boot-env"
mtd3: 00010000 00001000 "factory"
mtd4: 01f60000 00001000 "firmware"
mtd5: 00010000 00001000 "glbcfg"
mtd6: 00010000 00001000 "config"
mtd7: 00010000 00001000 "glbcfg2"
mtd8: 00010000 00001000 "config2"

6) Optionally (but recommended), make a backup:
sudo dd if=/dev/mtd0 of=backup.bin
It can be restored with: sudo flashcp backup.bin /dev/mtd0

7) Set the variables for the bootloader:
echo '/dev/mtd2 0x0 0x1000 0x1000' > fw_env.config
sudo fw_setenv -c fw_env.config bootpartition 0

8) Finally, flash the image:
sudo flashcp openwrt-ramips-mt7621-arcadyan_we410443-
squashfs-sysupgrade.bin /dev/mtd4

MAC addresses
The label address is stored in ASCII in the config partition

Use --> Address

Device --> label
Ethernet --> label
WLAN 2g --> + 1
WLAN 5g --> + 2

References:
[1] https://openwrt.org/toh/arcadyan/astoria/we410443

Signed-off-by: Sander van Deijck <sander@vandeijck.com>
Link: https://github.com/openwrt/openwrt/pull/17981
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-07 21:04:53 +02:00
Shiji Yang
afdf88b9a1 ramips: dts: adjust the power regulators of MMC controller
- Fix MMC bus IO voltage. The GPIO voltage of mt762x series SoCs
  is fixed 3.3V. There are no visible registers that can control
  the voltage level. Also add "no-1-8-v" property to indicate that
  MMC controller doesn't support 1.8V IO.

- Drop useless property "enable-active-high". These dummy fixed
  voltage regulators are not controlled by the GPIO. We don't need
  to set the GPIO polarity.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18886
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-07 20:28:11 +02:00
Shiji Yang
a617ab6639 ramips: dts: mt7621: reuse the default USB dummy regulators
To simplify the device specific dts, reuse the mt7621 default
XHCI voltage regulators by adding the corresponding GPIO pin
and polarity properties.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18886
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-07 20:28:11 +02:00
Shiji Yang
548d993a04 ramips: dts: mt7621: remove redundant USB regulators
We have added the default voltage regulators for the mt7621 SoC
dtsi. These redundant voltage regulators can be removed now.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18886
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-07 20:28:11 +02:00
Shiji Yang
51b77a3298 ramips: dts: mt7621: add the missing XHCI power regulators
The USB power regulators are essential for the Mediatek XHCI
controller. If any of them is missing, the kernel will throw
a warning. Add fixed voltage io/vbus regulators to workaround
this issue. Fix the following warnings:

[    7.514572] xhci-mtk 1e1c0000.xhci: supply vbus not found, using dummy regulator
[    7.522375] xhci-mtk 1e1c0000.xhci: supply vusb33 not found, using dummy regulator

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18886
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-07 20:28:11 +02:00
Roland Reinl
300335f1ff mediatek: filogic: add support for Cudy WR3000E v1
The WR3000E has the same board layout as the WR3000S. Differences:
- Different flash chip
- LEDs with red/blue colour intead of white

Hardware:
- MediaTek MT7981 WiSoC
- 256MB DDR3 RAM
- 128MB SPI-NAND (F50L1G41LB)
- MediaTek MT7981 2x2 DBDC 802.11ax 2T2R (2.4 / 5)

MAC Addresses in OEM firmware:
- There is one on the label, e.g. AA:BB:CC:DD:EE:FF
- WLAN (2.4G) uses the same as on the label
- WLAN (5G) is the one on the label but
  - first byte (e.g. AA) + 2
  - fourth byte (e.g. DD) - 0x40
- WAN is the one on the label + 1
- LAN is the one on the label

MAC Addresses in OpenWrt:
- Same handling as in WR3000s is used

GPIO:
- 2 Buttons (all low active):
  - WPS on GPIO 0
  - Reset on GPIO 1
- 6 LEDs (all low active):
  - Power: Blue on GPIO 8, no red LED
  - WPS: Blue on GPIO 10, Red on GPIO 4
  - Internet: Blue on GPIO 11, no red LED
  - LAN: Blue on GPIO 9, Red on GPIO 5
  - WiFi 2.4G: Blue on GPIO 6, no red LED
  - WiFi 5G: Blue on GPIO 7, no red LED

Disassembly:
- Remove the 4 screws at the bottom of the case
- Cover is clipped to the bottom part of the case with clips in the front and the back

UART:
- UART pins are accessible on the bottom of the board
- The connector with the square shape is TX
- Pins: [ ] TX, ( ) RX, ( ) GND, ( ) VCC
- Settings: 115200 8N1 3.3V

Migration to OpenWrt via OEM firmware:
- There should be a migration image available from Cudy as soon as there is official OpenWrt support
- Download the migration image via OEM web interface
- After flashing, OpenWrt is accessible via 192.168.1.1
- Flash the official OpenWrt image

Migration to OpenWrt using TFTP:
- Connect UART as described above
- Press the reset button while powering on the device
- U-Boot will now try to load a recovery.bin via TFTP, this must be ignored
- After detecting a timeout, the U-Boot console is available via UART
- Set up a TFTP server on IP 192.168.1.88 and connect it to one of the LAN ports
- Provide the initramfs image via TFTP as cudy3000e.bin
- Run the following command in U-Boot: tftpboot 0x46000000 cudy3000e.bin; bootm 0x46000000
- OpenWrt initramfs image is now booting and accessible via 192.168.1.1
- Flash the sysupgrade image

Revert back to OEM:
- Set up a TFTP server on IP 192.168.1.88 and connect it to one of the LAN ports
- Provide the Cudy firmware via TFTP as recovery.bin
- Press the reset button while powering on the device
- Recovery process will start now
- After recovery is done, the OEM firmware is available at 192.168.10.1 again

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18609
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-07 18:07:03 +02:00
Álvaro Fernández Rojas
b0c8780604 bmips: add RFC v2 bcm5325 patches
Update BCM5325 patches to the latest version sent to netdev.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-07 16:08:30 +02:00
Álvaro Fernández Rojas
7d617804cf bmips: bcm6358: revert use wan ports as standalone ports
This reverts commit 15430a1348 for bcm6358 subtarget since it breaks
network configuration.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-07 13:21:31 +02:00
Jonas Gorski
15430a1348 bmips: use wan ports as standalone ports
With the recent fixes backported to 6.12, b53 ports should now fully
work as standalone ports outside of a switch.

So move them out of the switch and use them as standalone ports, which
makes configuring easier as VLANs don't need to be defined and reserved
anymore to use the wan port.

Tested on DGND3700v1.

While most devices do not define a wan port, I dropped the
ucidef_set_bridge_device() from all devices for consistency.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
2025-06-07 09:58:19 +02:00
Álvaro Fernández Rojas
1a97278ee1 generic: 6.12: backport b53 RGMII port patches
Update b53 RGMII port patches to the accepted upstream version.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-07 09:48:43 +02:00
Tim Harvey
c70e987f05 imx: add 6.12 kernel as testing
Allow selecting 6.12 as testing kernel on imx.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19029
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-07 08:38:07 +02:00
Tim Harvey
b0d2b33e3c imx: 6-12: refresh patches and kernel configs
patches:
 - remove patches from 6.7-6.12 that are now upstream.
 - refresh remaining patches
 - 502-6.13-arm64-dts-freescale-rename-gw7905-to-gw75xx.patch was
   misnamed as that patch went upstream in 6.12 and thus is also removed
 - 504-6.13-arm64-dts-imx-Add-i.MX8M-Plus-Gateworks-GW82XX-2X-support.patch
   was refreshed to the final version that was accepted upstream
 - 600-PCI-imx6-Start-link-at-max-gen-first-for-IMX8MM-and-IMX8MP.patch
   was removed while I investigate an upstream approach for the issue
   it was working around.

configs:
 - config-6.12: unset new configs not needed for all cortexa7/a9/a53
 - cortexa53/config-default: added new CONFIG_PCI_IMX6_HOST config for cortexA53 (IMX8M)

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19029
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-07 08:38:07 +02:00
Tim Harvey
a8feb51e71 kernel/imx: Restore kernel files for v6.6
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: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19029
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-07 08:38:06 +02:00
Tim Harvey
a882f0fc60 kernel/imx: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19029
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-07 08:38:06 +02:00
John Audia
a2eaadeed2 ipq806x: config-6.6: add new option
6.6.93 introduced new config option[1]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.93&id=fba6e5d44fb8df6bdadb1e90d2ddca715462248f

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19026
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-06 10:01:31 +02:00
John Audia
45e53284e6 ipq40xx: config-6.6: add new option
6.6.93 introduced new config option[1]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.93&id=fba6e5d44fb8df6bdadb1e90d2ddca715462248f

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19026
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-06 10:01:31 +02:00
John Audia
a878dd24e7 kernel: bump 6.6 to 6.6.93
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.93

Removed upstreamed:
	backport-6.6/780-51-v6.15-r8169-don-t-scan-PHY-addresses-0.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.93&id=961ee132104b09e054308e53d8ab4a2386a21904

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19026
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-06 10:01:31 +02:00
Zheng Zhang
1f7304a0cc ramips: mt7621: fix file permissions in source tree
They don't need +x permission.

Fixes: 502916468e ("ramips: add support for ASUS 4G-AX56")
Signed-off-by: Zheng Zhang <everything411@qq.com>
Link: https://github.com/openwrt/openwrt/pull/19034
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-06-06 09:38:43 +02:00
Shiji Yang
c947e37e61 starfive: fix 6.12 kernel patch conflict
The recently committed starfive 6.12 kernel support patchset[1] has
conflict with the 6.12.32 kernel update[2]. Remove upstreamed patch
to fix the issue:

  0031-phy-starfive-jh7110-usb-Fix-usb-2.0-host-detection-f.patch [3]

[1] https://github.com/openwrt/openwrt/pull/18997
[2] https://github.com/openwrt/openwrt/pull/19027
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.32&id=2c09a5cbc0100e88b8872b11f4da01a656c97fbc

Fixes: ebfd69a3e3 ("kernel: bump 6.12 to 6.12.32")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19039
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-06 07:42:35 +02:00
Sergey Shlukov
8b24289a52 mediatek: add support for TP-Link Archer AX80v1(US/RU/CA)
This commit adds support for TP-Link Archer AX80v1(US/RU/CA).

Device specification
SoC Type:   MediaTek MT7986AV, Cortex-A53, 64-bit
RAM:        ESMT M15T4G16256 (512MB)
Flash:      ESMT F50L1G41LB (128 MB)
Ethernet:   MediaTek MT7531AE + 2.5GbE MaxLinear GPY211C0VC (SLNW8)
Ethernet:   1x2.5Gbe (WAN/LAN 2.5Gbps), 4xGbE (WAN/LAN 1Gbps, LAN1, LAN2, LAN3)
WLAN 2g:    MediaTek MT7976GN
WLAN 5g:    MediaTek MT7976AN
LEDs:       1 red,1 green,1 blue status LEDs,

Buttons:    4 (Reset,ledswitch,wps,wlan),
USB ports:  1 (USB 3.0)
Power:      12 VDC, 3,3 A
Connector:  Barrel
Bootloader: Main U-Boot - U-Boot 2022.01-rc4. Additionally, both UBI
            slots contain "seconduboot" (also U-Boot 2022.01-rc4)
Serial console (UART)
                            V
+-------+-------+-------+-------+
| +3.3V |  GND  |  TX   |  RX   |
+---+---+-------+-------+-------+
    |
    +--- Don't connect

Installation (UART)
Place OpenWrt initramfs 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'

Load and run OpenWrt initramfs image:

      tftpboot initramfs-kernel.bin
      bootm

!!Attention!! is very important! After entering OpenWrt, please set / update the environment variables:

fw_setenv bootargs "ubi.mtd=ubi0 console=ttyS0,115200n1 loglevel=8 earlycon=uart8250,mmio32,0x11002000 init=/etc/preinit"
fw_setenv mtdids "spi-nand0=spi-nand0"
fw_setenv mtdparts "spi-nand0:2M(boot),1M(u-boot-env),50M(ubi0),50M(ubi1),8M(userconfig),4M(tp_data),8M(mali_data)"
fw_setenv tp_boot_idx 0

Run 'sysupgrade -n' with the sysupgrade OpenWrt image from console or Luci WebUI.

Recovery

Press Reset button and power on the router
Navigate to U-Boot recovery web server (192.168.1.1) and upload the OEM firmware

Stock layout

0x000000000000-0x000000200000 : "boot"
0x000000200000-0x000000300000 : "u-boot-env"
0x000000300000-0x000003500000 : "ubi0"
0x000003500000-0x000006700000 : "ubi1"
0x000006700000-0x000006f00000 : "userconfig"
0x000006f00000-0x000007300000 : "tp_data"
0x000007300000-0x000007B00000 : "mali_data"

ubi0/ubi1 format
U-Boot at boot checks that all volumes are in place:

+-------------------------------+
| Volume Name: uboot   Vol ID: 0|
| Volume Name: kernel  Vol ID: 1|
| Volume Name: rootfs  Vol ID: 2|
+-------------------------------+
MAC addresses
+---------+-------------------+-----------+
| label   | 00:eb:xx:xx:xx:be | label     |
| LAN     | 00:eb:xx:xx:xx:be | label     |
| WAN     | 00:eb:xx:xx:xx:bf | label+1   |
| WLAN 2g | 00:eb:xx:xx:xx:be | label     |
| WLAN 5g | 00:eb:xx:xx:xx:bd | label-1   |
+---------+-------------------+-----------+
label MAC address was found in UBI partition "tp_data", file "default-mac".
OEM wireless eeprom is also there (file "MT7986_EEPROM.bin").

Signed-off-by: Sergey Shlukov <ichizakurain@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17753
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-05 22:55:55 +02:00
Roland Reinl
54febbc55b mediatek: Create common DTSI for WR3000H and WR3000S
This change moves common elements of the WR3000H and the WR3000S to mt7981b-cudy-wr3000-nand.dtsi.
This will simplify adding of new similar devices, for exapmle WR3000E.

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18619
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-05 21:13:24 +02:00
Shiji Yang
ebfd69a3e3 kernel: bump 6.12 to 6.12.32
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.32

All patches are automatically refreshed.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Tested-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19027
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-05 21:11:28 +02:00
Zoltan HERPAI
ee129da777 starfive: add 6.12 as testing kernel
Runtime-tested on:
 - Visionfive v2-1.3b (JH7110)
 - Visionfive v1 (JH7100)

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-05 16:39:15 +02:00
Zoltan HERPAI
f97609a10f starfive: jh7110: update bootscript to use addresses in bootloader
Rather than hardcoding the kernel/fdt addresses in the boot.scr script,
use the addresses provided by the bootloader.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-05 16:39:15 +02:00
Zoltan HERPAI
8f0f02d297 starfive: 6.12: refresh patches and drop upstreamed ones
- refresh, rebase and reorder patches
 - JH7110 media drivers have been dropped for now
 - JH7110 E24 and mailbox drivers were added
 - JH7100 DMA- and errata-patches have been dropped as they were
   upstreamed

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-05 16:39:15 +02:00
Zoltan HERPAI
91ee157b9d kernel/starfive: Restore kernel files for v6.6
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: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-05 16:39:15 +02:00
Zoltan HERPAI
ec54e841b9 kernel/starfive: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-05 16:39:15 +02:00
Robert Marko
df9ffedb75 archs38: drop target
archs38 has been on life support for the last couple of releases,eventually
leading to marking it as source-only in 2023.

It has been basically only touched to do a kernel bump so that we can make
the new OpenWrt release.

Link: https://github.com/openwrt/openwrt/pull/19001
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-05 10:43:00 +02:00
Mathew McBride
1304d8b064 armsr: enable 6.12 as a testing kernel version
Allow the armsr target to be built with a 6.12 kernel
when CONFIG_TESTING_KERNEL is set.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:27 +02:00
Mathew McBride
08c4948ac6 armsr: 6.12: add new KConfigs and refresh
This includes both new additions to 6.12
and an attempted "refresh" of the config
to remove duplicates from target/generic/config-6.12.

(The OpenWrt kernel_makeoldconfig does not
work well with the armv8 subtarget for reasons
I am yet to determine, so that file has been
pruned manually)

Most new options are in armv8, where the
KConfig relates to a platform that will likely
be armsr compatible (like the i.MX91/93/95),
it has been enabled.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:27 +02:00
Mathew McBride
46cf1dacd3 armsr: patches: refresh printk console patch for 6.12
This carries the text console behaviour fix as described in
[1] over to the 6.12 kernel.

Signed-off-by: Mathew McBride <matt@traverse.com.au>

[1] https://github.com/openwrt/openwrt/pull/17012#issuecomment-2591751115
Link: https://github.com/openwrt/openwrt/pull/18849

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:27 +02:00
Mathew McBride
1218717c05 kernel/armsr: Restore kernel files for v6.6
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/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:26 +02:00
Mathew McBride
386f1a1a1e kernel/armsr: Create kernel files for v6.12 (from v6.6)
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/18849
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-04 20:18:26 +02:00
Markus Stockhausen
c78765213e kernel: mtdsplit_uimage: return 0 if not fatal
Introduced with Linux 6.7, in commit:
5c2f7727d437 ("mtd: mtdpart: check for subpartitions parsing result"),
when a parser returns an error, this will be passed up, and
consequently, all parent mtd partitions get torn down.

Adjust the mtdsplit_uimage driver to only return an error if there is a
critical problem in reading from the mtd device or allocating memory.
Otherwise return 0 to indicate that no partitions were found.
Also add logging to indicate what went wrong.

E.g. on Realtek devices that are booted for the first time through
initramfs with OpenWrt never installed before boot log will show

[    0.932985] Creating 8 MTD partitions on "spi0.0":
[    0.938412] 0x000000000000-0x000000080000 : "u-boot"
[    0.990151] 0x000000080000-0x0000000c0000 : "u-boot-env"
[    0.999907] 0x0000000c0000-0x000000100000 : "board-name"
[    1.019971] 0x000000100000-0x000000e80000 : "firmware"
[    1.051582] mtdsplit_uimage: no uImage found in "firmware"
[    1.069365] 0x000000e80000-0x000001000000 : "kernel2"
[    1.078959] 0x000001000000-0x000001040000 : "sysinfo"
[    1.099747] 0x000001040000-0x000001c40000 : "rootfs2"
[    1.119865] 0x000001c40000-0x000002000000 : "jffs2"

Similar issue was fixed before with commit ade045084b
("kernel: mtdsplit_minor: return 0 if not fatal")

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19016
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-04 12:50:12 +02:00
Matthew Bilker
8d30e07180 mediatek: filogic: fix for new GL.iNet GL-MT2500/GL-MT2500A hardware revision
GL.iNet shipped a hardware change of the WAN PHY going from the MaxLinear
GPY211C to the Airoha EN8811H.

Signed-off-by: Matthew Bilker <me@mbilker.us>
Link: https://github.com/openwrt/openwrt/pull/18799
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-06-03 23:19:35 +02:00
Linus Walleij
b6b24a5de9 gemini: Move back to using statically compiled PHYs
Trying to use modules for the PHY:s does not work:

The ethernet driver does not like to probe if it can't find
the PHY.

The ethernet driver really likes to be compiled-in. It will
not probe otherwise. Some hardware issue.

Revert things to how they always worked until I maybe solve
this.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-06-03 23:05:15 +02:00
Stephen Howell
cc5421128e realtek: extend simple thermal driver to support rtl839x
* Extends SoC thermal sensor on rtl839x
* Tested on HP JG928A

Signed-off-by: Stephen Howell <howels@allthatwemight.be>
Link: https://github.com/openwrt/openwrt/pull/18825
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-03 11:14:45 +02:00
Rosen Penev
079db0ab81 ramips: mt7621: use regulators for USB GPIO
Regulators as implemented by the XHCI driver only accept one GPIO.
However, we can abuse the fact that the XHCI driver accepts two
regulators, one for 5V and the other for 3.3V, for USB 2 and 3 GPIOs.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16967
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-03 11:04:50 +02:00
Álvaro Fernández Rojas
9ccabb3f42 bmips: huawei,hg556a-b: configure LAN LEDs
Now that the external switch is working properly we can configure the LAN LEDs.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-03 08:02:05 +02:00
Linus Walleij
e50c8f959d ixp4xx: Switch to kernel v6.12
This can be done with so little effort, all but two patches are now
upstream. No need to keep support for v6.6, everything just works
the same or better with v6.12.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-06-03 01:45:40 +02:00
George Moussalem
480268596f qualcommax: ipq50xx: fix uniphy soft reset issue
The resets in the GCC of the uniphy found in the IPQ5018 SoC are
incorrect which broke the ability to shift between 1G and 2.5G link
speeds. So let's correct the resets based on below two downstream
commits.

In a seperate and prequisite PR to the QCA-SSDK repo, logic has been
implemented to select the right reset based on the link setup so fixed
link scenarios don't break.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18774
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-02 22:59:05 +02:00
George Moussalem
273bd3463c qualcommax: ipq50xx: prepare for UNIPHY reset fix
Ahead of the actual fix in both the GCC and QCA-SSDK, add the required
AHB reset so it can be picked up by updated QCA-SSDK. This is needed
as the SSDK needs to use different resets depending on the link
architecture. If it's a fixed link, AHB needs to be reset. In a phy to
phy link setup (such as QCA8081), SYS, RX, and TX need to be reset using
one reset with a bitmask in the GCC (GCC_UNIPHY_SOFT_RESET).

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18774
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-02 22:59:05 +02:00
George Moussalem
e53592d0f6 qualcommax: ipq50xx: remove named clock references for GE PHY
With completely carving out GE PHY out of the QCA-SSDK, the named clock
references to the GE PHY RX and TX clocks are no longer needed.
So, let's revert to using the DT indices as per the upstream GCC driver.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18774
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-02 22:59:05 +02:00
George Moussalem
da2c83327f qualcommax: ipq50xx: update patches for IPQ5018 GE PHY
Use latest patches sent upstream for review for IPQ5018 GE PHY support:
- Move enablement of the LDO controller to the mdio-ipq4019 driver away
  from the CMN PLL driver
- Remove the different patches to add CDT, MSE, AZ, and DAC support they
  are all contained in the upstreamed driver.

Accordingly, also set the right property in the DTS for Linksys SPNMX56
to set the right DAC values to accommodate for the short cable length.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18774
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-02 22:59:05 +02:00
Shiji Yang
050a308820 gemini: switch default NTFS driver package to kmod-fs-ntfs3
kmod-fs-ntfs is not available on the 6.12 kernel.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18954
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-02 15:51:21 +02:00
Alexandru Gagniuc
57c104ef7f qualcommbe: drop kernel v6.6 support
As qualcommbe is now supported by the v6.12 kernel, there is no point
in v6.6 as well. Drop v6.6 support.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18982
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-02 09:44:22 +02:00
Alexandru Gagniuc
c7e1fc54ee qualcommbe: use kernel 6.12 by default
The qualcommbe target was introduced after openwrt-24.10. The v6.12
kernel is now available, and is likely to be used by the next openwrt
release.While the v6.6 kernel served as an interim development vehicle,
it is no longer useful for the qualcommbe target

The v6.12 patches contain more recent submissions of pending ipq95xx
drivers. I expect that it will be much easier to update v6.12 patches
with new submissions. For ease of maintenance, it makes sense to use
a single kernel for qualcommbe.

For these reasons, enable v6.12 by default.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18982
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-02 09:44:22 +02:00
Álvaro Fernández Rojas
dbffeebea4 bmips: huawei,hg556a-b: enable external switch
The external switch of the Huawei HG556a is a BCM5325E connected by MDIO.

All the DSA brcm legacy FCS tag and b53 patches have been submitted upstream
and will be backported when accepted.

There are still some sporadic FDB errors, but at least the switch is working
and stable on my device:
bcm53xx fffe4800.ethernet-mii:1e: port 0 failed to add 72:31:59:xx:xx:xx vid 1 to fdb: -28
bcm53xx fffe4800.ethernet-mii:1e: port 0 failed to add 5c:4c:a9:xx:xx:xx vid 0 to fdb: -28
bcm53xx fffe4800.ethernet-mii:1e: port 0 failed to add 5c:4c:a9:xx:xx:xx vid 1 to fdb: -28
bcm53xx fffe4800.ethernet-mii:1e: port 0 failed to delete 72:31:59:xx:xx:xx vid 1 from fdb: -2

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-06-01 20:48:06 +02:00
Zoltan HERPAI
a3cd610b28 pistachio: drop 6.6 support
Drop configs and patches for Linux 6.6.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-01 16:24:34 +02:00
Zoltan HERPAI
56b9ceef64 pistachio: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-06-01 16:24:34 +02:00
Alexandru Gagniuc
ba674fea40 realtek: support EnGenius EWS2910P v3
Add support for V3 of the Engenius EWS2910P PoE switch. Like its v1
brother, This is an RTL8380 based switch with two SFP slots, and PoE
802.3af one every RJ-45 port.

Unlike its older brother, the max budget is 55W instead of 61.6 W.
Investigation into the communication protocol with the PoE controller
is ongoing, though it appears the vendor firmware configures the PSE
with a per-port budget of 30.0W.

Specifications:
---------------
* SoC:       Realtek RTL8380M
* Flash:     32 MiB SPI flash Macronix MX25L25635E
* RAM:       256 MiB (As reported by bootloader)
* Ethernet:  8x 10/100/1000 Mbps with PoE
             2x SFP slots
* Buttons:   1 "Reset" button on front panel
             1 "LED mode: button on front panel
             1 "On/Off" Toggle switch on the back
* Power:     48V-54V DC barrel jack
* UART:      1 serial header (JP1) with populated 2.54mm pitch header
             Labeled GRTV for ground, rx, tx, and 3.3V respectively
* PoE:       1 STM ST32... microcontroller (U15)
             1 RTL8238B PSE controller
Works:
------
  - (8) RJ-45 ethernet ports
  - Switch functions
  - LEDs and buttons

Not yet enabled:
----------------
  - Power-over-Ethernet (requires realtek-poe support for RTL8232B)

Install via web interface:
-------------------------

The factory firmware will accept and flash the initramfs image. It is
recommended to flash to "Partition 0". Flashing to "Partition 1" is
not supported at this point.

The factory web GUI will show the following warning:

 " Warning: The firmware version is v0.00.00-c0.0.00
     The firmware image you are uploading is older than the current
     firmware of the switch. The device will reset back to default
     settings. Are you sure you want to proceed?"

This is expected when flashing OpenWrt. After the initramfs image
boots, flash the -sysupgrade using either the commandline or LuCI.

Install via serial console/tftp:
--------------------------------

See commit 2cfaab4549 ("realtek: add support for EnGenius EWS2910P").

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15217
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 23:19:01 +02:00
Alexandru Gagniuc
e5625fb448 realtek: engenius_ews2910p: support multiple hardware versions
When the Engenius EWS-2910P was added, only v1 was known. Move the
common parts to a dtsi, and split up the support to acccount for the
hardware version.

On v3, for example, the root partition uses a different uImage magic.

Add a "engenius,ews2910p-v1" compatible, while leaving the legacy
"engenius,ews2910p" to also mean v1.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15217
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 23:19:01 +02:00
Shiji Yang
30cdc48360 kernel: bump 6.12 to 6.12.31
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.31

Remove upstreamed patches:
  backport-6.12/780-27-v6.15-r8169-don-t-scan-PHY-addresses-0.patch [1]
  backport-6.12/780-33-v6.15-r8169-disable-RTL8126-ZRX-DC-timeout.patch [2]
  bcm27xx/patches-6.12/950-0315-media-i2c-imx219-Correct-the-minimum-vblanking-value.patch [3]
  bcm27xx/patches-6.12/950-0857-drm-v3d-Add-clock-handling.patch [4]
  bcm27xx/patches-6.12/950-0874-PCI-brcmstb-Expand-inbound-window-size-up-to-64GB.patch [5]
  bcm27xx/patches-6.12/950-0877-PCI-brcmstb-Adding-a-softdep-to-MIP-MSI-X-driver.patch [6]
  bcm27xx/patches-6.12/950-0960-media-imx335-Set-vblank-immediately.patch [7]

Manually rebased patches:
  d1/patches-6.12/0009-ASoC-sunxi-sun4i-codec-add-basic-support-for-D1-audi.patch

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=ba59747562c49974cbace989d76b94a8331da442
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=2780aa8394415df0a69e3b908d6dd8c79e1d1bcc
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=9a981079097bee6a0583877798de0b240717bdde
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=bbd6dc1fb6c56267ad1d58810d92287fcd5b0058
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=3ffaa2e999380477774e76680ff4cef247451168
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=12153e3948c596737853c3ec4ff7e4e3f4a9f9a6
[7] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=8d7e13c31c52690655883dff604238b0760a3644

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18953
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-31 17:35:29 +02:00
Álvaro Fernández Rojas
84eefb493b generic: backport brcm legacy dsa tag fix
Backport a small fix for brcm legacy dsa tags that has been accepted for
linux v6.16.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-31 15:30:08 +02:00
Álvaro Fernández Rojas
ba1017bf74 generic: backport bcm63xx SPI reset fix
Fixes SPI and HSSPI coexistance on bmips bcm6362 and bcm63268.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-31 12:29:30 +02:00
Markus Stockhausen
9716f89df6 realtek: enhance & harmonize dsa/phy max port patches
DSA silently drops internal phy access to ports >= 32 in dsa_user_phy_read()
and dsa_user_phy_write(). The code shows:

static int dsa_user_phy_read(struct mii_bus *bus, int addr, int reg)
{
	struct dsa_switch *ds = bus->priv;

	if (ds->phys_mii_mask & (1 << addr))
		return ds->ops->phy_read(ds, addr, reg);

	return 0xffff;
}

With ds->phys_mii_mask being a 32 bit variable the reason is clear. So do
not only increase the max values but also adapt the needed bitmasks in
the dsa and phy code. This fixes the dsa_user_ports() and dsa_cpu_ports()
too.

While we are here combine the old separated patches because dsa, mdio and
phy are tigthly coupled.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18846
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:28:14 +02:00
Alexandru Gagniuc
22dc34e8c1 qualcommbe: v6.12: enable 2.5G and 10G phylink modes in pcs-qcom-ipq9574
The PCS driver in the 6.12 patchset is the v5 submission (see link
below). It solves a number of issues and crashes with teh pcs driver
from the 6.6 patchset. However, this new driver is missing support for
"10gbase-r", "10g-qxgmii", and 1000/2500base-x modes.

Port these modes to the 6.12 patchset. "2500base-x" in particular seems
to be needed to establish a 2.5G link on phy-mode="usxgmii";

Link: https://lore.kernel.org/lkml/20250207-ipq_pcs_6-14_rc1-v5-0-be2ebec32921@quicinc.com/
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:49 +02:00
Alexandru Gagniuc
3d6c36e327 qualcommbe: enable v6.12 testing kernel
Now that patches for v6.12 are available, add the config, and enable
6.12 as a testing kernel.

Compared to v6.6 the patches to add "10gbase-r", "2500base-x",
"1000base-x", and "10g-qxgmii" modes have not been ported yet. They do
not apply cleanly to the new PCS driver. As the currently supported
hardware does not use those modes, it is not possible to test them at
this time.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:49 +02:00
Alexandru Gagniuc
1fc5e2ec90 qualcommbe: add v6.12 config from v6.6
Copy the v6.6 config to v6.6. It will be updated in a subsequent
commit in order to show the changes.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:49 +02:00
Alexandru Gagniuc
627daef0cf qualcommbe: v6.12: add NSSCC clock and reset fixes
Port reset and clock fixes from target/linux/qualcommbe/patches-6.6.
Modifications of v6.6 patches are noted in each commit body.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Alexandru Gagniuc
26ea222e21 qualcommbe: v6.12: enable ethernet for RDP433
Now that ethernet is supported on IPQ9574, add the port nodes and
other requirements to enable ethernet on RDP433.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Alexandru Gagniuc
f3fc278fcb qualcommbe: v6.12: add PPE driver (part 2)
Add the second part of the PPE driver. This includes the EDMA and
network device support. This part does not appear to have been
officially submitted for upstream review. The series is taken from
target/linux/qualcommbe/patches-6.6, and had to be heavily modified
in order to compile of v6.12. Changes to patches are noted in the
respective patch body.

Also add the PPE and EDMA nodes in this series.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Alexandru Gagniuc
cd9f3b8d33 qualcommbe: v6.12: add pending PPE driver (part 1)
Add v3 submission of the qualcomm PPE driver. As of this writing, it
is the latest version. This lacks the EDMA driver and network device
support. That will be added in part 2.

Link: https://lore.kernel.org/lkml/20250209-qcom_ipq_ppe-v3-0-453ea18d3271@quicinc.com
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Alexandru Gagniuc
3744b73602 qualcommbe: v6.12: add ethernet PCS driver for IPQ9574
Add the v5 of the PCS patch. This is the latest submission as of this
writing. THe last four patches are not part of the submission. They
make the series work with v6.12 kernel, resolve a circular dependency
with the clocks, and add the DTS node. Include them as bundle.

Link: https://lore.kernel.org/lkml/20250207-ipq_pcs_6-14_rc1-v5-0-be2ebec32921@quicinc.com/
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Alexandru Gagniuc
390e516a3b qualcommbe: v6.12: add QCA8084 ethernet PHY driver
This driver is cherry-picked from target/linux/qualcommbe/patches-6.6.
While Qualcomm did submit past patches for QCA8084, the code has since
ben split from at803x. The existing OpenWRT version of the patch is
the cleanest version I could find. Add it here.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Alexandru Gagniuc
8f4100ac3b qualcommbe: v6.12: add various DTS updates for IPQ9574 and RDP433
These devicetree updates can work with the existing upstreamcode. They
do not require code changes. Add them before any code change.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Alexandru Gagniuc
01f3624960 qualcommbe: v6.12: add pending patches
Add dts fixes from linux-next. Two patches from the NSSCC series are
still in -next did not yet land in mainline, as well as misc other DTS
changes. Add them here.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Alexandru Gagniuc
e3478dbd69 qualcommbe: v6.12: add upstreamed patches
Add relevant patches from upstream, up to v5.16-rc6. The gaps in the
patch numbersing are either patches that were picked into the stable
kernel (6.12.y), or that are already backported in
target/linux/generic. The gaps makes it easy for me to pick these
patches from my working kernel git branch.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18796
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-31 12:25:48 +02:00
Christian Marangi
427c4aa266
ath79: add calibtation variant for TP-Link Archer C6 v2
Now that we have a board file, add calibration variant for TP-Link
Archer C6 v2 and add ipq-wifi package for it.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-05-30 21:35:11 +02:00
Zoltan HERPAI
e05426aaf8 sunxi: enable crypto offload engine
Enable the sun8i_ce and sun8i_ss crypto engines that are included on
various Allwinner SoCs, along with their respective hash/prng/trng
options.

sun8i_ce: H2+, H3, H5, H6, R40 and A64
sun8i_ss: A80, A83T

BananaPi P2 Zero (H2+):

[    0.373860] sun8i-ce 1c15000.crypto: Set mod clock to 50000000 (50 Mhz) from 24000000 (24 Mhz)
[    0.374326] sun8i-ce 1c15000.crypto: will run requests pump with realtime priority
[    0.374516] sun8i-ce 1c15000.crypto: will run requests pump with realtime priority
[    0.374657] sun8i-ce 1c15000.crypto: will run requests pump with realtime priority
[    0.374788] sun8i-ce 1c15000.crypto: will run requests pump with realtime priority
[    0.374924] sun8i-ce 1c15000.crypto: Register cbc(aes)
[    0.374962] sun8i-ce 1c15000.crypto: Register ecb(aes)
[    0.374976] sun8i-ce 1c15000.crypto: Register cbc(des3_ede)
[    0.374990] sun8i-ce 1c15000.crypto: Register ecb(des3_ede)
[    0.375005] sun8i-ce 1c15000.crypto: Register md5
[    0.375019] sun8i-ce 1c15000.crypto: Register sha1
[    0.375032] sun8i-ce 1c15000.crypto: Register sha224
[    0.375046] sun8i-ce 1c15000.crypto: Register sha256
[    0.375061] sun8i-ce 1c15000.crypto: Register sha384
[    0.375075] sun8i-ce 1c15000.crypto: Register sha512
[    0.375109] sun8i-ce 1c15000.crypto: Register stdrng
[    0.375150] sun8i-ce 1c15000.crypto: TRNG not supported
[    0.375157] sun8i-ce 1c15000.crypto: CryptoEngine Die ID 1

BananaPi M3 (A83t):

[    0.429615] sun8i-ss 1c15000.crypto: will run requests pump with realtime priority
[    0.429866] sun8i-ss 1c15000.crypto: will run requests pump with realtime priority
[    0.430042] sun8i-ss 1c15000.crypto: DEBUG: Register cbc(aes)
[    0.430095] sun8i-ss 1c15000.crypto: DEBUG: Register ecb(aes)
[    0.430112] sun8i-ss 1c15000.crypto: DEBUG: Register cbc(des3_ede)
[    0.430128] sun8i-ss 1c15000.crypto: DEBUG: Register ecb(des3_ede)
[    0.430152] sun8i-ss 1c15000.crypto: Register md5
[    0.430171] sun8i-ss 1c15000.crypto: Register sha1
[    0.430187] sun8i-ss 1c15000.crypto: Register sha224
[    0.430203] sun8i-ss 1c15000.crypto: Register sha256
[    0.430220] sun8i-ss 1c15000.crypto: Register hmac(sha1)
[    0.430276] sun8i-ss 1c15000.crypto: Security System Die ID 7
[    0.493087] sun8i-ss 1c15000.crypto: Fallback driver could no be loaded

OrangePi Zero 2 (H616):

[    0.176833] sun8i-ce 1904000.crypto: will run requests pump with realtime priority
[    0.177054] sun8i-ce 1904000.crypto: will run requests pump with realtime priority
[    0.177167] sun8i-ce 1904000.crypto: will run requests pump with realtime priority
[    0.177258] sun8i-ce 1904000.crypto: will run requests pump with realtime priority
[    0.177361] sun8i-ce 1904000.crypto: Register cbc(aes)
[    0.177408] sun8i-ce 1904000.crypto: Register ecb(aes)
[    0.177420] sun8i-ce 1904000.crypto: Register cbc(des3_ede)
[    0.177432] sun8i-ce 1904000.crypto: Register ecb(des3_ede)
[    0.177444] sun8i-ce 1904000.crypto: Register md5
[    0.177456] sun8i-ce 1904000.crypto: Register sha1
[    0.177468] sun8i-ce 1904000.crypto: Register sha224
[    0.177479] sun8i-ce 1904000.crypto: Register sha256
[    0.177503] sun8i-ce 1904000.crypto: Register sha384
[    0.177515] sun8i-ce 1904000.crypto: Register sha512
[    0.177527] sun8i-ce 1904000.crypto: Register stdrng
[    0.177648] sun8i-ce 1904000.crypto: CryptoEngine Die ID 0

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-30 15:39:00 +02:00
Zoltan HERPAI
ab6ffa7e16 sunxi: cortexa53: enable rtc drivers
RTC has been disabled so far in the cortexa53 subtarget so far, enable
it. It's also required for the crypto trng/prng drivers on these SoC
variants (to gather IOSC noise).

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-30 15:39:00 +02:00
Zoltan HERPAI
393047e47a sunxi: drop 6.6 support
Drop configs and patches for Linux 6.6.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-30 15:39:00 +02:00
Zoltan HERPAI
01bc7a4fe7 sunxi: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-30 15:39:00 +02:00
Zoltan HERPAI
faf6ca0348 pistachio: add 6.12 testing kernel
Allow selecting 6.12 as testing kernel on pistachio.

Runtime-tested:
 - Creator Ci40 Marduk 02KZ/5+

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-30 15:32:12 +02:00
Zoltan HERPAI
d6b57d4722 pistachio: 6.12: refresh patches and kernel config
Refresh patches and configs as required.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-30 15:32:12 +02:00
Zoltan HERPAI
e757dfaf4c kernel/pistachio: Restore kernel files for v6.6
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: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-30 15:32:12 +02:00
Zoltan HERPAI
6f4ea1e219 kernel/pistachio: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-30 15:32:12 +02:00
Jonas Jelonek
7d064eef52 generic: power: backport v6.15 patch to fix build with GCC15
Backports an upstream fix ([1]) for a build regression of
'drivers/power/supply' with GCC15 -Wunterminated-string-initialization.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=77f5bb150132bbbcd6bc37ffdc80c9e140e373a4

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18950
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 23:16:05 +02:00
Jonas Jelonek
a5e6deb867 generic: net: add pending wireguard patch to fix build with GCC15
This patch adds __nonstring annotation to address GCC15 with
-Wunterminated-string-initialization.
It is accepted in wireguard-linux in [1] and pending for v6.16
in [2].

[1] https://git.zx2c4.com/wireguard-linux/commit/?h=devel&id=71e5da46e78c1cd24e2feed251a2845327447ad8
[2] https://patch.msgid.link/20250521212707.1767879-3-Jason@zx2c4.com

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18950
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 23:13:49 +02:00
Shiji Yang
d2764bfd7e mediatek: mt7629: add the missing symbol CONFIG_LEDS_SMARTRG_LED
This symbol was lost when porting to the 6.12 kernel.

Fixes: 16b5a77716 ("mediatek: mt7629: update config-6.12")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18947
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 23:05:02 +02:00
Shiji Yang
0f8091334c kernel: reorder kernel symbol configs
Sort kernel configuration files alphabetically. Also resolve the
"CONFIG_ARM_PAN" conflict introduced in commit
057a0a075e ("generic: Fix up the v6.12 config for ARM"). Based on
the original PR comment[1], this symbol should be disabled by default.

[1] https://github.com/openwrt/openwrt/pull/18900#discussion_r2106253528
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18947
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 23:05:02 +02:00
Kyle Hendry
668704f781 sunxi: add support for Beelink X2
Specifications:
- SoC: Allwinner H3 Quad Cortex-A7 1.2GHz
- Flash: 8GB eMMC
- RAM: 1GB DDR3
- Ethernet: 1x100M
- Wifi: RTL8189FTV or AP6181
- 1x USB-A Host
- 1x USB-A Host/Device
- 2x Button
- 2x LED
- HDMI, SPDIF, IR

Install by following standard SD card flashing instructions.
Image can also be flashed to eMMC.

Signed-off-by: Kyle Hendry <kylehendrydev@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18732
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 22:56:04 +02:00
Tony Ambardar
c96db6c013 malta: 6.12: enable kernel for testing
All four subtargets build successfully and run under QEMU.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18712
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 22:46:47 +02:00
Tony Ambardar
4dae54f004 malta: 6.12: update config after kernel refresh
Drop obsolete symbols GCC_ASM_GOTO_OUTPUT_WORKAROUND and HW_CONSOLE, and
PREEMPT_NONE_BUILD which is now set in top-level generic config.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18712
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 22:46:47 +02:00
Tony Ambardar
63cffd48a4 kernel/malta: Restore kernel files for v6.6
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: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18712
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 22:46:47 +02:00
Tony Ambardar
b84523eed6 kernel/malta: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18712
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-29 22:46:47 +02:00
Álvaro Fernández Rojas
4cf1316573 bmips: drop 6.6 support
Drop configs and patches for Linux 6.6.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 21:48:09 +02:00
Álvaro Fernández Rojas
416b2a808b bmips: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 21:48:09 +02:00
Linus Walleij
c8fb72eafa gemini: Add missing PHY packages
These packages were dropped off in reverted packaging, bring
them all back.

Link: https://github.com/openwrt/openwrt/pull/18952
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-05-29 20:10:46 +02:00
Álvaro Fernández Rojas
98341edd58 bmips: enable 6.12 kernel testing
bmips target now supports 6.12 kernel as testing.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 13:47:18 +02:00
Álvaro Fernández Rojas
49451bdf95 bmips: update files for kernel 6.12
- Update subtarget configs for kernel 6.12.
- Refresh patches for kernel 6.12.
- Drop 210-revert-macronix-nand-block-protection.patch since brcmnand no longer
  implements low level ops.
- Adapt bcm63268 gpio switches for 6.12 numbering.
- Add b53 pending patches from Jonas Gorski to fix system hangs.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 13:46:24 +02:00
Álvaro Fernández Rojas
4fff07ae93 bmips: restore kernel files for v6.6
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: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 13:46:24 +02:00
Álvaro Fernández Rojas
7d907dcdc5 bmips: create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 13:46:24 +02:00
Álvaro Fernández Rojas
48135ddd44 generic: 6.12: backport upstream v6.16 b53 patch
e39d14a760c03 net: dsa: b53: implement setting ageing time

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 08:34:44 +02:00
Álvaro Fernández Rojas
228203f4e3 uml: move config and patches to target dir
Commit f025af1280 ("uml: restore 6.6 config+patches") accidentally restored
uml config and patches on the root directory instead of the proper directory.

Fixes: f025af1280 ("uml: restore 6.6 config+patches")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 08:04:15 +02:00
Álvaro Fernández Rojas
cf1721cb7b generic: 6.12: backport b53 upstream patches
The support_eee patch is needed in order to prevent system hangs on bmips
devices.

c4f873c2b65c8 net: dsa: b53: mdio: add support for BCM53101
c86692fc2cb77 net: dsa: b53/bcm_sf2: implement .support_eee() method
f12b363887c70 net: dsa: use ethtool string helpers

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 07:50:09 +02:00
Álvaro Fernández Rojas
0cec046987 generic: 6.12: backport dsa support_eee patches
These patches are needed for b53 implementation of b53_support_eee, which
prevent system hangs on bmips devices.

99379f587278c net: dsa: provide implementation of .support_eee()
9723a77318b7c net: dsa: add hook to determine whether EEE is supported

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-29 07:50:09 +02:00
Zoltan HERPAI
45fbf6228e sunxi: add 6.12 as testing kernel
Runtime-tested on:

- Linksprite pcDuino (cortexa8 / sun5i)
- Olimex A20 Micro (cortexa7 / sun7i)
- BananaPi P2 Zero (cortexa7 / sun8i)
- Pine64 SoM (cortexa53 / sun50i)
- Orangepi Zero 2W (cortexa53 / sun50i)

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-29 01:03:03 +02:00
Zoltan HERPAI
7d840809c6 sunxi: refresh config for 6.12
Refresh config for 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-29 01:03:03 +02:00
Zoltan HERPAI
d97197d7e4 sunxi: remove upstreamed patches from 6.12
Remove upstreamed patches and refresh remaining ones for 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-29 01:03:03 +02:00
Zoltan HERPAI
69c599c775 kernel/sunxi: Restore kernel files for v6.6
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: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-29 01:03:03 +02:00
Zoltan HERPAI
697370ab9b kernel/sunxi: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-29 01:03:03 +02:00
Christian Lamparter
67e41d8a34 uml: disable kmod-8250-serial
The driver tries to access ioports (0x2f9!!) which UML doesn't have.
This causes lots of warnings to appear on boot:

| WARNING: CPU: 0 PID: 1 at lib/logic_iomem.c:188 serial8250_config_port+0x20a/0x1260
| Invalid writeqb of 0xff at address 2f9
| Modules linked in:
| CPU: 0 UID: 0 PID: 1 Comm: swapper Tainted: G        W          6.12.25 #0
| Tainted: [W]=WARN
| Stack:
| Call Trace:
|  [<60001000>] ? set_reset_devices+0x0/0x16
|  [<60452cba>] ? serial8250_config_port+0x20a/0x1260
|  [<6071e91f>] ? dump_stack_lvl+0x55/0x71
|  [<606e127c>] ? _printk+0x0/0x4f
|  [<60044bbb>] ? __warn+0x11b/0x120
|  [<6003b5d0>] ? um_set_signals+0x0/0x40
|  [<606de721>] ? warn_slowpath_fmt+0x81/0x8c
|  [<606de6a0>] ? warn_slowpath_fmt+0x0/0x8c
|  [<60452cba>] ? serial8250_config_port+0x20a/0x1260

(they are even recursive!)

Now, the situation gets more confusing. Because from what I can tell,
this was seemingly done intenionally. Upstream patches in related areas:

|commit ddd268c42871b78c75e12a5c28207fb481138f41
|Author: Niklas Schnelle <schnelle@linux.ibm.com>
|Date:   Wed Apr 3 14:43:00 2024 +0200
|
|    um: Select HAS_IOREMAP for UML_IOMEM_EMULATION
|
|    In a future patch HAS_IOPORT=n will disable inb()/outb() and friends at
|    compile time. UML supports these via its UML_IOMEM_EMULATION so let that
|    select HAS_IOPORT and also reflect this in NO_IOPORT_MAP.

hint that there's ongoing work in this area. But unfortunately, this future
hasn't arrived yet. Once this future arrives, please nuke this patch.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2025-05-28 18:22:41 +02:00
Christian Lamparter
8970559351 uml: add 6.12 testing kernel
refresh config + patches.

This includes the following changes:
 - The selected x86_64 CPU is switched to generic instead of K8.

A backported patch is included from 6.13.

000-v6.13-asm-generic-io.h-rework-split-ioread64-iowrite64-hel.patch
|fixed the following build error:
|  CC      lib/iomap.o
|lib/iomap.c:156:5: error: no previous prototype for 'ioread64_lo_hi' [-Werror=missing-prototypes]
|  156 | u64 ioread64_lo_hi(const void __iomem *addr)
|      |     ^~~~~~~~~~~~~~
| [...]

Note: 102-pseudo-random-mac.patch will likely go away with the next stable.
UML is switching to a new networking infrastructure. The previous implementation
using tuntap, daemon, socket, ethertap, vde are being replaced by "vector"
transports tap, hybrid, raw, EoGRE, Eol2tpv3, fd, vde (vector!).

Please see, to checkout what will change:
<https://docs.kernel.org/virt/uml/user_mode_linux_howto_v2.html#setting-up-uml-networking>

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2025-05-28 18:22:41 +02:00
Christian Lamparter
62adc4bcbb uml: remove left-overs from previous kernel bumps
This should have been fixed by an upstream patch in 5.12
|commit ed102bf2afed226703eaf85a704755bdbea34583
|Author: Randy Dunlap <rdunlap@infradead.org>
|Date:   Thu Apr 15 10:13:52 2021 -0700
|
|    um: Fix W=1 missing-include-dirs warnings
|
|    Currently when using "W=1" with UML builds, there are over 700 warnings
|    cc1: warning: ./arch/um/include/uapi: No such file or directory [-Wmissing-include-dirs]
|
|    but arch/um/ does not have include/uapi/ at all, so add that
|    subdir and put one Kbuild file into it (since git does not track
|    empty subdirs).

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2025-05-28 18:22:41 +02:00
Christian Lamparter
de5e537705 generic: 6.12: add missing symbol
this symbol got picked up by the 6.12 UML conversion.
CONFIG_FBNIC = FaceBook/Meta Platforms Host Network Interface
it should be disabled by default in generic.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2025-05-28 18:22:41 +02:00
Álvaro Fernández Rojas
268c352e44 generic: 6.6: backport devm_clk_get_optional_enabled_with_rate
This is needed for mac80211 v6.14.5 update.

9934a1bd45b2b clk: provide devm_clk_get_optional_enabled_with_rate()

9934a1bd45

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-28 14:02:49 +02:00
Álvaro Fernández Rojas
f40250781d generic: backport secs_to_jiffies
This is needed for mac80211 v6.14.5 update.

b35108a51cf7b jiffies: Define secs_to_jiffies()
bb2784d9ab495 jiffies: Cast to unsigned long in secs_to_jiffies() conversion

b35108a51c
bb2784d9ab

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-28 11:39:28 +02:00
Christian Marangi
11c936e141
mediatek: filogic: provide custom GPT table for Arcadyan Mozart
New revision Arcadyan Mozart apply a new partition table and moved the
factory partition to a new location. This conflicts with the standard
partition layout and also make the nvmem cells to not correctly identify
the MAC address anymore.

Generate and Provide a new GPT partition table that account for the new
calibration partition.
The previous revision of the Arcadyan Mozart device is considered
pre-production devices and should not be intended for real support.

Link: https://github.com/openwrt/openwrt/pull/18874
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-05-28 11:34:28 +02:00
Piotr Dymacz
35c828c168 ipq60xx: add support for ALFA Network AP120C-AX
ALFA Network AP120C-AX is a dual-band ceiling AP, based on Qualcomm
IPQ6000 + QCN5021 + QCN5052 + QCA8072 chipsets bundle.

Specifications:

- SOC:      Qualcomm IPQ6000 (quad-core Cortex-A53 1.2 GHz)
- DRAM:     DDR3 512 MB (Micron MT41K256M16TW-107)
- Flash:    16 MB SPI NOR (Macronix MX25U12832F, boot device)
            128 MB NAND (Macronix MX30UF1G18AC, dual-firmware)
- Ethernet: 2x 10/100/1000 Mbps Ethernet (QCA8072)
            802.3at/af PoE input in WAN port
- Wi-Fi:    2x2 2.4 GHz Wi-Fi 6 (QCN5021 + RFFM8227 FEM)
            2x2   5 GHz Wi-Fi 6 (QCN5152 + QPF4568 FEM)
- Antenna:  for indoor version: dual-band, internal
            2x (or 4x) U.FL antenna connectors on the PCB
- LED:      for indoor/outdoor versions: 5x on external module (status,
            2x Wi-Fi, 2x Ethernet), PoE LED on-board
            8-pin on-board header for LED module (1.27 mm pitch, J14)
- Button:   1x button (reset)
- USB:      1x 4-pin on-board header for USB 2.0 (2.54 mm pitch, J22)
- UART:     1x micro USB Type-B for system console (Holtek HT42B534)
            1x 4-pin on-board header (2.54 mm pitch, J11)
- Power:    802.3at/af PoE or 12 V DC/2 A (DC jack)
- Other:    8-pin and 4-pin on-board headers for external Bluetooth
            module (1.27 mm pitch, J15, J16, unavailable, thus untested)

MAC addresses:

- WAN:               00:c0:ca:xx:xx:6c (art 0x0, device's label -2)
- LAN:               00:c0:ca:xx:xx:6d (art 0x6, device's label -1)
- 2.4 GHz (IPQ6000): 00:c0:ca:xx:xx:6e (art 0xc, device's label)
-   5 GHz (IPQ6000): 00:c0:ca:xx:xx:6f (device's label + 1)

Flash instructions:

Due to the lack of direct GUI based update capability and dual-firmware
partition configuration, it is recommended to use TFTP + serial console
based approach (console is available in micro USB connector):

1. Set a static IP 192.168.1.1/24 on PC and start TFTP server with the
   '...-factory.ubi' image renamed to 'firmware.bin'.
2. Make sure you can access board's serial console over micro USB.
3. Power up the device, hit any key to enter U-Boot CLI and issue below
   commands.

3.1 Restore U-Boot's environment to default values (double check first
    the '0:APPSBLENV' partition offset using 'smem' command):

    sf probe
    sf erase 0x510000 0x10000
    saveenv

3.2 Download and install OpenWrt in both partitions and reset the board:

    tftpb 0x44000000 firmware.bin
    flash rootfs
    flash rootfs_1
    reset

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2025-05-27 23:43:55 +02:00
Linus Walleij
658aaf192b gemini: Switch to kernel v6.12 only
There is no reason to keep v6.6 support. v6.12 is verified
and working.

Link: https://github.com/openwrt/openwrt/pull/18936
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-05-27 21:04:01 +02:00
Linus Walleij
390567b363 gemini: Kernel v6.12
This platform is tightly coupled to upstream and works just
fine with kernel v6.12.

Link: https://github.com/openwrt/openwrt/pull/18936
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-05-27 21:03:34 +02:00
Zoltan HERPAI
0c6f9665f2 sifiveu: drop upstreamed patch from 6.12
The gpio-poweroff support has been upstreamed earlier.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-27 16:03:54 +02:00
Zoltan HERPAI
199925f29a sifiveu: drop 6.6 support
Drop configs and patches for Linux 6.6.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-27 16:03:54 +02:00
Zoltan HERPAI
eda23e04e7 sifiveu: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-27 16:03:54 +02:00
Linus Walleij
057a0a075e generic: Fix up the v6.12 config for ARM
This adds a few ARM-related kconfig options that makes the
configure phase smooth on ARM (32bit) systems.

We default PAN to enabled for protection, however this has
a syscall speed penalty, if your system is interacting a lot
from userspace you might want to disable it for speed vs
security. For in-kernel routing it should not be a major
issue.

Some marginal ARM system enables DRM so make sure we have
the related DRM Kconfigs set up to unselected.

Link: https://github.com/openwrt/openwrt/pull/18900
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-05-27 14:26:30 +02:00
Tianling Shen
6f8c58bfd8
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 63b8d98dd0 ("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:
   apk update && apk add 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.

Tested-by: Yangyu Chen <cyy@cyyself.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2025-05-27 19:56:55 +08:00
Álvaro Fernández Rojas
53c723246a generic: 6.12: backport upstream v6.16 brcmnand patches
This is needed to restore compatibility with legacy brcmnand controllers.

3bfb22cecfe6 mtd: rawnand: brcmnand: legacy exec_op implementation
528b541b71cf mtd: nand: brcmnand: fix NAND timeout when accessing eMMC
56fce7547004 mtd: rawnand: brcmnand: remove unused parameters

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-27 11:29:46 +02:00
Álvaro Fernández Rojas
144ac2e29e bcm27xx: refresh 6.12 patches
Commit 438ed53577 ("generic: 6.12: backport MediaTek Ethernet PHY changes")
backported commits to generic 6.12, but missed refreshing bcm27xx patches.

Fixes: 438ed53577 ("generic: 6.12: backport MediaTek Ethernet PHY changes")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-27 11:22:27 +02:00
Markus Stockhausen
cddf860c53 realtek: align declaration/static/extern function definitions for dsa driver
In 2023 upstream has tightened compiler checks with this patch
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit
/scripts/Makefile.extrawarn?h=v6.15&id=0fcb70851fbfea1776ae62f67c503fef8f0292b9

A consistent function definition is now needed. I.e.

- functions must be either declared with "static" or
- functions need an additional declaration (in the header file)

Before upgrading the Realtek target to 6.12 clean the code so that the main
6.12 PR can focus on real issues from the version bump.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18925
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 10:26:18 +02:00
Markus Stockhausen
f64864fa53 realtek: align declaration/static/extern function definitions for eth driver
In 2023 upstream has tightened compiler checks with this patch
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit
/scripts/Makefile.extrawarn?h=v6.15&id=0fcb70851fbfea1776ae62f67c503fef8f0292b9

A consistent function definition is now needed. I.e.

- functions must be either declared with "static" or
- functions need an additional declaration (in the header file)

Before upgrading the Realtek target to 6.12 clean the code so that the main
6.12 PR can focus on real issues from the version bump.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18925
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 10:26:18 +02:00
Markus Stockhausen
db3037830b realtek: align declaration/static/extern function definitions for phy driver
In 2023 upstream has tightened compiler checks with this patch
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit
/scripts/Makefile.extrawarn?h=v6.15&id=0fcb70851fbfea1776ae62f67c503fef8f0292b9

A consistent function definition is now needed. I.e.

- functions must be either declared with "static" or
- functions need an additional declaration (in the header file)

Before upgrading the Realtek target to 6.12 clean the code so that the main
6.12 PR can focus on real issues from the version bump.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18925
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 10:26:18 +02:00
Markus Stockhausen
31e2567164 realtek: align declaration/static/extern function definitions for clock driver
In 2023 upstream has tightened compiler checks with this patch
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit
/scripts/Makefile.extrawarn?h=v6.15&id=0fcb70851fbfea1776ae62f67c503fef8f0292b9

A consistent function definition is now needed. I.e.

- functions must be either declared with "static" or
- functions need an additional declaration (in the header file)

Before upgrading the Realtek target to 6.12 clean the code so that the main
6.12 PR can focus on real issues from the version bump.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18925
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 10:26:18 +02:00
Markus Stockhausen
7b65949bc4 realtek: align declaration/static/extern function definitions for startup code
In 2023 upstream has tightened compiler checks with this patch
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit
/scripts/Makefile.extrawarn?h=v6.15&id=0fcb70851fbfea1776ae62f67c503fef8f0292b9

A consistent function definition is now needed. I.e.

- functions must be either declared with "static" or
- functions need an additional declaration (in the header file)

Before upgrading the Realtek target to 6.12 clean the code so that the main
6.12 PR can focus on real issues from the version bump.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18925
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-27 10:26:18 +02:00
Zoltan HERPAI
b69e6c35c5 d1: improve Nezha D1 support
The Nezha board has a PCF8574 that acts as an I/O expander on the
i2c2 bus. Enable the required module for it.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-26 19:26:51 +02:00
Zoltan HERPAI
de2d34cf7a d1: enable crypto offload engine
Enable the sun8i_ce engine that's included on the D1 SoC, along
with the respective hash/prng/trng options. The sun8i_ce driver
also requires PM and PPU to be enabled.

[    1.368345] sun8i-ce 3040000.crypto: Set mod clock to 300000000 (300 Mhz) from 400000000 (400 Mhz)
[    1.378592] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
[    1.386894] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
[    1.395114] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
[    1.403197] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
[    1.411110] sun8i-ce 3040000.crypto: Register cbc(aes)
[    1.416235] sun8i-ce 3040000.crypto: Register ecb(aes)
[    1.421347] sun8i-ce 3040000.crypto: Register cbc(des3_ede)
[    1.426898] sun8i-ce 3040000.cryxto: Register ecb(des3_ede)
[    1.432366] sun8i-ce 3040000.crypto: Register md5
[    1.437112] sun8i-ce 3040000.crypto: Register sha1
[    1.441816] sun8i-ce 3040000.crypto: Register sha224
[    1.446821] sun8i-ce 3040000.crypto: Register sha256
[    1.451697] sun8i-ce 3040000.crypto: Register sha384
[    1.456733] sun8i-ce 3040000.crypto: Register sha512
[    1.461673] sun8i-ce 3040000.crypto: Register stdrng
[    1.467096] sun8i-ce 3040000.crypto: CryptoEngine Die ID 0

root@OpenWrt:~# cat /proc/crypto |grep sun8i
driver       : sun8i-ce-prng
driver       : sha512-sun8i-ce
driver       : sha384-sun8i-ce
driver       : sha256-sun8i-ce
driver       : sha224-sun8i-ce
driver       : sha1-sun8i-ce
driver       : md5-sun8i-ce
driver       : ecb-des3-sun8i-ce
driver       : cbc-des3-sun8i-ce
driver       : ecb-aes-sun8i-ce
driver       : cbc-aes-sun8i-ce

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-26 19:26:51 +02:00
Robert Marko
200a31b6f5 ramips: mt7621: sercomm_na502s: use upstream XR USB serial driver
Instead of including the out-of-tree XR USB serial driver, use the
newly packaged in-tree driver for it.

Link: https://github.com/openwrt/openwrt/pull/18926
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-26 18:59:26 +02:00
Daniel Golle
fa236de37d mediatek: enable testing kernel 6.12
Set KERNEL_TESTING_PATCHVER to allow testing Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
16b5a77716 mediatek: mt7629: update config-6.12
Refresh kernel configuration of the mt7629 subtarget for use
with Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
0a0f5f94ec mediatek: mt7623: update config-6.12
Refresh kernel configuration of the mt7623 subtarget for use
with Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
029b7ed9c4 mediatek: mt7622: update config-6.12
Refresh kernel configuration of the mt7622 subtarget for use
with Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
3e95a2f6e1 mediatek: filogic: update config-6.12
Refresh kernel configuration of the filogic subtarget for use
with Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
166d9d5ea2 kernel/mediatek: 6.12: fix and refresh patches
Fix patches and refresh for Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
25bb907937 kernel/mediatek: 6.12: adapt for changed MMC card binding
Adapt patches adding NVMEM or fitblk rootdisk references to MMC
partitions for the changed MMC card binding.

Note that boards in 'dts' folder can only be converted once Linux 6.6,
which still depends on the old binding, has been dropped.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
b09c0d2680 kernel/mediatek: 6.12: allow setting OF node for MSDOS partitions
Add patch to allow referencing MSDOS/MBR partitions in device tree to
allow legacy MT7623 boards to continue working with fitblk.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
25ee5081fa kernel/mediatek: 6.12: adapt SPI calibration
Fix build of downstream SPI calibration on Filogic SoCs for Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
f9206d1111 kernel/mediatek: 6.12: replace downstream files by patches
Replace downstream files by patches, either backports of those
which have already applied or pending patches tracked on patchwork.
This is done to make future maintainance more easy.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
a9822e8bd6 kernel/mediatek: 6.12: drop patches which have been applied upstream
Drop patches which have been applied upstream in the meantime.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
72994b5e5a kernel/mediatek: 6.12: drop patches which are now part of generic
Drop patches which have been moved into target/linux/generic by commit
f4144d61d2 ("generic: 6.12: backport MediaTek Ethernet PHY changes").

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
ca3a3a7cc4 kernel/mediatek: Restore kernel files for v6.6
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: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
16c1e1b9ba kernel/mediatek: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
465249f2b3 mediatek: filogic: adapt BananaPi-R4 for use with upstream DT
* the variant with 2.5G PHY instead of LAN SFP is called '2p5'
   upstream and 'poe' in our downstream Linux 6.6 DT. Use the right
   DTS depending on the kernel version and set an additional
   compatible.

 * drop additional DT overlay for WiFi.
   The final version of the board uses a physical switch for the 12V
   power of the WiFi module and the I2C EEPROM of the module always
   comes empty (instead of with a MAC address).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:04 +01:00
Daniel Golle
b992aa119c mediatek: dts: bring mt7988a.dtsi closer to upstream
In preparation of using the upstream mt7988a.dtsi when switching
to Linux 6.12 prepare by bringing our downstream version closer to
what went upstream.
 * rename 'xphy' -> 'xsphy'
 * rename 'uart[012]' -> 'serial[012]'
 * only list pinctrl settings directly used in mt7988a.dtsi there,
   leave it to boards to define all additional pinctrl settings
   they need.
 * move fan and thermal-zone to board level

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Daniel Golle
a387c62114 mediatek: dts: rename mt7981.dtsi to mt7981b.dtsi
Upstream uses a different filename, so lets rename our downstream
mt7981.dtsi to mt7981b.dtsi and update the device tree of all
MT7981 boards accordingly.
This is to prepare for the switch to Linux 6.12 which is going to
use the upstream mt7981b.dtsi (plus some patches on top).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Daniel Golle
78db7780d0 mediatek: mt7622: prepare legacy rtl8367c driver for Linux 6.12
Do the minimum necessary to get the legacy rtl8367c driver to build
with Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Daniel Golle
438ed53577 generic: 6.12: backport MediaTek Ethernet PHY changes
The MediaTek Ethernet PHY drivers are going to be used by multiple
targets (airoha, mediatek, ramips). Add generic backports of changes
required for recently added Ethernet PHYs.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Daniel Golle
34b176b565 generic: 6.12: mtk_eth_soc: adapt downstream SerDes patch
While it will hopefully be replaced soon by an upstream solution for
now we keep the downstream SerDes PCS implementation for MT7988A.
In order to make it work with upstream mt7988a.dtsi we have to
compensate for the changed start address of topmisc which was
moved from 0x11d10000 to 0x11d10084 to accomodate a future power
domain controller located at 0x11d10000~0x11d10080.
Hence we need to change TOP_MISC_NETSYS_PCS_MUX from 0x84 to 0x0, so
the Ethernet path/mux selection can work with upstream mt7988a.dtsi.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Daniel Golle
d092e7af40 generic: 6.12: fix patch adding EEE-support to mtk_eth_soc
Upstream now uses struct ethtool_keee instead of struct ethtool_eee
as parameter to EEE-related functions. Follow that change and modify
the patch accordingly.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Daniel Golle
bc0b14c8ea generic: net: phy: rtl8261n: fix build with Linux 6.12
Mark functions which aren't exported as static to fix build with
Linux 6.12.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Daniel Golle
47cfb09e45 generic: 6.12: add hack patch for transition to new partition bindings
Commit fa0f130764 ("generic: 6.12: update block NVMEM driver") switched
to the upstream DT bindings for block partitions.

Bring back the old/legacy downstream way to assign the OF node to a
block device or partition in order to allow sharing a single DTS for
both, Linux 6.6 (which exclusively uses the old/legacy binding) and
Linux 6.12 (which will now support both, new/upstream binding and the
old/legacy binding).

Once we drop Linux 6.6 and all boards have been converted to the new
binding we can drop this patch.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Daniel Golle
9b3ad5b151 generic: 6.12: add missing Kconfig symbol
Augmented symbol CONFIG_SND_SOC_MT8365 was missing, add it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2025-05-26 16:58:03 +01:00
Markus Stockhausen
32f408c955 realtek: refactor RTL838x mdio serdes read/write functions
There are still a lot of mdio functions scattered around the code.
Move the RTL838x serdes helpers closer to the bus, add the proper
prefix and simplify the functions.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18847
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-26 10:39:44 +02:00
Markus Stockhausen
1bef83bb23 realtek: simplify RTL8214FC patches for ethtool copper/fiber switching
There is a patch/bug cascade in the realtek target phy code that must be resolved.

1. The phy_driver structure is patched to add features ONLY needed for RTL8214FC

2. The kernel is patched to allow switching fiber/copper port of phys through ethtool
   by calling these new features.

3. With those patches applied the bootup always switches RTL8214FC ports to copper.
   Even if a SFP module was found before and the phy driver switched to fibre before.

3. So another patch is needed that reprobes the SFP module to activate fiber again.

4. Because of the reprobing we need a fourth patch that avoid duplicate devices.

Simplify this by removing all patches and reusing the existing ethtool phy tunable
interface. The command line usage might be counterintuitive but it avoids tons of
problems in the code. In addition, this scenario is not used frequently.

Before:ethtool -s lan25 port fibre/tp
After: ethtool --set-phy-tunable lan25 downshift on/off

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18816
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-26 10:37:54 +02:00
Mathew McBride
bff179de73 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.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Fixes: c099523d66 ("armsr: use console=tty1 to make
console more readily available")
Link: https://github.com/openwrt/openwrt/pull/17012
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-26 10:31:23 +02:00
Mathew McBride
3697022ce3 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.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Fixes: c099523d66 ("use console=tty1 to make console more
readily available")
Link: https://github.com/openwrt/openwrt/pull/17012
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-26 10:31:23 +02:00
Shiji Yang
1df56d02cf ath79: refresh 6.12 kernel patches
Refresh patches to fix the GitHub CI warning.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18912
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-05-25 20:39:13 +02:00
Nikolay March
726bb8e0e2 mediatek: filogic: add support for SNR-CPE-AX2
SOC: MediaTek MT7981b
RAM: 256MB DDR3
FLASH: 128MB SPI-NAND (Winbond W25N01GV)
WIFI: Mediatek MT7981b DBDC 802.11ax 2.4/5 GHz
ETH: MediaTek MT7531 Switch
UART: 3V3 115200 8N1 (Pinout silkscreened / Do not connect VCC)

Interface	MAC	Algorithm
LAN	8C:AE:DB:2C:xx:xx	label
WAN	8C:AE:DB:2C:xx:xx	label +1
WLAN 2.4G	8C:AE:DB:2C:xx:xx	label +2
WLAN 5G	8C:AE:DB:2C:xx:xx	label +3
Installation
-------------------Install openwrt image-------------------------------:

Set a static ip on the ethernet interface of your PC. (ip address:
192.168.1.254, subnet mask:255.255.255.0) .

Download the OpenWrt uboot image
(openwrt-mediatek-filogic-snr_cpe-ax2-bl31-uboot.fip).

SSH/SCP opened by default on the stock firmware (3.0.1).
Username: Admin, default password: Admin. Check it on the bottom of
the router.

Copy uboot image using SCP (WinSCP) to /tmp dir on SNR-CPE-AX2.

Download recovery file.
openwrt-mediatek-filogic-snr_snr-cpe-ax2-initramfs-recovery.itb.

Copy the recovery image to a TFTP server reachable at 192.168.1.254/24.

Open ssh shell to the SNR-CPE-AX2.
Run commands:
mtd write \
/tmp/openwrt-mediatek-filogic-snr_snr-cpe-ax2-bl31-uboot.fip FIP
reboot

Wait until recovery boot.
Open web 192.168.1.1 and do sysupgrade by
openwrt-mediatek-filogic-snr_cpe-ax2-squashfs-sysupgrade.itb

Signed-off-by: Nikolay March <palladin82@yandex.ru>
Link: https://github.com/openwrt/openwrt/pull/18700
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-25 19:04:12 +02:00
John Audia
3306a163cf x86: legacy: config: alphabetize config-6.12
Sort the config in alphabetical order

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18897
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-25 18:09:01 +02:00
John Audia
83ff9600dc stm32: add missing config option
6.6.92 requires the addition of CONFIG_ARM_SCMI_DEBUG_COUNTERS

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18835
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-25 17:57:19 +02:00
John Audia
763339207b rockchip: armv8: add missing config option
6.6.92 requires the addition of CONFIG_ARM_SCMI_DEBUG_COUNTERS

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18835
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-25 17:57:19 +02:00
John Audia
2a7cfbbbef kernel: bump 6.6 to 6.6.92
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.92

No patches needed a rebase with this release/only archive hash updated.

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18835
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-25 17:57:19 +02:00
John Audia
ecac1d8abd kernel: bump 6.6 to 6.6.91
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.91

Removed upstreamed:
	generic/pending-6.6/730-net-ethernet-mtk_eth_soc-reset-all-TX-queues-on-DMA-.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.91&id=68f29bb97a0e0519156664cdc23e8b1f129e3254

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18835
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-25 17:57:18 +02:00
Rosen Penev
3d6e1a3c9d mac80211: ath9k: replace qca,led-sources
Upstream seems to be using led-sources instead of custom properties.

Code mostly taken from mt76.

Changed all(few) users of qca,led_pin to use the new format.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18805
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 21:33:37 +02:00
Markus Stockhausen
cd808d9997 realtek: relocate mips cpc probing
The MIPS CPC (Cluster Power Controller) is setup during boot and can take
its configuration from the devicetree. This is currently not possible
because the cpc probing happens before dt initialization. Call order
during startup is:

setup_arch()
  prom_init() <- our function
    mips_cpc_probe()
    smp_stuff()
  arch_mem_init()
    device_tree_init() <- our function
      unflatten_and_copy_device_tree()

To avoid ugly hacking and support a clean devicetree relocate the cps/smp
stuff to device_tree_init(). This is basically the same location as in
generic mips initialization.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
Link: https://github.com/openwrt/openwrt/pull/18888
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 21:20:58 +02:00
Markus Stockhausen
897abbfc4a realtek: take over boot command line patch into driver
Make it easier to upgrade the kernel in the future. For this remove
the 320-harden-fw_init_cmdline.patch and add the logic into the
startup sequence at the right place.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18853
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 21:09:52 +02:00
Zoltan HERPAI
086426a64e mxs: drop 6.6 support
Drop configs for Linux 6.6.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-24 16:15:53 +02:00
Zoltan HERPAI
3ad65da7d6 mxs: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-24 16:15:53 +02:00
Shiji Yang
df465b6513 ath79: enable 6.12 testing kernel
The 6.12 testing kernel for ath79 target is ready now.

Tested on AR9344 (ath79/nand) and QCA9531 (ath79/generic).

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-24 15:42:23 +02:00
Shiji Yang
2c7c0773b2 ath79: irqchip/ath79-misc: fix missing prototypes warnings
The newly introduced patch fixes the compilation warning for
kernel module irq-ath79-misc.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-24 15:42:23 +02:00
Shiji Yang
54b23f2163 ath79: refresh 6.12 kernel config files
All kernel symbols are automatically refreshed by
`make kernel_oldconfig CONFIG_TARGET=target` and
`make kernel_oldconfig CONFIG_TARGET=subtarget`.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-24 15:42:23 +02:00
Shiji Yang
fe42a75b03 ath79: refresh 6.12 kernel patches
Remove upstreamed:
001-v6.11-gpio-ath79-convert-to-dynamic-GPIO-base-allocation.patch [1]

Manually rebased:
341-wifi-ath9k-obtain-system-gpios.patch
900-unaligned_access_hacks.patch

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=9a473c2a093e0d1c466bf86073230e2c8b658977
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-24 15:42:23 +02:00
Shiji Yang
c0c8c7cbe8 ath79: restore kernel 6.6 config files and patches
Copy patches and kernel configs from 6.12 kernel to restore the
default 6.6 kernel support files.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-24 15:42:23 +02:00
Shiji Yang
9b6ea812ec ath79: rename patchset and kernel configs to 6.12
This is a preparation for 6.12 kernel support. It can help us
track the files history by using the Git tool.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-24 15:42:23 +02:00
Shiji Yang
87d2593177 ath79: refresh kernel symbol configs
Manually move the common NVMEM Kconfig symbols to the shared
config file and disable them for the mikrotik subtarget. Other
changes are automatically completed by `make kernel_oldconfig`.
This is a preparation for introducing the 6.12 kernel support.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-24 15:42:22 +02:00
Zoltan HERPAI
515130e8f7 d1: drop 6.6 support
Drop configs and patches for Linux 6.6.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-24 14:03:02 +02:00
Zoltan HERPAI
f5b3e71cc5 d1: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-24 14:03:02 +02:00
Markus Stockhausen
b648fda020 realtek: prepare RTL931x for full SMP support
RTL931x devices are dual core with two threads each. That is a total
of 4 VPEs (CPUs) in the kernel. Adapt the kernel config for that.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
Link: https://github.com/openwrt/openwrt/pull/18889
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 11:54:43 +02:00
George Moussalem
b5f0cba751 qualcommax: ipq50xx: backport upstreamed patches for IPQ5018 tsens support
Use upstreamed v6.16 patches for IPQ5018 tsens support.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18884
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 11:27:05 +02:00
George Moussalem
37d434238b qualcommax: ipq50xx: backport upstreamed patches for IPQ5018 TCSR support
Use upstreamed v6.16 patch for IPQ5018 TCSR support and setting the
download mode.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18884
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 11:27:05 +02:00
George Moussalem
08ff2807cf qualcommax: ipq50xx: backport upstreamed patches for IPQ5018 PCIe support
Use upstreamed patches for IPQ5018 PCIe support, including patches for
phy and controller drivers and dts nodes.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18884
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-24 11:27:05 +02:00
Robert Marko
8dbbca029d qualcommax: 6.6: remove completely
Remove all 6.6 only patches, config etc.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-23 14:15:56 +02:00
Robert Marko
4803d9a057 qualcommax: import pending fix for multiple conf
Importing upstream multiple conf patches broke UNIPHY2 TX clock parenting
and thus no traffic could pass via it.

Import pending fix by Christian that fixes this[1].

[1] https://patchwork.kernel.org/project/linux-arm-msm/patch/20250522202600.4028-1-ansuelsmth@gmail.com/

Fixes: cc50cac8a0 ("qualcommax: use upstreamed multiple conf clock patches")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-23 14:13:33 +02:00
Markus Stockhausen
a526f80af8 realtek: fix MAC_FORCE_MODE_CTRL register for RTL931x
Ports will not work as expected on the RTL931x devices. This comes
from a typo in the address. Fixed according to the documentation:
https://svanheule.net/realtek/mango/register/mac_force_mode_ctrl

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
Link: https://github.com/openwrt/openwrt/pull/18864
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-23 13:14:28 +02:00
Zoltan HERPAI
60b5cfdf5a sifiveu: add 6.12 kernel as testing
Allow selecting 6.12 as testing kernel on sifiveu.

Runtime-tested:
 - HiFive Unleashed (FU540)
 - HiFive Unmatched (FU740)

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-23 12:28:50 +02:00
Zoltan HERPAI
00ca340c40 sifiveu: 6.12: drop upstreamed patches and refresh remaining ones
Drop upstreamed patches from 6.12 and refresh remaining ones.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-23 12:28:50 +02:00
Zoltan HERPAI
07e701357d sifiveu: refresh 6.12 kernel config
Refresh kernel config for 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-23 12:28:42 +02:00
Zoltan HERPAI
41860ade91 kernel/sifiveu: Restore kernel files for v6.6
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: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-23 12:28:19 +02:00
Zoltan HERPAI
875f3c9275 kernel/sifiveu: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-23 12:28:19 +02:00
Álvaro Fernández Rojas
9b6cb81b24 bcm27xx: drop README patches
This patches are useless for us and can be removed.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-23 10:36:21 +02:00
Mieczyslaw Nalewaj
499a59c234 kernel: bump 6.12 to 6.12.30
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.30

All patches automatically rebased.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18877
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-23 00:01:41 +02:00
Markus Stockhausen
461fc06f9d realtek: fix mdio parent/child locking issues
Since the early beginning of the Realtek DSA driver there is an uncovered
locking issue between the standard (parent) mdio bus and the DSA (child)
mdio bus. This comes from the fact that the DSA bus simply links to the
parent read and write functions and calls them directly. This leads to
the following lock issue.

- Child bus calls phy_read/write functions and uses its internal lock
- Parent bus calls phy_read/write functions and uses its internal lock

It becomes clear that critical section can be accessed twice without
knowing that a operation from the other bus is currently active. This
can lead to critical malfunctions because the mdio driver needs a lot of
internal magic to get page selection done right. Effects are:

- The original page is lost after a phy_write/read_paged() call
- dmesg like "Realtek RTL8218B (external) rtl838x slave mii-0:00:
  Expected external RTL8218B, found PHY-ID 6b23"

Other DSA drivers simply use the read/write functions from the parent bus
and thus avoid locking issues. Do it the same way.

Fixes: 2b88563ee5 ("realtek: update the tree to the latest refactored version")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18824
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-22 18:58:58 +02:00
Shiji Yang
e247b7ab66 ramips: fix wrg-header image recipe
Before generating the factory image, check if the input file
exists. Fix the build error when sysupgrade image is too big:

[mkwrgimg] *** error: stat failed on /builder/shared-workdir/build/build_dir/target-mipsel_24kc_musl/linux-ramips_rt288x/tmp/openwrt-ramips-rt288x-airlink101_ar670w-squashfs-factory.bin, No such file or directory

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18836
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-22 18:49:31 +02:00
Zoltan HERPAI
b3c76f1821 d1: add 6.12 kernel as testing
Allow selecting 6.12 as testing kernel on d1.

Runtime-tested:
 - Nezha D1

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 17:22:59 +02:00
Zoltan HERPAI
e9b5737dd3 d1: 6.12: refresh kernel config
Refresh kernel config.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 17:22:59 +02:00
Zoltan HERPAI
f8f9a45ccd d1: 6.12: remove upstreamed patches and refresh remaining ones
Remove patches that have been upstreamed or dropped, and refresh
the remaining ones as required.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 17:22:59 +02:00
Zoltan HERPAI
a68467f307 kernel/d1: Restore kernel files for v6.6
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: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 17:22:59 +02:00
Zoltan HERPAI
7c9b09d854 kernel/d1: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 17:22:59 +02:00
Álvaro Fernández Rojas
d8375034b8 generic: backport upstream v6.16 Realtek PHY patches
83d962316128 net: phy: realtek: add RTL8127-internal PHY
708686132ba0 net: phy: realtek: Add support for PHY LEDs on RTL8211E
be1cc96ddf82 net: phy: realtek: use __set_bit() in rtl8211f_led_hw_control_get()
8c4d0172657c net: phy: realtek: Group RTL82* macro definitions
12d40df259e3 net: phy: realtek: add RTL8211F register defines
7c6fa3ffd265 net: phy: realtek: Clean up RTL821x ExtPage access
f3b265358b91 net: phy: realtek: remove unsed RTL821x_PHYSR* macros
7840e4d6f48a net: phy: realtek: Add support for WOL magic packet on RTL8211F

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-22 14:18:20 +02:00
Álvaro Fernández Rojas
91ce7f606a generic: backport upstream v6.16 r8169 patches
f24f7b2f3af9 r8169: add support for RTL8127A
4f51e7d370a0 r8169: merge chip versions 52 and 53 (RTL8117)
f372ef6ed5a6 r8169: merge chip versions 64 and 65 (RTL8125D)
4dec0702b862 r8169: merge chip versions 70 and 71 (RTL8126A)
b7ed5d5a78fc r8169: use pci_prepare_to_sleep in rtl_shutdown
fe733618b27a r8169: add RTL_GIGA_MAC_VER_LAST to facilitate adding support for new chip versions
2b065c098c37 r8169: refactor chip version detection
0c49baf099ba r8169: add helper rtl8125_phy_param
8c40d99e5f43 r8169: add helper rtl_csi_mod for accessing extended config space

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-22 14:18:20 +02:00
Rosen Penev
15078ecb68 ath79: remove platform_device_id from drivers
This was needed while ar71xx was in tree. This is no longer the case.
Not only that, these have already been converted to OF.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18860
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-22 11:17:21 +02:00
Zoltan HERPAI
769e9efd67 mxs: add 6.12 kernel as testing
Allow selecting 6.12 as testing kernel on mxs.

Runtime-tested:
 - Olinuxino Micro

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 11:03:05 +02:00
Zoltan HERPAI
0aa9c795b5 mxs: refresh config for 6.12
Refresh kernel config for 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 11:03:05 +02:00
Zoltan HERPAI
cf19095322 kernel/mxs: Restore kernel files for v6.6
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: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 11:03:05 +02:00
Zoltan HERPAI
8d9435f7cc kernel/mxs: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 11:03:05 +02:00
Zoltan HERPAI
aaf89c2c2b generic: 6.12: add missing symbols
These were found while working on mxs and sunxi 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-22 11:03:04 +02:00
Markus Stockhausen
d8ca43ccf1 realtek: harmonize power functions for RTL8214FC
There are currently two power functions for the RTL8214FC in the driver

- rtl8380_rtl8214fc_on_off(): powers on/off both ports
- rtl8214fc_power_set(): powers on/off fibre or copper individually

While it seems obvious to merge these, one of them uses extended register
29 and the other register 30 to achieve the update. From looking at the
GPL source drops both methods exist with exactly the same operations. So
where to go from here? The descision was made based on:

- register 30 is only used during patching, 29 during normal operation
- Avoid raw page if possible to use function for RTL839x

So the attached patch was created. The result in the power down bits
was compared for the two old and the new implementation. Result is
always the same.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18707
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-22 10:34:18 +02:00
Markus Stockhausen
cc360fa54d realtek: Identify RTL9311 properly
RTL9311 switches (like the Linksys LGS352C) will boot but have not set
the right family id in the soc_info structure. Fix that so drivers do
their work right when checking for that.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18871
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-21 17:39:49 +02:00
Álvaro Fernández Rojas
edf9ed96a4 bcm27xx: refresh patches for v6.12.29
Commit 0912d3f595 ("kernel: bump 6.12 to 6.12.29") was merged right after
bcm27xx 6.12 support commits, causing conflicts.

Refresh patches and removed upstreamed patch in v6.12.29:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=a5f162727b91e480656da1876247a91f651f76de

Fixes: 0912d3f595 ("kernel: bump 6.12 to 6.12.29")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 17:20:07 +02:00
Álvaro Fernández Rojas
c1b36bd32a bcm27xx: drop 6.6 support
Drop configs, files and patches for Linux 6.6.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 14:10:49 +02:00
Álvaro Fernández Rojas
e3dc5a52ff bcm27xx: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 14:07:39 +02:00
Álvaro Fernández Rojas
cd79b6ede9 bcm27xx: switch to upstream SDHOST driver
The RPi upstream repo switched to the upstream SDHOST driver some time ago, so
it's time to do the same in our configs.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 13:59:16 +02:00
Markus Stockhausen
8dde1e4638 realtek: refactor net rx interrupt handler rtl83xx_net_irq()
Cleanup the code of the RTL83xx packet receive interrupt handler. Not
only for better readability but to avoid inconsistencies and stalls on
the RTL839x targets.

The current implementation seems to come from the GPL source code.
Calling the existing cleanup() function inside the interrupt context
without any locks conflicts with SMP & NAPI polling and makes things
worse instead of giving any benefit. Simply ignore RX buffer overruns
and let the device handle packet dropping itself.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18855
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-21 13:54:06 +02:00
Mieczyslaw Nalewaj
0912d3f595 kernel: bump 6.12 to 6.12.29
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.29

Removed upstreamed:
        generic/pending-6.12/730-net-ethernet-mtk_eth_soc-reset-all-TX-queues-on-DMA-.patch[1]

Added settings:
        x86: CONFIG_MITIGATION_ITS=y[2]

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=aac9d5fa537b0c19f6d3af3c8a124028510bb647
2. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=68d59e9ba38424389168eddf8791265818f67292

All other patches automatically rebased.

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

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18837
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-21 13:52:35 +02:00
Álvaro Fernández Rojas
fe59fa7518 bcm27xx: enable 6.12 kernel testing
bcm27xx target now supports 6.12 kernel as testing.

Tested-by: Zoltan HERPAI <wigyori@uid0.hu>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 11:32:41 +02:00
Álvaro Fernández Rojas
3d6e57fa4e bcm27xx: update config for kernel 6.12
Update bcm27xx target config for kernel 6.12.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 11:32:41 +02:00
Álvaro Fernández Rojas
8f9e91ad03 bcm27xx: add 6.12 patches from RPi repo
These patches were generated from:
https://github.com/raspberrypi/linux/commits/rpi-6.12.y
With the following command:
git format-patch -N v6.12.27..HEAD
(HEAD -> 8d3206ee456a5ecdf9ddbfd8e5e231e4f0cd716e)

Exceptions:
- (def)configs patches
- github workflows patches
- applied & reverted patches
- readme patches
- wireless patches

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 11:32:18 +02:00
Álvaro Fernández Rojas
9d73abb111 bcm27xx: restore kernel config for v6.6
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: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 10:39:47 +02:00
Álvaro Fernández Rojas
ccf0735933 bcm27xx: create kernel config for v6.12 (from v6.6)
This is an automatically generated commit.

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

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-21 10:39:47 +02:00
Robert Marko
dfacae3049
mvebu: armada37xx: add pending PXA I2C recovery fix
Import pending PXA I2C recovery fixes so that if I2C recovery is enabled in
the DTS it does not completely break I2C as it currently does since kernel
6.6.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-05-20 20:54:48 +02:00
Robert Marko
831994e258
mvebu: armada37xx: backport pinctrl fixes
Backport upstream pinctrl fixes, these are required for the follow-up I2C
PXA recovery fixes.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-05-20 20:54:47 +02:00
INAGAKI Hiroshi
d95e8a59bb ramips: mt7621: fix broken hexdump expression in iodata.sh
Use the "1/1" as a iteration count of hexdump expression instead of the
broken "1", to fix the issue that the invalid bootnum will be obtained.

Currently, the hexdump command always outputs "0" when the decimal format
and the iteration count "1" are specified[0]. This is unexpected
behaviour, but the cause is unknown and use this fix as a workaround.

[0]: https://github.com/openwrt/openwrt/issues/18808

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18827
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-20 13:04:06 +02:00
Mieczyslaw Nalewaj
6a85ce75af x86: drop 6.6 support
Drop configs, files and patches for Linux 6.6.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18848
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-20 11:52:08 +02:00
Mieczyslaw Nalewaj
c1d7d0e5a4 x86: use kernel 6.12 by default
Switch to Linux kernel version 6.12.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18848
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-20 11:52:07 +02:00
Robert Marko
ba923ee5ae qualcommax: default to 6.12
Default qualcommax target to 6.12 kernel.

It makes no sense for us to double the effort required for backporting
upstreamed patches or for downstream modifications.

Link: https://github.com/openwrt/openwrt/pull/18840
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-20 11:40:43 +02:00
Mieczyslaw Nalewaj
a238170e57 treewide: strip trailing whitespace
Strip trailing whitespace in all code:
find . -type f | grep "\.c$" | xargs sed -i 's/[ \t]\+$//'
find . -type f | grep "\.h$" | xargs sed -i 's/[ \t]\+$//'
find . -type f | grep "\.dts$" | xargs sed -i 's/[ \t]\+$//'
find . -type f | grep "\.dtsi$" | xargs sed -i 's/[ \t]\+$//'

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18626
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-20 00:47:37 +02:00
Shiji Yang
6b43a52171 mediatek: mt7622: add the missing phy interrupt-parent for WAX206
Based on other mt7622 dts, it is not difficult to infer that the
missing interrupt controller is "pio". Fix dtc warning:

mt7622.dtsi:282.3-26: Warning (interrupts_property): /ethernet@1b100000/mdio-bus/ethernet-phy@7:#interrupt-cells: size is (8), expected multiple of 12

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
6854b19202 mediatek: mt7622: various dtc warning fixes for D-Link EAGLE PRO AI
- Add missing #address-cells and #size-cells to the partition nodes.
- Add missing #address-cells and #size-cells to the switch ports nodes.

This patch fixes the following dtc warnings:

../dts/mt7622-dlink-eagle-pro-ai-r32-a1.dts:74.3-20: Warning (reg_format): /spi@1100d000/flash@0/partitions/partition@180000/nvmem-layout/macaddr@81:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-ax3200-a1.dtsi:289.6-36: Warning (reg_format): /spi@1100d000/flash@0/partitions/partition@2C0000/partition@0:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-ax3200-a1.dtsi:294.6-36: Warning (reg_format): /spi@1100d000/flash@0/partitions/partition@2C0000/partition@800000:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-ax3200-a1.dtsi:306.6-36: Warning (reg_format): /spi@1100d000/flash@0/partitions/partition@2FC0000/partition@0:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-ax3200-a1.dtsi:311.6-36: Warning (reg_format): /spi@1100d000/flash@0/partitions/partition@2FC0000/partition@800000:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-ax3200-a1.dtsi:90.6-16: Warning (reg_format): /ethernet@1b100000/mdio-bus/switch@1f/ports/port@4:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-ax3200-a1.dtsi:97.6-16: Warning (reg_format): /ethernet@1b100000/mdio-bus/switch@1f/ports/port@6:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-r32-a1.dts:50.4-14: Warning (reg_format): /ethernet@1b100000/mdio-bus/switch@1f/ports/port@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-r32-a1.dts:55.4-14: Warning (reg_format): /ethernet@1b100000/mdio-bus/switch@1f/ports/port@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-m32-a1.dts:45.4-14: Warning (reg_format): /ethernet@1b100000/mdio-bus/switch@1f/ports/port@2:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-m32-a1.dts:50.4-14: Warning (reg_format): /ethernet@1b100000/mdio-bus/switch@1f/ports/port@3:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-r32-a1.dts:60.4-14: Warning (reg_format): /ethernet@1b100000/mdio-bus/switch@1f/ports/port@2:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7622-dlink-eagle-pro-ai-r32-a1.dts:65.4-14: Warning (reg_format): /ethernet@1b100000/mdio-bus/switch@1f/ports/port@3:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
5bead4a0b2 mediatek: mt7622: fix mmc dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

mt7622-bananapi-bpi-r64.dts:243.3-13: Warning (reg_format): /mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7622-bananapi-bpi-r64.dts:278.3-13: Warning (reg_format): /mmc@11240000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
7cc089950d mediatek: mt7623: fix mmc dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

mt7623n-bananapi-bpi-r2.dts:346.3-13: Warning (reg_format): /mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7623n-bananapi-bpi-r2.dts:373.3-13: Warning (reg_format): /mmc@11240000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7623a-unielec-u7623-02.dts:23.3-13: Warning (reg_format): /mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
d1482e5e2d mediatek: filogic: fix mxl phy node dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

mt7981-rfb-mxl-2p5g-phy-eth1.dtso:26.5-15: Warning (reg_format): /fragment@1/__overlay__/ethernet-phy@5:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7981-rfb-mxl-2p5g-phy-swp5.dtso:27.5-15: Warning (reg_format): /fragment@1/__overlay__/ethernet-phy@5:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
96adba2768 mediatek: filogic: fix SPI node reg size dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

../dts/mt7981b-cmcc-rax3000m-nand.dtso:67.5-15: Warning (reg_format): /fragment@4/__overlay__/spi_nand@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-rfb-snfi-nand.dtso:20.5-15: Warning (reg_format): /fragment@0/__overlay__/flash@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-rfb-spim-nand.dtso:22.5-15: Warning (reg_format): /fragment@0/__overlay__/flash@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-rfb-spim-nor.dtso:31.5-15: Warning (reg_format): /fragment@0/__overlay__/flash@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
f2de919658 mediatek: filogic: fix bpi-r4 eeprom dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

mt7988a-bananapi-bpi-r4-wifi-mt7996a.dtso:31.5-18: Warning (reg_format): /fragment@1/__overlay__/wifi_eeprom@51:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-bananapi-bpi-r4-wifi-mt7996a.dtso:50.5-18: Warning (reg_format): /fragment@1/__overlay__/wifi_eeprom@52:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
a851bbeec6 mediatek: filogic: fix PCIe node dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

../dts/mt7986a-smartrg-bonanza-peak.dtsi:359.4-27: Warning (reg_format): /soc/pcie@11280000/pcie@0,0/mt7915@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988a-smartrg-mt-stuart.dtsi:551.4-27: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988a-arcadyan-mozart.dts:331.4-27: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@1,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988d-asus-zenwifi-bt8.dtsi:291.4-27: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-bananapi-bpi-r4-wifi-mt7996a.dtso:72.5-28: Warning (reg_format): /fragment@2/__overlay__/pcie@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-bananapi-bpi-r4-wifi-mt7996a.dtso:76.6-29: Warning (reg_format): /fragment@2/__overlay__/pcie@0,0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-bananapi-bpi-r4-wifi-mt7996a.dtso:88.5-28: Warning (reg_format): /fragment@3/__overlay__/pcie@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-bananapi-bpi-r4-wifi-mt7996a.dtso:92.6-29: Warning (reg_format): /fragment@3/__overlay__/pcie@0,0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-rfb-spim-nand-factory.dtso:47.5-28: Warning (reg_format): /fragment@1/__overlay__/pcie@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-rfb-spim-nand-factory.dtso:51.6-29: Warning (reg_format): /fragment@1/__overlay__/pcie@0,0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-tplink-tl-xtr8488.dts:305.4-27: Warning (reg_format): /soc/pcie@11280000/pcie@0,0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-zyxel-ex5700-telenor.dts:268.4-27: Warning (reg_format): /soc/pcie@11280000/pcie@0,0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-bananapi-bpi-r4-wifi-mt7996a.dtso:77.5-28: Warning (reg_format): /fragment@2/__overlay__/pcie@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-bananapi-bpi-r4-wifi-mt7996a.dtso:95.5-28: Warning (reg_format): /fragment@3/__overlay__/pcie@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
mt7988a-rfb-spim-nand-factory.dtso:49.5-28: Warning (reg_format): /fragment@1/__overlay__/pcie@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
a16b44ac43 mediatek: filogic: fix wm8960 dtc warnings
Add missing #address-cells, #size-cells and #sound-dai-cells to
fix the following dtc warnings:

mt7986a-bananapi-bpi-r3-respeaker-2mics.dtso:46.5-18: Warning (reg_format): /fragment@1/__overlay__/wm8960@1a:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7986a-bananapi-bpi-r3-respeaker-2mics.dtso:29.11-31.7: Warning (sound_dai_property): /fragment@0/__overlay__/sound_wm8960/codec: Missing property '#sound-dai-cells' in node /fragment@1/__overlay__/wm8960@1a or bad phandle (referred from sound-dai[0])
mt7986a-rfb-spim-nand.dts:17.12-19.5: Warning (sound_dai_property): /sound_wm8960/platform: Missing property '#sound-dai-cells' in node /soc/audio-controller@11210000 or bad phandle (referred from sound-dai[0])
mt7986a-rfb-spim-nand.dts:21.9-23.5: Warning (sound_dai_property): /sound_wm8960/codec: Missing property '#sound-dai-cells' in node /soc/i2c@11008000/wm8960@1a or bad phandle (referred from sound-dai[0])

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
49d5fc505f mediatek: filogic: fix WiFi MAC address invalid length dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

../dts/mt7988a-smartrg-mt-stuart.dtsi:558.5-15: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988a-smartrg-mt-stuart.dtsi:565.5-15: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988a-smartrg-mt-stuart.dtsi:572.5-15: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@2:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988d-asus-zenwifi-bt8.dts:78.3-13: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988d-asus-zenwifi-bt8.dts:85.3-13: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988d-asus-zenwifi-bt8.dts:92.3-13: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@2:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts:82.3-13: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts:89.3-13: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts:96.3-13: Warning (reg_format): /soc/pcie@11300000/pcie@0,0/mt7996@0,0/band@2:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-cmcc-a10.dtsi:250.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-dlink-aquila-pro-ai-m60-a1.dts:324.3-13: Warning (reg_format): /soc/wifi@18000000/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-dlink-aquila-pro-ai-m60-a1.dts:330.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-gatonetworks-gdsp.dts:247.3-13: Warning (reg_format): /soc/wifi@18000000/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-gatonetworks-gdsp.dts:253.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-huasifei-wh3000.dts:182.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986b-mercusys-mr90x-v1-ubi.dts:114.3-13: Warning (reg_format): /soc/wifi@18000000/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986b-mercusys-mr90x-v1-ubi.dts:120.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-openembed-som7981.dts:287.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-openwrt-one.dts:446.3-13: Warning (reg_format): /soc/wifi@18000000/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-openwrt-one.dts:452.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-routerich-ax3000-v1.dts:323.3-13: Warning (reg_format): /soc/wifi@18000000/band@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-routerich-ax3000-v1.dts:329.3-13: Warning (reg_format): /soc/wifi@18000000/band@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
2d9697293b mediatek: filogic: fix "unknown,gca230718" dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

../dts/mt7981b-dlink-aquila-pro-ai-m30-a1.dts:289.4-14: Warning (reg_format): /soc/i2c@11007000/gca230718@40/led@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-dlink-aquila-pro-ai-m30-a1.dts:295.4-14: Warning (reg_format): /soc/i2c@11007000/gca230718@40/led@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-dlink-aquila-pro-ai-m30-a1.dts:301.4-14: Warning (reg_format): /soc/i2c@11007000/gca230718@40/led@2:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-dlink-aquila-pro-ai-m30-a1.dts:307.4-14: Warning (reg_format): /soc/i2c@11007000/gca230718@40/led@3:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-dlink-aquila-pro-ai-m60-a1.dts:356.4-14: Warning (reg_format): /soc/i2c@11008000/gca230718@40/led@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-dlink-aquila-pro-ai-m60-a1.dts:362.4-14: Warning (reg_format): /soc/i2c@11008000/gca230718@40/led@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-dlink-aquila-pro-ai-m60-a1.dts:368.4-14: Warning (reg_format): /soc/i2c@11008000/gca230718@40/led@2:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-dlink-aquila-pro-ai-m60-a1.dts:374.4-14: Warning (reg_format): /soc/i2c@11008000/gca230718@40/led@3:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
a7df41412b mediatek: filogic: fix memory node invalid length dtc warnings
Correct the dts memory reg property to fix the following dtc
warnings:

../dts/mt7986a-zyxel-ex5601-t0-stock.dts:19.3-33: Warning (reg_format): /memory@40000000:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 2)
../dts/mt7986a-zyxel-ex5601-t0-ubootmod.dts:19.3-33: Warning (reg_format): /memory@40000000:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 2)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
ac5561906e mediatek: filogic: fix unit name leading 0s dtc warnings
Trim unnecessary 0s to fix the following dtc warnings:

../dts/mt7981b-cudy-re3000-v1.dts:135.20-139.6: Warning (unit_address_format): /soc/spi@11009000/flash@0/partitions/partition@00000: unit name should not have leading 0s
../dts/mt7981b-cudy-wr3000-v1.dts:153.20-157.6: Warning (unit_address_format): /soc/spi@11009000/flash@0/partitions/partition@00000: unit name should not have leading 0s
../dts/mt7981b-gatonetworks-gdsp.dts:276.20-280.6: Warning (unit_address_format): /soc/spi@11009000/flash@0/partitions/partition@00000: unit name should not have leading 0s
mt7988a-rfb-spim-nor.dtso:36.21-39.7: Warning (unit_address_format): /fragment@0/__overlay__/flash@0/partition@00000: unit name should not have leading 0s
../dts/mt7981a-ubnt-unifi-6-plus.dts:113.28-131.6: Warning (unit_address_format): /soc/spi@11009000/flash@0/partitions/partition@00000: unit name should not have leading 0s
../dts/mt7981b-wavlink-wl-wn586x3.dts:147.20-151.6: Warning (unit_address_format): /soc/spi@11009000/flash@0/partitions/partition@00000: unit name should not have leading 0s
../dts/mt7981b-wavlink-wl-wn573hx3.dts:102.20-106.6: Warning (unit_address_format): /soc/spi@11009000/flash@0/partitions/partition@00000: unit name should not have leading 0s
../dts/mt7981b-yuncore-ax835.dts:161.20-165.6: Warning (unit_address_format): /soc/spi@11009000/flash@0/partitions/partition@00000: unit name should not have leading 0s
../dts/mt7986a-zyxel-ex5601-t0-stock.dts:57.39-61.6: Warning (unit_address_format): /soc/spi@1100a000/spi_nand@0/partitions/partition@180000/nvmem-layout/macaddr@0004: unit name should not have leading 0s
../dts/mt7986a-zyxel-ex5601-t0-stock.dts:63.39-67.6: Warning (unit_address_format): /soc/spi@1100a000/spi_nand@0/partitions/partition@180000/nvmem-layout/macaddr@0024: unit name should not have leading 0s
../dts/mt7986a-zyxel-ex5601-t0-stock.dts:69.39-73.6: Warning (unit_address_format): /soc/spi@1100a000/spi_nand@0/partitions/partition@180000/nvmem-layout/macaddr@002a: unit name should not have leading 0s
../dts/mt7986a-zyxel-ex5601-t0-ubootmod.dts:56.39-60.6: Warning (unit_address_format): /soc/spi@1100a000/spi_nand@0/partitions/partition@180000/nvmem-layout/macaddr@0004: unit name should not have leading 0s
../dts/mt7986a-zyxel-ex5601-t0-ubootmod.dts:62.39-66.6: Warning (unit_address_format): /soc/spi@1100a000/spi_nand@0/partitions/partition@180000/nvmem-layout/macaddr@0024: unit name should not have leading 0s
../dts/mt7986a-zyxel-ex5601-t0-ubootmod.dts:68.39-72.6: Warning (unit_address_format): /soc/spi@1100a000/spi_nand@0/partitions/partition@180000/nvmem-layout/macaddr@002a: unit name should not have leading 0s

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
bc0be15e8d mediatek: filogic: fix flash node name dtc warnings
Correct dts node name based on reg property to fix the
following dtc warnings:

mt7981-rfb-spim-nand.dtso:20.25-67.6: Warning (spi_bus_reg): /fragment@1/__overlay__/spi_nand@0: SPI bus unit address format error, expected "1"
mt7986a-rfb-spim-nand.dts:41.23-76.4: Warning (spi_bus_reg): /soc/spi@1100a000/spi_nand@0: SPI bus unit address format error, expected "1"
../dts/mt7981a-comfast-cf-e393ax.dts:135.23-206.4: Warning (spi_bus_reg): /soc/spi@1100a000/spi_nand@0: SPI bus unit address format error, expected "1"
../dts/mt7981b-openwrt-one.dts:305.10-342.4: Warning (spi_bus_reg): /soc/spi@1100a000/flash@0: SPI bus unit address format error, expected "1"
../dts/mt7986a-zyxel-ex5601-t0-common.dtsi:166.30-180.4: Warning (spi_bus_reg): /soc/spi@1100a000/spi_nand@0: SPI bus unit address format error, expected "1"

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:01:00 +08:00
Shiji Yang
1adb0a8928 mediatek: filogic: fix mmc dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

../dts/mt7986a-smartrg-bonanza-peak.dtsi:310.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7986a-bananapi-bpi-r3-emmc.dtso:29.5-15: Warning (reg_format): /fragment@0/__overlay__/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
mt7986a-bananapi-bpi-r3-sd.dtso:23.5-15: Warning (reg_format): /fragment@0/__overlay__/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-bananapi-bpi-r3-mini.dts:274.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-cmcc-rax3000m-emmc.dtso:48.5-15: Warning (reg_format): /fragment@3/__overlay__/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-glinet-gl-mt2500.dts:158.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-glinet-gl-mt6000.dts:319.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981a-glinet-gl-x3000-xe3000-common.dtsi:142.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-huasifei-wh3000.dts:118.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-jdcloud-re-cp-03.dts:171.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-nradio-c8-668gl.dts:110.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7981b-unielec-u7981-01-emmc.dts:26.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:00:59 +08:00
Shiji Yang
13a02c9832 mediatek: filogic: fix "srg,sysled" dtc warnings
Add missing #address-cells and #size-cells to fix the
following dtc warnings:

../dts/mt7986a-smartrg-bonanza-peak.dtsi:562.4-14: Warning (reg_format): /soc/i2c@11008000/system-leds/led@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-smartrg-bonanza-peak.dtsi:568.4-14: Warning (reg_format): /soc/i2c@11008000/system-leds/led@2:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-smartrg-bonanza-peak.dtsi:574.4-14: Warning (reg_format): /soc/i2c@11008000/system-leds/led@3:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-smartrg-bonanza-peak.dtsi:580.4-14: Warning (reg_format): /soc/i2c@11008000/system-leds/led@4:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988a-smartrg-mt-stuart.dtsi:394.4-14: Warning (reg_format): /soc/i2c@11004000/system-leds/system_red:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988a-smartrg-mt-stuart.dtsi:399.4-14: Warning (reg_format): /soc/i2c@11004000/system-leds/system_green:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988a-smartrg-mt-stuart.dtsi:404.4-14: Warning (reg_format): /soc/i2c@11004000/system-leds/system_blue:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7988a-smartrg-mt-stuart.dtsi:409.4-14: Warning (reg_format): /soc/i2c@11004000/system-leds/system_white:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
../dts/mt7986a-smartrg-bonanza-peak.dtsi:559.14-588.4: Warning (i2c_bus_reg): /soc/i2c@11008000/system-leds: I2C bus unit address format error, expected "30"
../dts/mt7988a-smartrg-mt-stuart.dtsi:388.14-413.4: Warning (i2c_bus_reg): /soc/i2c@11004000/system-leds: I2C bus unit address format error, expected "30"

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
2025-05-19 20:00:59 +08:00
Shiji Yang
7193539c98 treewide: dts: trim "#size-cells" from "gpio-export" node
The "gpio-export" driver doesn't require a "reg" property in the
device tree, hence we don't need to use the "#size-cells" property
to describe the size of "reg".

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18290
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-18 19:35:00 +02:00
Alex Thompson
75c69935fd qualcommax: TP-Link EAP620HD fix factory data
The re-factoring of the preinit factory partition mount script used the
incorrect mtd name for the EAP620HD and (I assume incorrect) for EAP660HD.
This corrects it to "factory_data".

Signed-off-by: Alex Thompson <thompson.alex.c@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18834
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-18 16:18:42 +02:00
Mieczyslaw Nalewaj
dcc21427f1 generic: refresh patches
Made: 'make target/linux/refresh'

Fixes: fbd31da840 ("generic: make xhci-pci-renesas a proper modular driver")

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18832
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-18 10:02:09 +02:00
Shiji Yang
a6822d5980 mvebu: replace kmod-usb3 with kmod-usb-xhci-pci-renesas
The dependency of kmod-usb3 and kmod-usb-xhci-pci-renesas have
been reversed. Now we need to select kmod-usb-xhci-pci-renesas
instead of kmod-usb3.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18768
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-17 20:14:27 +02:00
Shiji Yang
b2d356909d lantiq: replace kmod-usb3 with kmod-usb-xhci-pci-renesas
The dependency of kmod-usb3 and kmod-usb-xhci-pci-renesas have
been reversed. Now we need to select kmod-usb-xhci-pci-renesas
instead of kmod-usb3.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18768
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-17 20:14:27 +02:00
Shiji Yang
c1780adbf2 apm821xx: replace kmod-usb3 with kmod-usb-xhci-pci-renesas
The dependency of kmod-usb3 and kmod-usb-xhci-pci-renesas have
been reversed. Now we need to select kmod-usb-xhci-pci-renesas
instead of kmod-usb3.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18768
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-17 20:14:27 +02:00
Shiji Yang
fbd31da840 generic: make xhci-pci-renesas a proper modular driver
In the new 6.12 kernel, the dependencies of kmod-usb3 and
kmod-usb-xhci-pci-renesas have been reversed. To address the
issue of package recursive dependencies, we need to backport
this patchset to make the dependencies consistent between the
6.6 and 6.12 kernels.

Links:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.10.y&id=d6b2b694dd536d16566424c395d5642783ed6f34
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.11.y&id=9fdce69f674e49be669e97919d24b1ab5d2c9684
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=25f51b76f90f10f9bf2fbc05fc51cf685da7ccad
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18768
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-17 20:14:27 +02:00
Shiji Yang
803070e07f generic: fix disable common USB quirks patch
Remove modifications for codes guarded by CONFIG_USB_PCI_AMD.
This kernel symbol is only visible on desktop level platform,
e.g. x86. They are not sensitive to firmware image size. This
patch also fixes function redefinition build errors:

drivers/usb/host/pci-quirks.c:621:6: error: redefinition of 'usb_asmedia_modifyflowcontrol'
  621 | void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/usb/host/pci-quirks.c:22:
drivers/usb/host/pci-quirks.h:49:20: note: previous definition of 'usb_asmedia_modifyflowcontrol' with type 'void(struct pci_dev *)'
   49 | static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {}
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixes: be6753dda0 ("generic: 6.12: manually rebuild pending patches")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-17 19:46:52 +02:00
Robert Marko
2809d9502f x86: generic: add missing CONFIG_DRM_ACCEL_QAIC
CONFIG_DRM_ACCEL_QAIC was not added to x86 generic config, but it needs to
be added as CONFIG_DRM_ACCEL_QAIC does not depend on x86_64 like others.

Fixes: 51b78aa ("kernel: package intel_vpu driver")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-17 11:39:06 +02:00
Chukun Pan
6b99c5d21e rockchip: backport PCIe MSI fixes for RK356x SoC
Backport GIC ITS support for RK356x SoC, which fixes long-standing
MSI/MSI-X bug. (Previously MSI-X could only work on one PCIe node)

e.g. [    7.250882] r8125 0002:01:00.0: no MSI/MSI-X. Back to INTx.

Tested on Radxa E25 with kmod-r8125-rss driver.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/18800
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-17 11:30:20 +02:00
Chukun Pan
cca80986b5 rockchip: replace RK356x RNG patch with upstream
Replace RK356x RNG patch with upstream version to
add the tag flag them as upstreamed.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/18800
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-17 11:30:20 +02:00
Chukun Pan
e66437a1ea rockchip: armv8: Refresh kernel config
Run 'make kernel_oldconfig' to get an up-to-date config.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/18800
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-17 11:30:20 +02:00
Robert Marko
fb90296c32 qualcommax: ipq50xx: spi-qpic-snand: default to 4-bit ECC
There are NAND IC-s that define 1-bit ECC as the minimal strength,
however that is unsupported by QPIC-SNAND as it only supports 4 or 8 bit
ECC.

Since most of these chips also support 4-bit ECC just fine, instead of
erroring out if 1-bit ECC is requested lets instead default to 4-bit ECC.

Fixes: 01b72ce61e ("qualcommax: ipq50xx: remove ECC user config from board files")
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
91e9a1d221 qualcommax: add 6.12 as testing kernel
Allow testing 6.12 as the testing kernel.

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
fc4eaa34f8 qualcommax: 6.12: MPD: add missing <linux/of_platform.h>
It seems that kernel cleaned up its kernels so we need to include
<linux/of_platform.h> for of_platform_device_create().

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
2018a61211 qualcommax: 6.12: pwm: use devm_clk_get_enabled()
Using devm_clk_get_enabled() allows simplification of the driver and
dropping of the .remove OP as well.

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
93697be03c qualcommax: 6.12: pwm: fixup for 6.12
6.12 PWM core introduced a bunch of incompatible changes, namely removal
of manual module owner assignment, complete PWM struct allocation and usage
refactor, etc.

So, update the driver to follow other drivers in 6.12 so it compiles.

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
427522d1de qualcommax: 6.12: cpr: update for 6.12
Remove op is now of a void type and strlcpy was removed.

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
b152f7ba22 qualcommax: 6.12: apm: change remove to void
Remove op is now of a void type, update APM.

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
d2774a55c3 qualcommax: 6.12: refresh config
Refresh kernel config by running kernel_menuconfig.

Manually enable CONFIG_HW_RANDOM and CONFIG_CRYPTO_DEV_QCOM_RNG as these
got somehow disabled by the refresh.

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
a2de324e14 qualcommax: 6.12: refresh patches
Refresh 6.12 patches, those that failed automatic refresh were refreshed
manually.

DT bindings patches that failed were dropped as we dont use them in practice.

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
dbf9c83e7a qualcommax: 6.12: drop upstreamed patches
Drop patches that are already present in kernel 6.12.

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
6d1f4b2077 kernel/qualcommax: Restore kernel files for v6.6
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

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
e40daa5b99 kernel/qualcommax: Create kernel files for v6.12 (from v6.6)
This is an automatically generated commit.

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

Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-16 17:57:40 +02:00
Robert Marko
0d4eda6237 generic: 6.12: add CONFIG_IDPF
CONFIG_IDPF is Intel(R) Infrastructure Data Path Function Support and it
should be disabled by default, if needed it can be packaged as a kmod.

Disable to prevent spreading out through target configs.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 19:37:48 +02:00
Robert Marko
1e46a391df generic: 6.12: add CONFIG_HISILICON_ERRATUM_162100801
Noticed that CONFIG_HISILICON_ERRATUM_162100801 was being added to
qualcommax 6.12 config.

Since we dont support any Hisilicon chips, disable it in generic config
before it starts spreading in target configs.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 19:29:37 +02:00
Robert Marko
f160a017ac x86: add missing DRM_ACCEL symbols
DRM_ACCEL symbols were not added to geode and legacy thus making the kernel
prompt for them on compilation.

Fixes: 51b78aaaae ("kernel: package intel_vpu driver")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 19:22:23 +02:00
Linus Lüssing
64ad16993d realtek: fix flooding of unsnoopable multicast addresses
RFC4541, section 2.1.2 says:

  Packets with a destination IP (DIP) address in the 224.0.0.X range
  which are not IGMP must be forwarded on all ports.

And section 3 says:

  In IPv6, the data forwarding rules are more straight forward because
  MLD is mandated for addresses with scope 2 (link-scope) or greater.
  The only exception is the address FF02::1 which is the all hosts
  link-scope address for which MLD messages are never sent.  Packets
  with the all hosts link-scope address should be forwarded on all
  ports.

However, currently when a listener on FF12::1 or FF12:🔢0:1 for
example joins then not only packets to these addresses but also for
FF02::1 won't be flooded to all ports anymore, too. Which violates
RFC4541.

This happens because A): They all map to the same ethernet multicast
address, that is 33:33:00:00:00:01. And B) the VLAN profile L2
unknown MC flood setting will only apply flooding of 33:33:00:00:00:01
if there is no specific listener registered for it.

So to fix this, avoid registering an MDB entry in the switch for
33:33:00:00:00:01 at all.

The downside of this is that FF12::1, FF12:🔢0:1 etc.
will always be flooded, too. However fixing the handling of 224.0.0.X
and FF02::1 and adhering to RFC4541 must have priority to avoid
undesired packetloss, to avoid breaking IPv4/IPv6.

Tested-on: ZyXEL GS1900-24HP v1

Fixes: cde31976e3 ("realtek: Add support for Layer 2 Multicast")
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Link: https://github.com/openwrt/openwrt/pull/18769
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 19:01:22 +02:00
Paweł Owoc
86a6c550b9 qualcommax: dts: fix missing or empty reg property warning
Remove property 'status = "disabled"' for partitions in Zyxel NBG7815.
This option is mainly used for NAND memory and here we have SPI memory.

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18787
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 18:29:00 +02:00
Paweł Owoc
af021c1285 qualcommax: dts: fix property has invalid length warning
Fix "property has invalid length" warning for two devices:
- TP-Link EAP620 HD v1
- Zyxel NBG7815

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18787
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 18:29:00 +02:00
Felix Fietkau
610dd871aa kernel: fix warning on retrying page pool release
Fixes the following warning:
[  180.314652] NOHZ tick-stop error: local softirq work is pending, handler #08!!!

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-15 15:41:59 +02:00
Robert Marko
ca51f7aaf5 qualcommax: ipq60xx: fix EAP625-Outdoor HD BDF package name
Currently, non existing ipq-wifi package name is selected for
EAP625-Outdoor HD, so correct the name.

Fixes: 51c1ea08d0 ("qualcommax: ipq60xx: add TP-Link EAP625-Outdoor HD v1 support")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 14:57:14 +02:00
Joe Zheng
51b78aaaae kernel: package intel_vpu driver
Add package for linux intel_vpu driver for Intel NPU/VPU

Signed-off-by: Joe Zheng <joe.zheng@intel.com>
Link: https://github.com/openwrt/openwrt/pull/17904
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-15 10:09:40 +02:00
Zoltan HERPAI
95341cc9c5 generic: 6.12: add missing symbols
Add missing symbols found during moving sifiveu and d1 to 6.12.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-05-14 23:27:03 +02:00
Alexandru Gagniuc
51c1ea08d0 qualcommax: ipq60xx: add TP-Link EAP625-Outdoor HD v1 support
TP-Link EAP625-Outdoor HD is a 802.11ax AP claiming AX1800 support.
It is wall or pole mountable, and rated for outdoor use. It can only
be powered via PoE.

Hardware-wise, it is very similar to the older EAP610-Outdoor model.
Software-wise, I couldn't find a difference other than the board
data files, and device name. For this reason, the majority of the
devicetree from the EAP610-Outdoor is reused.

This device currently comes in a "v1", and "v1.6" version. The
"support-list" of the vendor firmware does not have a distinction
between these versions. This commit was tested on a 'V1.6" device.

Specifications:
---------------
* CPU: Qualcomm IPQ6018 Quad core Cortex-A53
* RAM: 512 MB
* Storage: 128MB NAND
* Ethernet:
  * Gigabit RJ45 port with PoE input
* WLAN:
  * 2.4GHz/5GHz
* LEDs:
  * Multi-color System LED (Green/Amber)
* Buttons:
  * 1x Reset
* UART: 4-pin unpopulated header
  * 1.8 V level, Pinout 1 - TX, 2 - RX, 3 - GND, 4 - 1.8V

Installation:
=============

Web UI method
-------------

Set up the device using the vendor's web UI. After that go to
Management->SSH and enable the "SSH Login" checkbox. Select "Save".
The connect to the machine via SSH:

ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device>

Disable signature verification:

cliclientd stopcs

Rename the "-web-ui-factory" image to something less than 63
characters, maintaining the ".bin" suffix.
 * Go to System -> Firmware Update.
 * Under "New Firmware File", click "Browse" and select the image
 * Select "Update" and confirm by clicking "OK".

If the update fails, the web UI should show an error message.
Otherwise, the device should reboot into OpenWRT.

NOTE: If ssh continues to complain that "no matching host key type
found. Their offer: ssh-rsa,ssh-dss" it likely means that yor distro
has completely disabled deprecated siphers in ssh. In that case, run
the ssh command from a docker container of an older distro.

TFTP method
-----------

To flash via tftp, first place the initramfs image on the TFTP server.

setenv serverip <ip of tftp server>
setenv ipaddr <ip in same subnet as tftp server>
tftpboot tplink_eap625-outdoor-hd-v1-initramfs-uImage.itb
bootm

This should boot OpenWRT. Once booted, flash the sysupgrade.bin image
using either luci or the commandline.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18584
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-14 19:38:25 +02:00
Alexandru Gagniuc
c75223338f qualcommax: ipq60xx: eap6xx-outdoor: add PHY reset pinctrl
It was suggested that the pinctrl property of the mdio node should
include the PHY reset GPIO. Add them in.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18584
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-14 19:38:25 +02:00
Alexandru Gagniuc
7be36c20f1 qualcommax: ipq60xx: split eap610-outdoor devicetree
I have an EAP625-Outdoor HD v1 that is very similar with the EAP610
Outdoor. It works with the EAP610 initramfs, without any obvious loss
of functionality. In order to prepare for supporting the EAP625, move
the common parts into a shared .dtsi.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18584
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-14 19:38:25 +02:00
David Bauer
eea4689654 ramips: pad EX400 kernel partition to retain web recovery
The web-recovery of the Genexis EX400 validates uploaded images to fit
in the rootf_0 partition.

With OpenWrt, only the kernel is stored in this partition, leaving the
partition very small. Currently, the first factory release image won't
be accepted by the recovery interface after the OpenWrt installation.

Pad the image of the ubifs to 10MB. This allows the 24.10 release image
to be uploaded, enabling device recovery.

Signed-off-by: David Bauer <mail@david-bauer.net>
2025-05-14 18:39:56 +02:00
David Bauer
d97c01a11f ramips: clean UBI tempdir before image creation
Clean the temporary directory the UBI image is generated from before
generation.

Currently it is removed after the image generation, which leads to files
possibly not being cleared after a build failure in this step.

Signed-off-by: David Bauer <mail@david-bauer.net>
2025-05-14 18:39:56 +02:00
Álvaro Fernández Rojas
61da745817 bmips: add missing NAND config symbol
bcm6328, bcm6362 and bcm6368 targets are missing a key config symbol which
prevents the NAND from working.

Fixes: f6c02b014d ("bmips: 6.1: refresh config and add missing symbols")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-05-14 11:37:51 +02:00
Robert Marko
d02071c24f generic: config-filter: filter out CONFIG_PAHOLE_HAS_LANG_EXCLUDE
CONFIG_PAHOLE_HAS_LANG_EXCLUDE is set depending on the pahole version
present, so it must be filtered out.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-14 11:28:01 +02:00
Mieczyslaw Nalewaj
4d18c41a6c kernel: mtk_bmt: counteracting calloc-transposed-args compiler warning
For kernel 6.12 there is a warning causing an error:
drivers/mtd/nand/mtk_bmt_v2.c: In function 'mtk_bmt_get_mapping_mask':
drivers/mtd/nand/mtk_bmt_v2.c:307:31: error: 'kmalloc_array_noprof' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
  307 |         used = kcalloc(sizeof(unsigned long), BIT_WORD(bmtd.bmt_blk_idx) + 1, GFP_KERNEL);
      |                               ^~~~~~~~

Swapping the arguments solves the problem.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18701
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 22:07:11 +02:00
INAGAKI Hiroshi
dcc440c7c9 ramips: mt7621: relocate kernel for ELECOM WRC-X1800GS
Relocate the kernel in the firmware images for WRC-X1800GS when booting,
to fix the LZMA error while extraction by U-Boot with the following
messages.

log (official initramfs image (ffde9a9fe9)):

```
=> bootm
   Using 'config-1' configuration
   Trying 'kernel-1' kernel subimage
     Description:  MIPS OpenWrt Linux-6.6.89
     Type:         Kernel Image
     Compression:  lzma compressed
     Data Start:   0x800100e4
     Data Size:    7365490 Bytes = 7 MiB
     Architecture: MIPS
     OS:           Linux
     Load Address: 0x80001000
     Entry Point:  0x80001000
     Hash algo:    crc32
     Hash value:   f27303e3
     Hash algo:    sha1
     Hash value:   7715e6d2d27eeef34ea88ad7ae0c6f73b6748ba4
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Using 'config-1' configuration
   Trying 'fdt-1' fdt subimage
     Description:  MIPS OpenWrt elecom_wrc-x1800gs device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x8071659c
     Data Size:    13578 Bytes = 13.3 KiB
     Architecture: MIPS
     Hash algo:    crc32
     Hash value:   d37ef67f
     Hash algo:    sha1
     Hash value:   e66ac0a2e8024a276bf9b3712dffa2192d7a70dc
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x8071659c
   Uncompressing Kernel Image ... lzma compressed: uncompress error 1
Must RESET board to recover

===================================================================
                MT7621   stage1 code Dec 16 2019 17:45:55 (ASIC)
                CPU=500000000 HZ BUS=166666666 HZ
==================================================================
...

```

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18781
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 21:59:07 +02:00
Markus Stockhausen
70f10e2210 realtek: phy: remove unneeded usage of genphy_loopback()
Kernel does

  if (phydev->drv->set_loopback)
    ret = phydev->drv->set_loopback(phydev, enable, speed);
  else
    ret = genphy_loopback(phydev, enable, speed);

So no need to explicitly set genphy_loopback() in phy_driver. Drop
references to let kernel do its work.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18782
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 21:53:28 +02:00
Shiji Yang
01d5026239 kernel: bump 6.6 to 6.6.90
Remove upstreamed patches:
  bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch [1]
  pending-6.6/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch [2]

Manually rebased patches:
  generic/hack-6.6/781-usb-net-rndis-support-asr.patch [3]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=f377434945f528217e65fc5b18781caeba19ce72
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=e0272844995aff8cbf2cc88b78c2b35ca51eda43
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=222b6685efe0d8c1cdb078a67bbe806f56d18f94
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18775
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-13 21:43:34 +02:00
Robert Marko
9d15c1a020 qualcommax: ipq50xx: add PCI path migration script
PCI paths of IPQ50xx devices have changed now that linux,pci-domain is set
in the DTSI, so add a migration script for wireless config.

Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 19:58:22 +02:00
Robert Marko
cfbfdd9ca6 qualcommax: ipq50xx: update PCI path for caldata
Now that IPQ50xx PCIe nodes have linux,pci-domain property defined
it changed the PCI path, but its now predictable and fixed.

So, update the caldata script accordingly.

Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 19:58:22 +02:00
Robert Marko
1e20f7b6c6 qualcommax: fix PCIe card wifi node address
Unlike other buses, for PCIe child nodes we should not use "wifi@1,0" as
the bus adress since for PCI devices the actual device adress on the bus is
actually set via the "reg" property and the node name is unused completely.

Though, it will cause DTC to throw warnings, so after investigation and
similar issue upstream[1] simply set the nodes to "wifi@0,0" instead.

[1] https://lists.infradead.org/pipermail/linux-arm-kernel/2021-August/680846.html

Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 19:58:22 +02:00
Robert Marko
487fc2ec96 qualcommax: remove PCIe bridge nodes
PCIe bridge nodes are now present in the SoC DTSI, so drop our downstream
ones as otherwise ath1*k BDF matching will fail.

Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 19:58:22 +02:00
Robert Marko
5e0bbd3670 qualcommax: ipq50xx: add missing bus-range to PCIe bridges
It seems that bus-range property was missed for the PCIe bridges on
IPQ50xx, thus causing DTC to warn on any bus adress used on nodes
under the PCIe bridges.

Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 19:58:22 +02:00
Robert Marko
8aad4cd43d qualcommax: ipq50xx: use latest v9 PCIe DTS patch
Use the latest v9 PCIe DTS patch that is pending upstream, notable change
being that it includes PCIe bridge nodes.

Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 19:58:22 +02:00
Robert Marko
2c2808a71a qualcommax: ipq807x, ipq60xx: backport DTS PCIe bridge node
Currently, we manually define PCI bridge nodes in devices that use
PCI cards, etc.

But since we will need to rework this for 6.12 anyway since upstream added
the PCIe bridge nodes[1][2] lets backport it now.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v6.12.28&id=ed3893f6f9b800ca774f63810c5f8838bc7cee78
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq6018.dtsi?h=v6.12.28&id=52358c64937e982d3cdcf64be58f08f30d8e518c

Link: https://github.com/openwrt/openwrt/pull/18789
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-13 19:58:22 +02:00
Christoph Krapp
0d6ba33181 mediatek: filogic: fix wifi on ASUS RT-AX52
Add missing kmod-7915e package to get both wireless interfaces working.

Link: https://github.com/openwrt/openwrt/issues/18690

Reviewed-by: Steffen Förster <nemesis@chemnitz.freifunk.net>
Signed-off-by: Christoph Krapp <achterin@gmail.com>
2025-05-13 03:32:26 +02:00
Mieczyslaw Nalewaj
269a62b217 kernel: bump 6.12 to 6.12.28
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.28

Removed upstreamed:
        generic/pending-6.12/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch[1]

Manually rebased:
        generic/pending-6.12/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch[2]
        generic/hack-6.12/781-usb-net-rndis-support-asr.patch[3]

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=6effe1c0fa823d9923f3b77547f201a5bab6c1e5
2. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=aea3ca60fafbdf0da5c930ff2f4105587deb6753
3. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=222b6685efe0d8c1cdb078a67bbe806f56d18f94

All other patches automatically rebased.

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

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18756
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-12 18:10:03 +02:00
Robert Marko
1c1026eeac generic: 6.12: add CONFIG_EC_LENOVO_YOGA_C630
CONFIG_EC_LENOVO_YOGA_C630 popped up while doing 6.12 for qualcommax.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-12 17:05:04 +02:00
Markus Stockhausen
55287c9fbe realtek: decouple MDIO and ethernet devices
We are lucky to have a working realtek environment. But some things where mixed
heavily. To say it clear a bus is a bus and an ethernet is an ethernet. With
the new naming conventions and defines this becomes even more obvious.

Decouple it by moving the bus specific parts out of the ethernet device. To
make the code more readable rename bus_priv variables to priv and sort variable
definitions in inverse tree order (length descending) where it makes sense.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18402
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2025-05-12 16:09:19 +03:00
Markus Stockhausen
47de87eb23 realtek: harden MDIO driver
At least since 2022 there is a major bug in the MDIO driver that
produces out-of-bound reads and erratic behaviour during initialization.

- mdiobus_scan_bus_c22() scans the bus for 64 devices (PHY_MAX_ADDR)
- private bus structure only supports 57 entry arrays (MAX_PORTS)

All the bus/reader writer functions accept calls with addr>=57 and will
silently read beyond their limits. This can lead to ghost SERDES like
https://github.com/openwrt/openwrt/issues/18665#issuecomment-2846053813

Add proper boundary checks and end the functions with -ENODEV that is
the only accepted error code from the bus scan function.

Fixes: 0536c582e6 ("realtek: Fix RTL931X Ethernet driver") etc ...

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18402
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2025-05-12 16:09:19 +03:00
Markus Stockhausen
96ce4855bc realtek: resize mdio bus private arrays
These two arrays have been fixed to some sane size (= 64 ports). Now
that everything is in place reuse the global RTMDIO_MAX_PORT define.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18402
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2025-05-12 16:09:19 +03:00
Markus Stockhausen
0c9e91a60c realtek: move private bus structure closer to the bus
Relocate the bus structure definition into the MDIO source code area
of the ethernet driver. So if the real bus driver is forked from the
rest of the code only one area needs to be removed. Rename it to make
clear it belongs to the bus.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18402
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2025-05-12 16:09:19 +03:00