Commit Graph

32792 Commits

Author SHA1 Message Date
Shiji Yang
f3ce0c29ea mediatek: dts: use dt-bindings enumerated drive strength values
The Mediatek pinctrl driver can only accepts drive-strength values
enumerated in "dt-bindings/pinctrl/mt65xx.h".

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19741
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 13:22:09 +02:00
Shiji Yang
c089ad8f68 mediatek: dts: convert pinctrl bias to the Linux generic style
There are two types properties here that can control the pin bias
resistors. "mediatek,pull-{up,down}-adv" and "bias-pull-{up,down}"
actually do the same thing[1]. The first type is customized by the
Mediatek and the second type is widely used in the Linux pinctrl
framework. To avoid confusing developers, unify pinctrl bias to the
new Linux generic style.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cafe19db7751269bf6b4dd2148cbfa9fbe91d651
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19741
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 13:22:08 +02:00
Shiji Yang
6f33529a12 mediatek: dts: fix the broken memory node
Add the missing "device_type" property to fix the memory node. The
Linux kernel can not get the memory size without it. Though u-boot
can automatically fixup the memory node by adding the "device_type"
and "reg" properties if the CONFIG_ARCH_FIXUP_FDT_MEMORY symbol is
enabled, it's better not to rely on this optional feature. This
patch also adds the reg address for the memory node name to follow
the naming rules.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19741
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 13:22:08 +02:00
Issam Hamdi
8c42e63a69 realtek: rtl93xx: fix incorrect destination port selection
When testing LLDP and STP, we observed that locally generated multicast
packets (e.g. LLDP, STP) were not restricted to the designated output
port(s). For example, when transmitting on `lan1`, the same packet was also
forwarded to other ports such as `lan2`.

Steps to reproduce:

1. Configure lldpd to use `lan1` in UCI and restart the service
2. Connect devices to `lan1` and `lan2`
3. Observe that the device on `lan2` still receives LLDP packets

The issue was caused by an incorrect `FWD_TYPE` setting in the TX CPU TAG,
which failed to enforce the selected egress port(s).

Fix this by updating the TX CPU TAG to set `FWD_TYPE` correctly, ensuring
that locally generated packets are transmitted only on the intended
port(s).

Signed-off-by: Issam Hamdi <ih@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19802
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-24 00:01:18 +02:00
Qing W
6e04dccb7a mediatek: Add support for Acer Predator Connect W6x
Product name: Acer Predator Connect W6x
Product link: https://www.acer.com/us-en/predator/networking/wi-fi/predator-connect-w6x/pdp/FF.G2TTA.001

* Specifications:

SOC: MT7986AV
RAM: 1024MB
Flash: 256 MB SPI NAND
Ports: 4 LAN (1G) & 1 WAN (2.5G)
WIFI: MT7976GN + MT7976AN
LED: 1, ws2812b controller

* Installation via UART:

1. Configure TFTP server with IP 192.168.1.66. Copy `openwrt-mediatek-filogic-acer_predator-w6x-initramfs-kernel.bin` to TFTP root and rename to `predator.bin`
2. Interrupt boot by pressing 0 on startup or select `U-Boot Console` in U-Boot Boot Menu.
3. Run setenv `serverip 192.168.1.66; setenv ipaddr 192.168.1.1; tftpboot 0x46000000 predator.bin; fdt addr $(fdtcontroladdr); fdt rm /signature; bootm` in uboot console.
4. Wait for boot complete on Openwrt initramfs env.

** You can back up the MTD partitions at this point. Refer to Backup Instructions section.

5. On client PC, transfer `openwrt-mediatek-filogic-acer_predator-w6x-squashfs-sysupgrade.bin` to /tmp/ - `scp -O openwrt-mediatek-filogic-acer_predator-w6x-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/sysupgrade.bin`
6. On router, run sysupgrade - `sysupgrade -n /tmp/sysupgrade.bin`
Should now boot to Openwrt. Ensure it boots automatically to Openwrt by replugging the power.

* Backup Instructions:

Layout from stock firmware:
```
[    0.968731] Creating 10 MTD partitions on "nmbm_spim_nand":
[    0.974297] 0x000000000000-0x000000100000 : "BL2"
[    0.979424] 0x000000100000-0x000000180000 : "u-boot-env"
[    0.985032] 0x000000180000-0x000000380000 : "Factory"
[    0.990379] 0x000000380000-0x000000580000 : "FIP"
[    0.995378] 0x000000580000-0x000000600000 : "prod"
[    1.000461] 0x000000600000-0x000000700000 : "dual"
[    1.005527] 0x000000700000-0x000000800000 : "pot"
[    1.010516] 0x000000800000-0x000006c00000 : "ubi"
[    1.015626] 0x000006c00000-0x00000d000000 : "ubi1"
[    1.020801] 0x00000d000000-0x00000d800000 : "storage"
```

Mapping in initramfs env:
```
dev:    size   erasesize  name
mtd0: 00100000 00020000 "bl2"
mtd1: 00080000 00020000 "u-boot-env"
mtd2: 00200000 00020000 "factory"
mtd3: 00200000 00020000 "fip"
mtd4: 00020000 00020000 "prod"
mtd5: 00100000 00020000 "dual"
mtd6: 00100000 00020000 "pot"
mtd7: 06400000 00020000 "ubi"
mtd8: 06400000 00020000 "ubi1"
mtd9: 00800000 00020000 "storage"
```
1. While in openwrt initramfs environment, back up all the partitions by running the following:
```
cat /dev/mtd0 > /tmp/bl2.bin
cat /dev/mtd1 > /tmp/u-boot-env.bin
cat /dev/mtd2 > /tmp/factgory.bin
cat /dev/mtd3 > /tmp/fip.bin
cat /dev/mtd4 > /tmp/prod.bin
cat /dev/mtd5 > /tmp/dual.bin
cat /dev/mtd6 > /tmp/pot.bin
cat /dev/mtd7 > /tmp/ubi.bin
cat /dev/mtd8 > /tmp/ubi1.bin
cat /dev/mtd9 > /tmp/storage.bin
```
2. Transfer files to client PC for safekeeping. On client PC, run `scp -O root@192.168.1.1:/tmp/*.bin ./`

* Restore to Stock Firmware:

1. Boot to openwrt initramfs env.
2. Confirm layout matches as follows by running `cat /proc/mtd`. Ensure dev `mtd7` is named `ubi`:
```
dev:    size   erasesize  name
mtd0: 00100000 00020000 "bl2"
mtd1: 00080000 00020000 "u-boot-env"
mtd2: 00200000 00020000 "factory"
mtd3: 00200000 00020000 "fip"
mtd4: 00020000 00020000 "prod"
mtd5: 00100000 00020000 "dual"
mtd6: 00100000 00020000 "pot"
mtd7: 06400000 00020000 "ubi"
mtd8: 06400000 00020000 "ubi1"
mtd9: 00800000 00020000 "storage"
```
3. Detach `ubi` partition - `ubidetach -p /dev/mtd7`
4. Transfer stock firmware's `ubi.bin` to router from client PC: `scp -O ubi.bin root@192.168.1.1/tmp/`
5. Format and replace with backup `ubiformat /dev/mtd7 -y -f /tmp/ubi.bin`
6. Reboot and you should now be back on stock firmware.

* LEDS:
LED color can be controlled by specifying values in GRB format in `/sys/class/leds/rgb:status/multi_intensity`. Default is `255 255 255` (white).
Example: `echo '75 0 130' > /sys/class/leds/rgb:status/multi_intensity`

LED brightness can be changed by specifying the value from 0-255 in /sys/class/leds/rgb:status/brightness. Default is `255` (full brightness).
Example: `echo 100 > /sys/class/leds/rgb:status/brightness`

For persistence across reboots, put the relevant command(s) in /etc/rc.local.

* Notes:

root access on stock firmware:
Before flashing openwrt, and while in openwrt initramfs env:
1. Mount /dev/ubi0_2: `mkdir /tmp/ubi0_2; mount -t ubifs /dev/ubi0_2 /tmp/ubi0_2`
2. Modify `/tmp/ubi0_2/upper/etc/passwd` and change line with `root0:0...` to `root::0:0...`, remove the `x`.
3. Save and reboot.
4. You should now be able to log in with root and empty password while booted in stock firmware.

While on Openwrt, subsequent upgrades can be made by sysupgrade, or via Luci. UART should not be necessary unless you want to revert to stock firmeware.

Signed-off-by: Qing W <ses1er@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19754
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-23 23:42:12 +02:00
Hauke Mehrtens
4cd256c72a kernel: Remove patch for fixed bug
The problem was fixed in upstream kernel in a different way and the
change was backported to kernel 6.6 in the following change:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=48e8791843206baf76827df1b6ee3cb88a2a17d8

The removed patch changes the endianness again and breaks the
functionality, use only the upstream code and remove our unneeded patch.

The 823-v6.12-0003-nvmem-layouts-add-U-Boot-env-layout.patch patch was
adapted in the kernel bump too. It moves the code with the fix now.

Fixes: 05d344cb2c ("kernel: bump 6.6 to 6.6.100")
Reported-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/19830
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-23 20:35:49 +02:00
Alexandra Alth
62d50fb196 realtek: add support for XikeStor SKS8310-8X
XikeStor (Seeker) SKS8310-8X is a 8 ports Multi-Gig switch, based on
RTL9303.

Specifications:

- SoC              : Realtek RTL9303
- RAM              : DDR3 512 MiB
- Flash            : SPI-NOR 32 MiB (Macronix)
- Ethernet         : 8x 1/2.5/10 Gbps (SFP+)
- LEDs/Keys (GPIO) : 1x/1x
- UART             : "Console" port on the front panel
  - type           : RS-232C
  - connector      : RJ-45
  - settings       : 115200 8N1
- Power            : 12 VDC, 2 A

Flash instruction using initramfs image:

 1. Prepare TFTP server & connect to serial port.
 2. Connect your computer to one of the ports on SKS8310-8X with a
    suitable SFP module (some work, some don't).
 3. Power on SKS8310-8X and interrupt autoboot with Shift + A.
 4. Use Shift + Q to drop from vendor CLI to U-Boot CLI.
 5. Enable networking within U-Boot.
	> rtk network on
 6. Set switch IP and TFTP server IP (optional, adjust to your setup).
	> setenv ipaddr <ip>
	> setenv serverip <ip>
 7. Download initramfs image from TFTP server.
	> tftpboot 0x82000000 <image name>
 8. Boot with the downloaded image.
	> bootm 0x82000000
 9. With rambooted OpenWrt, backup the stock firmware if needed.
10. Copy sysupgrade image to the device.
11. Perform sysupgrade with the sysupgrade image.
12. After reboot, you should have functional OpenWrt.

Reverting to stock firmware:

 1. Download latest firmware from XikeStor and upload to your device.
 1. Write firmware with 'sysupgrade -F'.
 2. After reboot, stock firmware should boot automatically.

Co-authored-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Signed-off-by: Alexandra Alth <alexandra@alth.de>
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19782
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-23 19:22:53 +02:00
Stefan Dösinger
e7ed87b83b ramips: fix TP-Link mr600 radio partition offset
This makes 5ghz WiFi work out of the box on these devices, eliminating
the need to flash a magic blob to the radio partition.

This was found by user BulldozerBSG on the OpenWRT Forums:
https://forum.openwrt.org/t/tp-link-archer-mr600-exploration/65489/20
All credit belongs to them. I can confirm the correctness of the
findings. At least one other user (Iggy87100) confirmed them too.

Signed-off-by: Stefan Dösinger <stefandoesinger@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19790
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-23 18:11:24 +02:00
Shiji Yang
65ed5f8d6d ipq40xx: do not build EnGenius EAP1300 and ENS620EXT by default
The 6.12 kernel has exceeded the kernel size limit. the buildbot
can no longer build images for them. Developers can try switching
the kernel type to zImage to enable them again.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19826
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-23 11:41:22 +02:00
Andre Heider
db0b0e14be
omap: enable 6.12 testing kernel
The omap target now supports 6.12 kernel as testing.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2025-08-22 20:18:16 +02:00
Andre Heider
9273904ac7 omap: update kernel 6.12 config
Plain `make kernel_oldconfig`

Signed-off-by: Andre Heider <a.heider@gmail.com>
2025-08-22 20:14:25 +02:00
Andre Heider
cb26a6c0e1 generic: 6.12: add new config symbols
Add new config symbols to 6.12 kernel config.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2025-08-22 20:14:25 +02:00
Andre Heider
1b16dffeb6 omap: refresh kernel 6.12 patches
Plain `make target/linux/refresh`

Signed-off-by: Andre Heider <a.heider@gmail.com>
2025-08-22 20:14:25 +02:00
Andre Heider
2baec9856b kernel/omap: 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: Andre Heider <a.heider@gmail.com>
2025-08-22 20:14:25 +02:00
Andre Heider
72626f8b6a kernel/omap: 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: Andre Heider <a.heider@gmail.com>
2025-08-22 20:14:25 +02:00
Andre Heider
c4eb2425ed omap: update kernel 6.6 config
Plain `make kernel_oldconfig`

Signed-off-by: Andre Heider <a.heider@gmail.com>
2025-08-22 20:14:25 +02:00
Bevan Weiss
00c16754cd realtek: RTL930x led_set count error message tidy up + dev_ print fixups
Whilst testing Hasivo s1100wp-8gt-se LED configuration, several error
messages were presented which didn't indicate which led_set they were
referencing, nor what the value was that caused the invalid configuration.

Migrate to use dev_ print messages for this function.
And tidy up both when the error message is reported (don't show it when
an led_set isn't in the DTS) and what details the message presents.

Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19791
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-21 11:22:11 +02:00
Bevan Weiss
5d44b115f1 realtek: RTL930x/RTL931x led_set defines
Add defines for RTL930x and RTL931x led_set 'modes' (to avoid magic numbers
in dts files).

Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19791
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-21 11:22:11 +02:00
Shiji Yang
43ef1a468c ath79: remove 6.6 kernel patches and configs
Remove old kernel support to prepare for the next LTS release.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19821
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-08-20 23:30:49 +02:00
Shiji Yang
db86a07bdf ath79: switch default kernel to 6.12
We have not received any negative feedback in the past three months.
It's time to switch the default kernel to 6.12.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19821
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-08-20 23:30:49 +02:00
Rosen Penev
4d3a35f368 mac80211: remove rt2x00_platform_data
All of this uses OF now. No need to keep platform data around.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19804
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-20 09:57:46 +02:00
Markus Stockhausen
070d8eb4d5 realtek: mdio: rtl931x: move functions over to bus
This commit repeats the mdio function relocation from the other targets.
In short that means:

- phy read/write functions are moved away from the phy driver
- SerDes read/write functions are moved away from the dsa driver
- All gets consolidated into the mdio driver (inside the ethernet driver)

This is mostly a copy/paste to keep the changes small. The SerDes phy mapping
and the simplification of the central bus functions will come later.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19743
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-19 20:06:08 +02:00
Shiji Yang
3ff8a3dca8 ipq40xx: dts: reduce the maximum SPI clock frequency to 24MHz
The IPQ4019 datasheet indicates that the maximum supported SPI
frequency is 25 MHz. My experiment on SKSpruce WIA3300-20 shows
that exceeding this threshold can lead to instability of SPI
peripheral. Limit the SPI clock frequency to the QSDK recommended
value 24MHz to enhance stability.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19744
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-19 20:04:06 +02:00
Pawel Dembicki
8a22855636 layerscape: add 6.12 testing kernel
The support is done. Let's set 6.12 as testing kernel.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19152
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 19:00:58 +02:00
Pawel Dembicki
5bbb991f96 layerscape: 6.12: refresh kernel config
Done by `make kernel_oldconfig`.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19152
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 19:00:58 +02:00
Pawel Dembicki
5ca632e016 layerscape: kernel: 6.12: refresh patches
Patches 400,701,702 were taken from 6.12 nxp tree.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19152
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 19:00:58 +02:00
Pawel Dembicki
f2a0b275c2 kernel/layerscape: 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/19152
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 19:00:58 +02:00
Pawel Dembicki
c3a94894c9 kernel/layerscape: 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/19152
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 19:00:58 +02:00
Rosen Penev
1180dd6bf7 mt7621: zyxel nwa-ax: set mac address in dts
Support in mt76 has existed for quite a while. Use it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19771
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 18:55:38 +02:00
Markus Stockhausen
992ca859e3 realtek: add RTL8231 driver configuration to kernel build
Now that the driver has been enhanced for RTL931x devices and
the DTS is up to date, activate the needed kernel configuration
for the two RTL931x subtargets.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19776
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 17:31:24 +02:00
Markus Stockhausen
9dbc04785c realtek: add rtl8231-aux to rtl931x.dtsi
The RTL8231 auxiliary controller is not defined in the rtl931x.dtsi.
Additionally the pinmux is configured at the wrong address. Fix
this.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19776
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 17:31:24 +02:00
Markus Stockhausen
2cb7044f79 realtek: rtl8231-aux: add RTL931x support
The auxiliary RTL8231 controller driver is missing RTL931x support.
Add it by defining the proper register and matching compatible.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19776
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 17:31:22 +02:00
Markus Stockhausen
5dbf55bebb realtek: register ethernet device after NAPI context init
Booting Realtek switches via TFTP will have a chance of ~5% to
fail with the following dump on SMP devices. Sample taken from
RTL931x.

[    1.318320] rtl931x_chip_init: init ENCAP done
[    1.323360] rtl931x_chip_init: init MIB done
[    1.328337] rtl931x_chip_init: init ACL done
[    1.333219] rtl931x_chip_init: init ALE done
[    1.344307] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 00000000, ra == 806c5c4c
[    1.356418] Oops[#1]:
[    1.359067] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.40 #0
[    1.366582] Hardware name: Linksys LGS352C
[    1.371226] $ 0   : 00000000 00000001 00000000 80b6cc44
[    1.377179] $ 4   : 836b0540 00000000 00000000 83011d38
[    1.383119] $ 8   : 00000000 ffffefff 00000001 80b08c08
[    1.389071] $12   : ffffffea 83011d34 00000072 00000558
[    1.395060] $16   : 836b0540 00000000 00000100 83011ebf
[    1.401003] $20   : 83011ec0 83011ec8 ffff8b3c 80b00000
[    1.406984] $24   : 00000000 80b08c38
[    1.412922] $28   : 83038000 83011e70 82fb37a0 806c5c4c
[    1.418888] Hi    : 0000014b
[    1.422201] Lo    : c74d8000
[    1.425490] epc   : 00000000 0x0
[    1.429191] ra    : 806c5c4c __napi_poll+0x4c/0x208
[    1.434728] Status: 11000403 KERNEL EXL IE
[    1.439497] Cause : 50800008 (ExcCode 02)
[    1.444040] BadVA : 00000000
[    1.447330] PrId  : 0001a120 (MIPS interAptiv (multi))
[    1.453157] Modules linked in:
[    1.456641] Process swapper/0 (pid: 1, threadinfo=(ptrval), task=(ptrval), tls=00000000)
[    1.465742] Stack : 82faf248 80a8d558 817ed500 ffff8b3a 836b0540 8066a348 82fb2bc0 836b0540
[    1.475209]         82fb3600 00000100 0000012c 806c6274 00000000 00000017 00000002 80196134
[    1.484701]         80b00000 83011ed0 83011eb8 83011e00 83011ec0 83011ec0 83011ec8 83011ec8
[    1.494233]         00000001 81920000 81920000 80aefe4c 836b0000 00000000 00000000 00000001
[    1.503686]         00000100 00000000 83011f20 80aefde0 00000000 8019ac14 80b01550 00000000
[    1.513144]         ...
[    1.515957] Call Trace:
[    1.515996]
[    1.520458] [<8066a348>] rtl93xx_net_irq+0x1a4/0x1ac
[    1.526116] [<806c6274>] net_rx_action+0x18c/0x360
[    1.531576] [<80196134>] __handle_irq_event_percpu+0x58/0x16c
[    1.538111] [<8019ac14>] handle_level_irq+0x1e0/0x1f4
[    1.543870] [<80133588>] handle_softirqs+0x14c/0x2ec
[    1.549488] [<801339e4>] irq_exit+0x84/0xb4
[    1.554183] [<805527dc>] plat_irq_dispatch+0x90/0xdc
[    1.559764] [<801019f0>] except_vec_vi_end+0xc4/0xd0
[    1.565337]

A network interrupt may be received before the device is setup
properly. In this case NAPI structures are missing and __napi_poll()
will find a NULL pointer in n->poll. Avoid this by registering the
device after initialization is complete.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19787
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 17:22:29 +02:00
Markus Stockhausen
9037f815ee realtek: create central DTS macro include
The Realtek DTS's use several macros for convenient phy/port definition.
These are repeated for the RTL83xx targets and most are missing for the
RTL93xx targets. In the near future we want to add high port count
switches with 1GBit Ethernet for them too. As a preparation provide a
central include so the definition is only needed once and is available
for all targets.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19772
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-17 17:19:09 +02:00
Goetz Goerisch
3491a4da6b ipq40xx: remove 6.6 support
Since 6.12 is now default, drop 6.6 support.

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19778
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-08-17 11:12:26 +02:00
Goetz Goerisch
750f2abd88 ipq40xx: switch to kernel 6.12
Let's switch the ipq40xx target to use kernel 6.12 by default.

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19778
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-08-17 11:12:25 +02:00
Markus Stockhausen
a15d07f74b realtek: cleanup documentation
We are using upstream otto timer. Delete some downstream leftovers.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19769
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-14 10:35:39 +02:00
Jonas Jelonek
d0c64a162a realtek: drop downstream rtl93xx i2c driver
Drop our downstream driver in favor of an upstream existing driver which
is available starting from v6.13.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19736
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-13 14:23:35 +02:00
Jonas Jelonek
dc54af8639 realtek: adapt devices to backported i2c driver
Adapt the device tree definitions of rtl93xx devices and the base dtsi
for rtl930x and rtl931x to match with what's expected by the recently
backported RTL9300 I2C driver.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19736
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-13 14:23:35 +02:00
Jonas Jelonek
44655c97bb realtek: backport upstream RTL9300 I2C driver
Backport/add all patches for the upstream RTL9300 I2C driver.

The upstream driver was added in 6.13 and was heavily based on our
downstream driver except for how the multiplexing behaviour is handled.
This driver was working fine with basic SFP operation on RTL930x devices
but there was no support for RTL931x though.

Major advantage over our downstream driver is: The multiplexing
behaviour is handled completely by the driver. Thus, there's no need for
a separate rtl9300-mux driver as we had it downstream. Moreover, this
simplifies the DTS of affected devices a lot since we can now move the
controller definition - which is in the DTS of each device so far - to
the base DTSI.

Currently pending patches are also included because the progress on
getting this upstream seems really slow right now, albeit upstream
maintainers may require several changes to the current state.

These include:
- patches fixing several issues in the driver
- patches doing a refactoring of the driver and adding support for RTL931x

See the commit messages included in each patch to have details on the
changes.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19736
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-13 14:23:35 +02:00
Rosen Penev
cc0ff28f23 mpc85xx: tl-wdr4900: add back 5ghz LED
In the conversion to dts, qca,led-pin was used for both interfaces.
Unfortunately, it's mutually exclusive with gpio-controller which made
it not do anything.

Fixes: 949e1a0 ("mpc85xx: tl-wdr4900: move platform code to dts")

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19758
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-13 09:57:05 +02:00
Zoltan HERPAI
3ded6d2716 sunxi: enable ramdisk feature
Build initramfs images for this target.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-08-11 23:06:24 +02:00
Zoltan HERPAI
8abb6dbf0f sunxi: change target to use FIT kernel images
Modernize the target slightly to use kernel+dtb FIT images in all
subtargets. LZMA compression will be used for the cortexa53 devices,
and we'll stay conservative and use gzip for the cortexa7/a8 devices
due to performance differences.

Tested-on:
 - Linksprite pcDuino v2 (cortexa8 / A10)
 - Olinuxino Micro (cortexa7 / A20)
 - Banana Pi M2 Berry (cortexa7 / V40)
 - Banana Pi P2 Zero (cortexa7 / H2+)
 - Xunlong Orange Pi 2 (cortexa7/ H3)
 - OrangePi PC Zero 2 (cortexa53 / H616)

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2025-08-11 23:06:24 +02:00
Marko Mäkelä
57bd20b390 qualcommax: ipq6018 rework nss_port5 clock to multiple conf
This fixes intermittent dmesg errors
"nss_port5_rx_clk_src: rcg didn't update its configuration."

Signed-off-by: Marko Mäkelä <marko.makela@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/19620
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-11 20:37:17 +02:00
Markus Stockhausen
0724412c58 realtek: RTL838x harden ethernet driver against fuzzying
While checking setup routines for stability and completeness,
random RTL838x SoC I/O areas were intentionally overwritten.
As soon as L2_CTRL_1->FAST_AGE_OUT is set to 1, the system
stalls during bootup. Analysis shows that it loops endlessly
in rtl838x_hw_stop()

/* Flush L2 address cache */
if (priv->family_id == RTL8380_FAMILY_ID) {
	for (int i = 0; i <= priv->cpu_port; i++) {
		sw_w32(1 << 26 | 1 << 23 | i << 5, priv->r->l2_tbl_flush_ctrl);
		do { } while (sw_r32(priv->r->l2_tbl_flush_ctrl) & (1 << 26));
	}

This is exactly the same logic as in the vendor GPL. There
are no hints about possible timeouts or issues. The reason is
still unclear. Nevertheless harden the function for further fuzzy
tests. Do this by resetting the configuration value to its SoC
default.

Additionally convert some shifts to BIT() for better readability.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19679
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-11 15:18:09 +02:00
Coia Prant
e59635668d mediatek: remove loglevel in bootargs
`loglevel=8` causes the kernel to output all logs, including debug logs, at boot time

It is enabled by default on the upstream eval board because it is aimed at developer debugging.

Most devices reference the eval board directly without modification, and the debug log should be hidden at release

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19714
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-11 10:40:26 +02:00
Jan Hoffmann
3e09991c07 realtek: switch Netgear NGE devices to rt-loader
The bootloader on these devices uses 0x81000000 as load address for the
compressed image. Since the kernel uses a load address 0x80100000, this
only leaves a space of 15 MiB for the uncompressed image. For larger
images, the compressed data starts to get overwritten, and at some point
the boot will fail:

    ## Booting image from partition ... 0
    ## Booting kernel from Legacy Image at 81000000 ...
       Version:      9.9.9.9
       Created:      2025-08-07  14:56:09 UTC
       Data Size:    6756645 Bytes = 6.4 MB
       Checksum ... OK
       Uncompressing ... LZMA: uncompress or overwrite error 1 - must RESET board to recover

Currently, initramfs images with default config are already over the
limit. And while they still happen to work regardless, adding additional
packages easily pushes the size so much that the boot fails.

Fix this by switching to rt-loader (which relocates the data to the
upper end of the RAM before decompression). The switch includes regular
kernel images to avoid this becoming an issue again in the future.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19734
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-11 10:38:13 +02:00
Markus Stockhausen
f21475839f realtek: fix stall after restart of otto timer
Once tested this will go upstream.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19468
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-10 22:02:47 +02:00
Harshal Gohel
522294eeef realtek: rtl931x: Fix l2 fdb entry handling
Previous implementation was directly copied from rtl930x and was not
working. Table field offsets are different between rlt931x and rtl930x

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19580
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-10 21:59:02 +02:00
Andrey Safonov
441b37e2db siflower: sf21: fix usb_vbus for Bananapi BPI-RV2
Add usb_vbus ref to usb device.

Signed-off-by: Andrey Safonov <andrey.safonov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19698
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-10 21:51:17 +02:00
Andrey Safonov
73a0366e53 siflower: sf21: fix M.2 power on Bananapi BPI-RV2
Add fixed regulator for M.2 slot for Bananapi BPI-RV2

Signed-off-by: Andrey Safonov <andrey.safonov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19697
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-10 21:50:37 +02:00
Harshal Gohel
a4b8d80050 realtek: rtl931x: Add missing rma_bpdu_fld_pmask
The .rma_bpdu_fld_pmask is not used anywhere in the code for RTL930x nor
RTL931x. But the RTL930x was still initializing this member. To avoid
problems in the future, simply initialize it also on RTL931x.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19569
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-10 14:35:40 +02:00
Harshal Gohel
743f2cd731 realtek: rtl931x: Don't use RTL8xx port flooding initialization
Neither the RTL930x not the RT931x use the BPDU flooding mechanism which
was used for other SoCs. At the same time, the RTL931x must use the same
debugfs initialization function as RTL930x.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19569
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-10 14:35:40 +02:00
Til Kaiser
551a6cef58 x86: add Minisforum MS-A2 Mini PC
This commit renames the network ports of the Minisforum MS-A2
Mini PC: the two 2.5G RJ45 ports are now named lan1 and lan2,
and the two 10G SFP+ ports sfp1 and sfp2.

All four ports are also added to the default lan interface.

--- Hardware Highlights ---
AMD Ryzen™ 9 9955HX/7945HX
Dual DDR5-5600MHz, up to 96GB
2x 10G SFP+, 2x 2.5G RJ45
WiFi 6E, Bluetooth 5.3
Built-in PCIe x16 Slot

Signed-off-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/19689
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-10 12:12:05 +02:00
Markus Stockhausen
07a04d8485 realtek: RTL930x: reorganize mdio functions and SerDes register layout
The RTL930x mdio functions are scattered around the code. Relocate
them to the bus (still inside the ethernet driver). With this change
the phy identification looks into the proper registers. The SerDes
phy identifier (register 2/3) must be changed.

Additionally provide a consistent SerDes register access through the
mdio bus. Until now when a SerDes directly drives a SFP module there
is no clear rule of how to handle its register set that consists of
two parts:

- c22 phy registers 0-15 live in the fiber page (2) of the SerDes
- other SerDes specific registers exist in pages before and after

The mdio bus and other SerDes functions are a wild mix of directly
looking into page 2 or just using self defined methods to access
data.

Adapt the bus to the new consistent phy interface that mixes the
SerDes register set like classic Realtek phys do it.

- Use register 31 as page select (already in the bus)
- Always keep the common registers 0-15 in place and read fiber page
- Map the SerDes internal registers into the upper vendor specific
  registers 16-23 according to the page select register (31).

That gives a register mapping as follows:

+-----------------------+-----------------------+---------------+-------------+
| reg 0x00-0x0f         | reg 0x10-0x17         | reg 0x18-0x1e | reg 0x1f    |
+-----------------------+-----------------------+---------------+-------------+
| SerDes fiber page (3) | real SerDes registers | zero          | SerDes page |
| registers 0 - 15      | in packages of 8      |               | select reg  |
+-----------------------+-----------------------+---------------+-------------+

Example to make it as clear as possible.

SerDes registers on a RTL930x show

Page / Reg   | 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B ...
-------------+----------------------------------------------------------------
0 - SDS      | 0C03 0F00 7060 7106 074D 0EBF 0F0F 0359 5248 0000 0F80 0000 ...
1 - SDS_EXT  | 0000 0000 85FA 8C6D 5CCC 0000 20D8 0003 79AA 8C64 00C3 1482 ...
2 - FIB      | 1140 6189 001C CA40 01A0 0000 0000 0004 0000 0000 0000 0000 ...
3 - FIB_EXT  | 1140 6109 001C CA40 01A0 0000 0000 0004 0000 0000 0000 0000 ...

This translates to this phy layout

             | SerDes fiber registers  normal SerDes registers  zero     p.sel
Page / Reg   | 0x00 0x01 0x02 0x03 ... 0x10 0x11 0x12 0x13 ...  0x18 ... 0x1f
-------------+---------------------------------------------------------------
0            | 1140 6189 001C CA40 ... 0C03 0F00 7060 7106 ...  0000 ... 0000
1            | 1140 6189 001C CA40 ... 5248 0000 0F80 0000 ...  0000 ... 0001
...
4            | 1140 6189 001C CA40 ... 0000 0000 85FA 8C6D ...  0000 ... 0004

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19692
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-10 11:47:30 +02:00
Markus Stockhausen
7cf7f7c6b9 realtek: add NAND targets for RTL93xx
Some known RTL93xx devices like the Linksys LGS328C or LGS352C are
NAND based. These require additional drivers and packages (e.g. UBI).
The current subtargets are already taylored down for devices with
only 16MB flash. Adding features that are not used will only make
the storage situation more complicated.

Add two new subtargets for RTL93xx that include the basic NAND, UBI
and MTD features. To achieve this do the following:

- Create new subtarget folders
- Copy the existing config and makefiles over
- Add the basic additional features
- Mark them as SOURCE-ONLY
- Add empty image makefiles
- Remove unneded NAND/MTD features from existing configs

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19700
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-10 11:46:52 +02:00
Markus Stockhausen
8eea855846 realtek: switch Zyxel GS1900 initramfs recipe to rt-loader
These devices need a tiny (<8MB) initramfs. There are first
occurrences where this fails with newer kernels and diagnostic
packages.

Switch the recipe over to use lzma compression and rt-loader.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19687
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-08 18:29:21 +02:00
Coia Prant
ebee946227 ramips: add support for Hongdian H7920 v40
This is an industrial 4G router equipped with OpenWrt SNAPSHOT OEM
customized version

WARNING: The original firmware device tree is modified from evb
boards, and the device tree name is evb board. This submitted device
tree is a modified version, which deletes the non-this-device parts
and adds GPIO watchdog.

Specification:
- SoC: MediaTek MT7628NN
- Flash: 16 MB
- RAM: 128 MB
- Power: DC 5V-36V 1.5A
- Ethernet: 1x WAN [slot not install], 1x LAN (10/100 Mbps)
- Wireless radio: 802.11n 2.4g-only [antenna not install]
- LED:
  System/Power (RUN): GPIO/37 active-low
  Modem: GPIO/3 active-low
  RF (Modem Signal): GPIO/2 active-low
- Button:
  WPS / RESET: GPIO/11 active-low
- UART: 1x UART on PCB - 115200 8N1
- Serial / COM: 1X RS232/RS485 on board (GPIO/6 hi:RS485 lo:RS232)
- GPIO Watchdog: GPIO/0 mode=toggle timeout=1s
- Modem: 1x Built-in modem on board (Power: GPIO/4 active-high)
- PCIe: 1x miniPCIe for modem [slot not install]
- SIM Slots: 1x SIM Slots

Issue:
- Factory partition not store mac address on original firmware

Flash instruction:
Using SSH/Telnet:
1. Connect the board to the computer via RJ45 Ethernet
2. Login 192.168.8.1 with root password "superzxmn" (SSH Port 22, Telnet Port 5188)
3. Download openwrt firmware on the computer.
4. Use scp or sftp put firmware to board /tmp
5. Use command "mtd -r write openwrt-ramips-mt76x8-hongdian_h7920-v40-squashfs-sysupgrade.bin firmware"
   to flash

Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-hongdian-h7920-v40-and-flash.html

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Tested-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17726
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-08 18:15:51 +02:00
Andrii Kuiukoff
2fea2ede63 mediatek: add support for CreatLentem CLT-R30B1
CreatLentem CLT-R30B1 is a wireless WiFi 6 router.
This device uses the CLT-R30B1_0824_V1.1 board
shared by EDUP RT2980, Dragonglass DXG21,
and other diamond-shaped 5-antenna routers.

Specification
-------------
- SoC          : MediaTek MT7981B dual-core ARM Cortex-A53 1.3 GHz
- RAM          : DDR3 256 MiB
- Flash        : SPI-NAND 128 MiB (ESMT F50L1G41LB)
- WLAN         : MediaTek MT7976CN dual-band WiFi 6
  - 2.4 GHz    : b/g/n/ax, MU-MIMO (2x 5 dBi antennas)
  - 5 GHz      : a/n/ac/ax, MU-MIMO (3x 5 dBi antennas)
- Ethernet     :
  - LAN x3     : 10/100/1000 Mbps (MediaTek MT7531AE)
  - WAN x1     : 10/100/1000 Mbps (MT7981 internal PHY)
- UART         : through-hole on PCB
  - assignment : (RX), (TX), (GND), [3.3V]
  - settings   : 115200n8
- Buttons x2   : Mesh/WPS, Reset
- LEDs x2      : Status (Red, Green)
- Power        : 12 VDC, 1 A, 2.1*5.5 mm

Important notes
---------------
The device is supplied in two variants.
The main difference is the size of the mtd5 (ubi)
partition in the flash layout: 64M or 112M.
112M version: Has ImmortalWrt firmware installed with LuCI WebUI.
64M version: Has stock firmware based on OpenWrt,
with the WaveLink/GL.iNet WebUI and older U-Boot
compared to the 112M version.

Flash instructions for 112M version
-----------------------------------
Follow the standard OpenWrt sysupgrade procedure without saving data.
Use the clt-r30b1-112m-squashfs-sysupgrade.bin image.
All checks should pass - don't proceed if a "not supported"
warning is issued.

Flash instructions for 64M version
----------------------------------
WebUI Method:

1. Prepare the upgrade image with clt-r30b1-squashfs-sysupgrade.bin
   using the script: make_staged_upgrade_tar.sh
   or use the prepared image: staged_openwrt_upgrade.bin
   Downloaded from:
   https://github.com/andros-ua/owrt-misc/tree/main/clt-r30b1
2. Install the prepared image using the stock WebUI update page.
3. Press and hold the reset button after reboot
   to wipe the stock config and gain access.

SSH Method:

1. Connect via SSH using dg:ivanlee credentials.
2. Upload the clt-r30b1-squashfs-sysupgrade.bin image.
3. Use the command: sysupgrade -n
   All checks should pass - don't proceed if a "not supported"
   warning is issued.

Return to stock
---------------
Flash a backup of the ubi mtdblock (mtd5)
using the OpenWrt sysupgrade method.

Recovery
--------
Both variants:
Connect UART and use the U-Boot menu to flash the firmware image
or boot an OpenWrt initramfs image.

112M with newer U-Boot:
Power on the router while pressing the mesh button for 3 seconds.
The U-Boot Flash WebUI will be available at http://192.168.1.1

MAC Addresses:
-------------------------------------------------------
| Interface    |  MAC              | Source           |
---------------|-------------------|-------------------
| LAN          | B4:4D:43:D1:xx:xx | Factory, 0x2A    |
| WAN          | B4:4D:43:D1:xx:xx | Factory, 0x24    |
| WLAN 2.4 GHz | B4:4D:43:D2:xx:xx | Factory, 0x4     |
| WLAN 5 GHz   | B4:4D:43:D2:xx:xx | Factory, 0x4 + 1 |
-------------------------------------------------------

Signed-off-by: Andrii Kuiukoff <andros.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19534
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-08 18:12:50 +02:00
Markus Stockhausen
5f06b8ebbc realtek: dsa: rename tagged_ports to member_ports
The current variables tagged_ports and untagged_ports suggest that
these are distinct and describe only the ports in each of these
configuration types.

That is wrong. The hardware is configured via member ports and
untagged ports. The first one being a superset of the second.
Rename the variables to reflect that.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19684
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-08 18:04:57 +02:00
Harshal Gohel
f6603de71d realtek: rtl93xx: Add learning and flooding enable/disable
Both RTL930x and RTL931x were missing the code to support enabling and
disabling MAC address learning and unknown unicast flooding on a per-port
basis.

* rtl93*x_enable_learning() allows toggling of dynamic MAC learning on
  individual ports by modifying the L2 learning constraint control
  register.
* rtl93*x_enable_flood() provides the ability to control unknown unicast
  flooding behavior, disabling forwarding when set. If it is enabled, it
  will just forward it. If it is disabled, packets will simply be dropped.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19581
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-08 13:56:58 +02:00
Markus Stockhausen
1a235a7f0b mediatek: filogic: Add support for Wavlink WL-WN551X3
Hardware
--------
- SOC: MediaTek MT7981B
- RAM: 256MB DDR3
- FLASH: 128MB SPI-NAND WinBond W25N01GVZEIG
- NETWORK: 2x1Gb Lan 1x1Gb Wan
- WIFI: MediaTek MT7981B 2x2 DBDC 802.11ax 2T2R (2.4/5)
- LEDs: 3x WAN/LAN (green) 2x STATUS (red/blue)
- USB: 1x XHCI

Installation via Webinterface
-----------------------------

1. Rename OpenWrt sysupgrade bin to wavlink_wl-wn551X3-squashfs-sysupgrade.bin
   The uppercase chars 551X3 are essential and checked by web interface.
2. Logon to webinterface
3. Go to network configuration -> mode selection
4. Choose mode "LAN bridge/access point"
5. Save configuration (maybe network reconfig needed)
6. Go to system upgrade
7. Choose local upgrade and provide renamed sysupgrade file
8. Start upgrade and wait for completion
9. Logon to OpenWrt (network config is preserved during upgrade)

Boot initramfs via TFTP & console
---------------------------------

1. Connect switch to network via LAN1 or LAN2
2. Power on switch
3. Press ESC until prompt reached "MT7981>"
4. Set own IP "setenv ipaddr 192.168.x.y"
5. Set TFTP IP "setenv serverip 192.168.a.b"
6. Set memory address "setenv loadaddr 0x46000000"
7. Download image "tftpboot openwrt-mediatek-filogic-wavlink_wl-wn551x3-initramfs.itb"
8. Boot image "bootm"

Notes
-----

- The red/blue LEDs give a background illumination to the top of the
  case. The red LED is totally disabled to avoid noisy blinking.

- Aside from the design and the different LED colors & placements
  the hardware and partitioning  matches the WAVLINK WL-WN586X3 Rev B.
  Therefor a common DTSI was prepared.

MAC Addresses (same as stock)
-----------------------------

LAN   : 80:3F:5D:xx:xx:B1 (hw, 0x44e(text))
WAN   : 80:3F:5D:xx:xx:B2 (hw, 0x460(text))
2.4GHz: 80:3F:5D:xx:xx:B1 (Factory, 0x4 (hex))
5GHz  : driver auto generated

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19515
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-08 12:22:38 +02:00
Jan Taczanowski
8a9b9e928e mpc85xx: HPE MSM460 add HPE MSM430 alias
Define MSM430 as alternative name, to explicitly show the device is
supported using existing image (MSM460).

I can confirm that the guide from
https://github.com/blocktrron/msm460-flashing works perfectly fine with
the HP MSM430 as well.

In fact, the MSM430 running the original firmware operates as
a 2x3:2 access point, but after flashing it with OpenWRT, it functions
as a 3x3:3 access point — just like the MSM460 model.

It seems that the MSM430 is essentially the same hardware as the MSM460,
with limitations imposed by the original (HP) software.

Signed-off-by: Jan Taczanowski <jan.taczanowski@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19540
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 18:53:49 +02:00
Rani Hod
cbc2cdbb80 ramips: mt76x8: add support for Wodesys WD-R1208U
This commit adds support for a dual-band AC1200 wall plug
manufactured by Shenzhen Century Xinyang Tech Co., Ltd.

SoC:     Mediatek MT7628AN (MIPS 24KEc single core, 580 MHz)
RAM:     128 MiB DDR2 (Hynix HY5PS1G1631C)
ROM:     8 MiB SPI NOR (Zbit ZB25VQ64ASIG)
Wired:   one FE RJ45 port (+ an unpopulated footprint for a 2nd)
WiFi:    Mediatek MT7612E
Ant.:    four 2 dBi external antennas (two 2.4GHz, two 5 GHz)
LEDs:    - Power    (green, always on)
         - 2.4G     (green, controlled by MT7628)
         - 5G       (green, controlled by MT7612)
         - Extender (green, GPIO 37, used as status LED)
         - LAN      (green/yellow, controlled by RT3050 ESW)
Buttons: WPS and reset (both connected to GPIO 38)
Power:   5V 2-pin JST-XH on main PCB
         110/220V AC to 5V 1.5A DC on auxiliary PCB
UART:    57600 8n1 3.3v, holes available on the PCB as J5
         pinout is (Gnd) (Tx) (Rx)
MAC:     1C:BF:CE:xx:xx:xx       (2.4 GHz, label)
         1C:BF:CE:xx:xx:xx + 1   (LAN)
         1C:BF:CE:xx:xx:xx + 2   (WAN, not in use)
         1C:BF:CE:xx:xx:xx + 3   (5 GHz)

Original firmware is Chaos Calmer 15.05.01 (kernel 3.10.108)
with a few custom packages and a non-LuCI web interface.
Telnet is enabled, requiring an unknown root password [1].
Root password is also needed to access the router via UART console,
but passwordless telnet can be enabled via a trivial web exploit [2]
and then the root password can be removed by editing `/etc/shadow`.

Installation: Upload `sysupgrade` binary via web interface at
  `http://192.168.188.1/settings.shtml`. Alternatively, remove
  root password and use u-boot menu to flash image via TFTP.

Notes:
- Device model in Chaos Calmer is "mtk-apsoc-demo".
- It is sold under several brands, e.g., Fenvi and Linkavenir.
  It is available in two colors: white and black.
- PCB is marked "WD206AD v1.0".
- Instead of a standard ethernet transformer, the PCB has a few tiny
  SMD coils.
- The housing is identical to the one used by a 2020 model,
  WD-R1203U, which is RTL8812-based. The older model has an FCC
  listing with external and internal images: ZNPWD-R1203U.
  The FCC listing contains a letter [3] claiming WD-R1203U and
  WD-R1208U are internally identical, but evidently they are not.

[1] root:$1$7rmMiPJj$91iv9LWhfkZE/t7aCBdo.0:18388:0:99999:7:::
    This is the same hash as in Wodesys WD-R1802U.
    There are other root password hashes in `/etc/shadow_sf` and
    `/etc/shadow_yn`.
[2] curl -X POST http://192.168.188.1/cgi-bin/adm.cgi \
    -d page=Lang -d langType="en;killall telnetd;telnetd -l /bin/sh"
[3] https://fcc.report/FCC-ID/ZNPWD-R1203U/4767033

Signed-off-by: Rani Hod <rani.hod@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19535
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 18:48:54 +02:00
Harshal Gohel
4c4cecab2f realtek: rtl93xx: Add GPIO access register definitions
mach-rtl83xx.h contained the required register definitions for older SoC
families but was missing it for RTL930x and RTL931x.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19574
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 18:40:30 +02:00
Sven Eckelmann
92489f50c7 realtek: rtl931x: Fix size of TRK_MBR_CTRL group block
Each MBR ctrl block has 64 bits to store the 56 possible ports. The offsets
between the groups is therefore also 64 bit.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19574
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 18:40:30 +02:00
Harshal Gohel
62938204db realtek: rtl931x: Add smi_poll_ctrl
The comment incorrectly stated that RTL931X doesn't have smi_poll_ctrl. But
there is actually a register for using it.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19574
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 18:40:30 +02:00
Harshal Gohel
56499702a3 realtek: rtl931x: Sync family parameters with RTL930x
Some of the parameters added to RTL9300_FAMILY_ID are missing for
RTL9310_FAMILY_ID. Simply add the missing ones to keep sharing code between
the two SoCs.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19574
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 18:40:30 +02:00
Harshal Gohel
e45d783bce realtek: rtl931x: Fix VLAN tagging and untagging
* In RTL931x, bit 31 of the (4th column) of 802_1Q_VLAN_QINQ table
  indicates the validity of l2 tunnel. Before bit 63 (3rd column)
  was being checked for validity of l2 tunnel.

* The untagged_ports requires 64 bits to represent 56 ports. Do not
  store u64 in u32 variable

* First 24 ports are represented in the 2nd register not just first 20

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19576
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 18:33:09 +02:00
Jiasheng Zhu
536a25ebf8 mediatek: add support for OpenFi 6C
OpenFi 6C is a portable Wi-Fi 6 travel router based on MediaTek MT7981B+MT7976CN.

Two slightly different versions have been sold. The V1 board has a green color and lacks the modem LED. The V2 board is black and has a LED for the modem. The firmware should work on both of them.

Specifications:
- SoC: MediaTek MT7981B (Filogic 820) 1.3GHz dual-core ARM Cortex-A53
- RAM: 1GB DDR4
- Flash: 256MB SPI NAND
- Wireless: 2.4GHz/5GHz 802.11ax
- Ethernet: 1x 10/100/1000M LAN
- USB: 1x USB 3.0 Type-A port
- Expansion: M.2 slot for 5G modem
- Cooling: PWM-controlled fan
- Buttons: Reset, Mode switch
- LEDs: System, Ethernet, 5G WiFi, Modem status

**Installation via U-Boot web page**

1. Set static IP 192.168.21.2/255.255.255.0 on your computer.
2. Connect to the Ethernet port and hold the reset button while booting the device. Wait for 6-8 seconds, and release the reset button.
3. Open U-boot web page on your browser at http://192.168.21.1
4. Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
5. Wait for automatic reboot.

**Installation via sysupgrade**

Flash the sysupgrade file via LuCI upgrade page without saving the settings.

Signed-off-by: Jiasheng Zhu <newbanyaya@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19512
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 18:17:10 +02:00
Shiji Yang
1199a7aad6 ramips: add support for SIM SIMAX1800U
SIM SIMAX1800U has the similar hardware design as the SIMAX1800T. The
only difference is the Ethernet portmap.

Specification
-------------
- SoC       : Mediatek MT7621
- RAM       : 256 MiB DDR3
- Flash     : 128 MiB NAND Flash
- WLAN      : Mediatek MT7905 DBDC
  - 2.4 GHz : 2x2 MIMO WiFi6
  - 5 GHz   : 2x2 MIMO WiFi6
- Ethernet  : MT7621 built-in 10/100/1000 Mbps 1x WAN; 3x LAN
- UART      : 3.3V, 115200n8
- Buttons   : 1x RESET; 1x WPS/MESH
- LEDs      : 1x Multi-Color(Blue;Green;Red)
- Power     : DC 12V1A
- CMIIT ID  : 2022AP7163
- TFTP IP   :
  - server  : 192.168.1.254
  - router  : 192.168.1.28

TFTP Installation(recommend)
------------
1. Set local tftp server IP "192.168.1.254" and NetMask "255.255.255.0".
2. Rename initramfs-kernel.bin to "factory.bin" and put it in the root
   directory of the tftp server. tftpd64 is a good choice for Windows.
3. Remove all Ethernet cables and WiFi connections from the PC, except
   for the one connected to the SIMAX1800U. Start the TFTP server, plug
   in the power adapter and wait for the OpenWrt system to boot.
4. Backup "firmware" partition and rename it to "firmware.bin". We need
   it to back to the stock firmware.
5. Use "fw_printenv" command to list envs. If "firmware_select=2" is
   observed then set u-boot env variable via command:
   `fw_setenv firmware_select 1`
6. Apply sysupgrade.bin in OpenWrt LuCI.

Web UI Installation
------------
1. Apply update by uploading initramfs-factory.bin to the web UI.
2. Use "fw_printenv" command to list envs. If "firmware_select=2" is
   observed then set u-boot env variable via command:
   `fw_setenv firmware_select 1`
3. Apply squashfs-sysupgrade.bin in OpenWrt LuCI.

Return to Stock Firmware
----------------------------
  Restore the backup firmware partition in the installation step 4.

MAC addresses
-------------
+---------+-------------------+
|         | MAC example       |
+---------+-------------------+
| LABEL   | 98:xx:xx:xx:xx:b2 |
| LAN     | 98:xx:xx:xx:xx:b5 |
| WAN     | 98:xx:xx:xx:xx:b2 |
| WLAN2G  | 98:xx:xx:xx:xx:b4 |
| WLAN5G  | 9a:xx:xx:xx:xx:b4 |
+---------+-------------------+

Tips:
-----------
  User can use `TFTP Installation` method to recover a brick device.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19455
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 17:41:54 +02:00
Felix Golatofski
9ce23ac840 ath79: fix LED GPIOs for COMFAST CF-EW71 v2
The vendor DTS defined incorrect GPIOs for the LEDs, which caused them
to not function properly. Initially, the WAN, WLAN LEDs appeared to
work, but further testing showed that they were non-functional.

This patch corrects the GPIO assignments in the DTS, restoring full LED
functionality including blinking, except the power LED which cannot be
software controlled.

Tested on a CF-EW71 v2 unit.

Fixes: ee3a6adc6c ("ath79: add support for Comfast CF-EW71 v2")
Signed-off-by: Felix Golatofski <git@xdfr.de>
Link: https://github.com/openwrt/openwrt/pull/19665
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 17:35:59 +02:00
Issam Hamdi
feec7cf34d realtek: dsa: rtl83xx: flush scheduled work on removal
The workqueue items don't need to be processed directly when they are
scheduled. It can happen that they are simply processed at a much later
time. It is therefore necessary to ensure that all workqueue items of a
driver are no longer being processed before the driver (or structures of
this driver) are destroyed.

When skipping this step, the driver driver can cause a kernel Oops on
reboot.

Unfortunately, it is not recommended [1] to flush items out of the system
workqueue - simply because this can cause deadlocks. The driver itself must
have a private workqueue which is then flushed.

[1] https://lkml.kernel.org/r/49925af7-78a8-a3dd-bce6-cfc02e1a9236@I-love.SAKURA.ne.jp

Signed-off-by: Issam Hamdi <ih@simonwunderlich.de>
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19570
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 17:29:14 +02:00
Harshal Gohel
6473e3ed5e realtek: rtl931x: Fix link status get not fetching correct status
Just like rtl930x, rtl931x also requires two reads to fetch current link
status.

While at it, rename the function to a proper naming scheme.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Co-developed-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Co-developed-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19578
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 16:01:51 +02:00
Harshal Gohel
445af8c038 realtek: rtl930x: Fetch link status for all ports in switch IRQ
Link status needs to be read twice, and a single register value is
enough for determining link status for all the ports

It is not necessary to go through each potential port separately and later
actually identify for which ports the interrupt actually was. The helper
for_each_set_bit() directly iterate through all set bits.

While at it, rename the function to a proper naming scheme.

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Co-developed-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19578
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 16:01:51 +02:00
Harshal Gohel
9ccfca3303 realtek: dsa: enhance pcs_get_state() for RTL93xx
Currently the SerDes driven SFP ports give strange ethtool readings
on RTL93xx 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.

Suggested-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19575
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 15:50:01 +02:00
Harshal Gohel
2645c4afbb realtek: rtl93xx: Do not use media register to get link status
The media_sts register only shows type of link, fiber/copper,
and has nothing to do with the link status

Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19575
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 15:50:01 +02:00
Steve Wavler
4880e8e338 x86: add board mapping for Sophos XG 210r3
Sophos XG 210r3 is a rackmounted x86 based firewall with 6 RJ-45 gigabit
ethernet ports (eth0-5) and 2 SFP gigabit ethernet ports (eth6, eth7)
all running Intel NICs supported by igb driver. This board update maps
eth0 (left most RJ-45 port) as wan and eth1-7 as lan.

Signed-off-by: Steve Wavler <trenchcoatjedi@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19647
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 14:07:42 +02:00
Markus Stockhausen
17822d5d18 realtek: use consistent definition in DTS for SFP(+) ports
We are slowly getting to the point where the mdio driver will be
carved out from the ethernet driver. Since the beginning it had
the feature to hand out SFP serdes as phys. So one can access
them from the phy driver. This will be kept during the final
migration and it even will provide a consistent interface for the
phy/serdes registers.

With this being done we need to identify how to handle the affected
ports in a generic way for all targets. Doing first things first,
this starts with a consistent DTS. Currently we have:

for RTL838x + Zyxel XGS1210:
  phy-mode = "1000base-x"
  managed = "in-band-status"
  phy-handle = ...

for all other RTL93x devices:
  phy-mode = "10gbase-r"
  managed = "in-band-status"
  pseudo-phy-handle = ...

Looking at the phylink kernel code one can see a nifty detail.
There is dynamic phy bringup depending on the mode.

int phylink_fwnode_phy_connect(struct phylink *pl,
                               const struct fwnode_handle *fwnode,
                               u32 flags)
{
        struct fwnode_handle *phy_fwnode;
        struct phy_device *phy_dev;
        int ret;

        /* Fixed links and 802.3z are handled without needing a PHY */
        if (pl->cfg_link_an_mode == MLO_AN_FIXED ||
            (pl->cfg_link_an_mode == MLO_AN_INBAND &&
             phy_interface_mode_is_8023z(pl->link_interface)))
                return 0;
        ...
}

Where 802.3z means 1000base-x or 2500base-x. Aligning this with
IEEE specs it means essentially:

- 10gbase-r defined ports with phy-handle must statically bring up
  a phylink from the beginning that immediately depends on a
  phy read_status() implementation.

- 1000base-x/2500base-x defined ports will dynamically bringup a
  phylink during link detection regardless of a phy-handle. So
  it usually runs at the moment when a SFP has been plugged in.

We currently still rely on a phy-handle but do not want to bring
up the phy immediately. Commit 4457c1eee4 ("realtek: rtl93xx:
support SFPs with phys") tried to fix exactly that error for
10gbase-r definied ports. Kernel shows "sfp sfp-p8: sfp_add_phy
failed: -EBUSY" in that case.

But it did it in the wrong way. It implemented a workaround by
introducing a DTS property "pseudo-phy-handle". Instead it
should have simply converted the DTS nodes to 1000base-x.

Revert the commit and fix the DTS with wrong definitions. From
now on we have a consistent SFP definition throughout all DTS
and targets.

Aside from the positive effect this setting has it is more or
less an arbitrary speed definition. When plugging in the SFP the
real speed will be choosen dynamically.

Fixes: 4457c1eee4 ("realtek: rtl93xx: support SFPs with phys")
Tested-By: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19648
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 13:47:27 +02:00
Aleksander Jan Bajkowski
a0e3998b48 lantiq: replace patches with upstream version
Patches 12 and 13 have been superseded by patch 12. Other patches
have no significant changes.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/19675
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-07 13:36:49 +02:00
Rosen Penev
03542312f7 lantiq: use nvmem for bthomehub v5a
Userspace handling of both calibration and mac addresses is deprecated.

Also fixed calibration size for ath9k. AR9287 uses 3d8 for its size.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17289
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-06 23:42:43 +02:00
Markus Stockhausen
2c501d9db9 realtek: rtl930x: convert Hasivo S1100W to lzma only.
The current build recipe creates a lzma based initramfs and
a gzip based sysupgrade (installation) image. No need to
use different compression methods. Use lzma for both.

Tested-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19669
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-06 15:22:52 +02:00
Jan Hoffmann
2a9f0db76f realtek: extend SoC information
Add SoC revision, CPU part number, and a flag for engineering samples to
the rtl83xx_soc_info structure.

Also extend the system type string to include this information.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19653
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-06 13:41:51 +02:00
Jan Hoffmann
368dab7c7a realtek: move and clean up CHIP_INFO register definitions
Move the definitions to mach-rtl83xx.h, so they can be used during init
to read more detailed SoC information. Also rename the RTL931X register,
as it has the same address on all RTL93xx.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19653
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-06 13:41:51 +02:00
Jan Hoffmann
d469690b83 realtek: simplify SoC detection
Read model name from the register instead of using hard-coded values.

Also remove detection of the unsupported Realtek ESW/SSW SoCs. The Fast
Ethernet variants of the Maple and Cypress series stay for now, but are
moved to the RTL8380/RTL8390 families.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19653
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-06 13:41:51 +02:00
Jonas Jelonek
bd861f05cc realtek: use lzma recipe for TP-Link TL-ST1008F v2.0
Use the lzma recipe for the device for both initramfs and sysupgrade to
save some flash space due to smaller image. U-Boot build on this device
has native lzma support.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19657
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-06 10:29:15 +02:00
Markus Stockhausen
e0ba4cf086 realtek: rtl930x: move serdes functions over to mdio bus
The migration of the RTL930x mdio/serdes access functions over to the
mdio bus is a little more complicated than for RTL83xx. There are several
places where the serdes is accessed directly. So do it in two steps. With
this first step:

- use the rtmdio prefix for the serdes reader/writer functions
- move the functions over to the bus (inside the ethernet driver)
- Adapt all callers.

This is not only a copy/paste but the serdes access will be hardened too.
For this:

- put a mutex around the read/write functions because we have only
  indirect register access through a mdio style bus.
- Verify input values to avoid data mess.

Tested-by: Bjørn Mork <bjorn@mork.no>
Tested-by: Jan Hoffmann <jan@3e8.eu>
Tested-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19662
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-06 10:10:58 +02:00
Aleksander Jan Bajkowski
9d10907718 lantiq: remove 6.6 support
Since 6.12 is now default, drop 6.6 support.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/19682
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-08-05 23:25:26 +02:00
Aleksander Jan Bajkowski
1ab585faf0 lantiq: switch to kernel 6.12
Let's switch the lantiq target to use kernel 6.12 by default.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/19682
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-08-05 23:25:26 +02:00
Stefan Kalscheuer
6738761f7e mvebu: switch to kernel 6.12
Update default kernel version to 6.12 and drop configs and patches for
kernel 6.6.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/19666
Signed-off-by: Nick Hainke <vincent@systemli.org>
2025-08-04 22:57:18 +02:00
Markus Stockhausen
5584e2f6a7 realtek: rtl930x: enable SMP
Like RTL839x the RTL930x SoCs have multithreading built in.
Activate it in the kernel configuration.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19624
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-04 16:01:49 +02:00
Markus Stockhausen
afa4662ed0 realtek: RTL839x: reorganize mdio functions and SerDes register layout
The RTL839x mdio functions are scattered around the code. Relocate
them to the bus (still inside the ethernet driver).

Additionally provide a consistent SerDes register access through the
mdio bus. Until now when a SerDes directly drives a SFP module there
is no clear rule of how to handle its register set that consists of
two parts:

- c22 phy registers 0-15 live in the fiber page (2) of the SerDes
- other SerDes specific registers exist in pages before and after

The mdio bus and other SerDes functions are a wild mix of directly
looking into page 2 or just using self defined methods to access
data.

Adapt the bus to the new consistent phy interface that mixes the
SerDes register set like classic Realtek phys do it.

- Use register 31 as page select (already in the bus)
- Always keep the common registers 0-15 in place and read fiber page
- Map the SerDes internal registers into the upper vendor specific
  registers 16-23 according to the page select register (31).

That gives a register mapping as follows:

+-----------------------+-----------------------+---------------+-------------+
| reg 0x00-0x0f         | reg 0x10-0x17         | reg 0x18-0x1e | reg 0x1f    |
+-----------------------+-----------------------+---------------+-------------+
| SerDes fiber page (3) | real SerDes registers | zero          | SerDes page |
| registers 0 - 15      | in packages of 8      |               | select reg  |
+-----------------------+-----------------------+---------------+-------------+

Example to make it as clear as possible.

SerDes registers on a RTL839x show

Page / Reg   | 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B ...
-------------+----------------------------------------------------------------
0 - SDS      | 0C03 0F00 7060 7106 074D 0EBF 0F0F 0359 5248 0000 0F80 0000 ...
1 - SDS_EXT  | 0000 0000 85FA 8C6D 5CCC 0000 20D8 0003 79AA 8C64 00C3 1482 ...
2 - FIB      | 1140 6189 001C CA40 01A0 0000 0000 0004 0000 0000 0000 0000 ...
3 - FIB_EXT  | 1140 6109 001C CA40 01A0 0000 0000 0004 0000 0000 0000 0000 ...

This translates to this phy layout

             | SerDes fiber registers  normal SerDes registers  zero     p.sel
Page / Reg   | 0x00 0x01 0x02 0x03 ... 0x10 0x11 0x12 0x13 ...  0x18 ... 0x1f
-------------+---------------------------------------------------------------
0            | 1140 6189 001C CA40 ... 0C03 0F00 7060 7106 ...  0000 ... 0000
1            | 1140 6189 001C CA40 ... 5248 0000 0F80 0000 ...  0000 ... 0001
...
4            | 1140 6189 001C CA40 ... 0000 0000 85FA 8C6D ...  0000 ... 0004
...

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19634
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-04 10:43:17 +02:00
Hauke Mehrtens
b1ce49292c ipq40xx: Refresh kernel patches
Make the patches apply cleanly again.

Fixes: 991dd403d3 ("kernel: improve pppoe performance")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-03 15:44:57 +02:00
Joe Holden
c95a08b1c5 realtek: Zyxel GS1900-48 dts fixes
* Use SDS for phy 48/49
 * Use correct link/phy settings for SFP ports
 * Remove read-only flag from u-boot env so fw_setenv actually works

Signed-off-by: Joe Holden <jwh@zorins.us>
Link: https://github.com/openwrt/openwrt/pull/19596
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-08-03 15:33:36 +02:00
Felix Fietkau
991dd403d3 kernel: improve pppoe performance
- drop tx qdisc
- implement rx GRO support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-08-03 06:22:59 +02:00
Markus Stockhausen
9dddc0bed0 realtek: mdio: RTL838x: create new SerDes phy register layout
When a SerDes directly drives a SFP module there is no clear rule of
how to handle its register set that consists of two parts:

- c22 phy registers 0-15 live in the fiber page (2) of the SerDes
- other SerDes specific registers exist in pages before and after

The mdio bus and other SerDes functions are a wild mix of directly
looking into page 2 or just using self defined methods to access
data.

Provide a consistent phy interface that mixes the SerDes register
set like classic Realtek phys do it.

- Use register 31 as page select (already in the bus)
- Always keep the common registers 0-15 in place and read fiber page
- Map the SerDes internal registers into the upper vendor specific
  registers 16-23 according to the page select register (31).

That gives a register mapping as follows:

+-----------------------+-----------------------+---------------+-------------+
| reg 0x00-0x0f         | reg 0x10-0x17         | reg 0x18-0x1e | reg 0x1f    |
+-----------------------+-----------------------+---------------+-------------+
| SerDes fiber page (3) | real SerDes registers | zero          | SerDes page |
| registers 0 - 15      | in packages of 8      |               | select reg  |
+-----------------------+-----------------------+---------------+-------------+

Example to make it as clear as possible.

SerDes registers on a RTL838x show

Page / Reg   | 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B ...
-------------+----------------------------------------------------------------
0 - SDS      | 0C03 0F00 7060 7106 074D 0EBF 0F0F 0359 5248 0000 0F80 0000 ...
1 - SDS_EXT  | 0000 0000 85FA 8C6D 5CCC 0000 20D8 0003 79AA 8C64 00C3 1482 ...
2 - FIB      | 1140 6189 001C CA40 01A0 0000 0000 0004 0000 0000 0000 0000 ...
3 - FIB_EXT  | 1140 6109 001C CA40 01A0 0000 0000 0004 0000 0000 0000 0000 ...

This translates to this phy layout

             | SerDes fiber registers  normal SerDes registers  zero     p.sel
Page / Reg   | 0x00 0x01 0x02 0x03 ... 0x10 0x11 0x12 0x13 ...  0x18 ... 0x1f
-------------+---------------------------------------------------------------
0            | 1140 6189 001C CA40 ... 0C03 0F00 7060 7106 ...  0000 ... 0000
1            | 1140 6189 001C CA40 ... 5248 0000 0F80 0000 ...  0000 ... 0001
...
4            | 1140 6189 001C CA40 ... 0000 0000 85FA 8C6D ...  0000 ... 0004

For now just do it for RTL838x devices.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-08-02 11:42:49 +02:00
FUKAUMI Naoki
f13ddfb0cf rockchip: Add Realtek RTL8821CU support for the Radxa ROCK Pi E v3
There is a variant of the Radxa ROCK Pi E v3 equipped with the Realtek
RTL8821CU. Add the kmod-rtw88-8821cu package for it.

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/18310
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2025-08-01 15:52:26 +03:00
Markus Stockhausen
40d70c9c81 realtek: dsa: do not open code PHY access
The DSA has a link to the MDIO bus and already uses the read/write functions
that are provided. In parallel the dsa_switch_ops structure provides an
interface for phy_read and phy_write. These are still open-coded and sadly
circumvent the bus. Simplify the implementation and avoid inconsistencies by
reusing the existing bus infrastructure.

Additionally, remove two unused MMD header definitions as a quick win.

Reported-by: Jan Hoffmann <jan@3e8.eu>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19548
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-31 22:00:25 +02:00
Harshal Gohel
960ad676c1 realtek: rtl931x: Fix printing of port matrix
The function rtl93xx_setup() is called by both RTL930x and RTL931x. But
only the RTL930x specific function to print port matrix was called.
Unfortuntaly, RTL931x needs a different function to access the correct
registers to retrieve the port matrix information.

It is therefore necessary differentiate in rtl93xx_setup between the
SoC families before calling the appropriate function.

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:24 +02:00
Harshal Gohel
b61fda1035 realtek: rtl931x: Update irq mask to cover all ports
The RTL931x has 56 (0-55) non-CPU ports. To receive updates about the port
state, it is therefore necessary to enable the interrupts for all these
ports.

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
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