Commit Graph

34842 Commits

Author SHA1 Message Date
Zhihao Xu 6a7cb7b65d kernel/starfive: create files for v6.18 (from v6.12)
This is an automatically generated commit.

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

Signed-off-by: Zhihao Xu <ngc7331@outlook.com>
2026-04-21 14:49:35 +02:00
Xiao Qian 445488e8b8 mediatek: fix MAC address assignment for ZBT Z8102AX V2
label: f8:5e:3c:99:95:c0

wifi-2.4G f8 5e 3c 99 95 be
wifi-5.8G f8 5e 3c 99 95 bf
eth0-lan  f8 5e 3c 99 95 c0
eth1-wan  f8 5e 3c 99 95 c1

:~# hexdump -C /dev/mtd2 | more
00000000  81 79 00 00 f8 5e 3c 99  95 be f8 5e 3c 99 95 bf  |.y...^<....^<...|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 f8 5e 3c 99  95 c1 f8 5e 3c 99 95 c0  |.....^<....^<...|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

Signed-off-by: Xiao Qian <qxooqx@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23016
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-21 10:41:06 +02:00
Markus Stockhausen 98e6b82489 realtek: eth: regmap refactoring
Refactor rteth_hw_ring_setup() and rteth_839x_hw_en_rxtx().

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23006
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-21 10:40:04 +02:00
Markus Stockhausen 007e3b7cfe realtek: eth: regmap refactoring
Refactor rteth_setup_cpu_rx_rings() and rteth_838x_hw_en_rxtx().

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/23006
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-21 10:40:04 +02:00
Daniel Pawlik c576e95b2f generic: 6.18: drop stale hunk of Filogic SerDes patch
Daniel Pawlik figured out that a stale patch hunk breaks one of the
two 10G SerDes PCS ports of MT7988. Remove the hunk to make 10G
Ethernet work on both SerDes PCS with Linux 6.18.

Testing was done using a Aquantia AQR113C SFP+ module.

Signed-off-by: Daniel Pawlik <pawlik.dan@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-20 14:51:44 +01:00
Jonas Jelonek a8d5544c83 realtek: add support for Zyxel XS1930-12HP
Add support for RTL9313-based Zyxel XS1930-12HP, a 12-port Multi-Gig
switch with 10x 100M/1G/2.5G/5G/10G RJ45 and 2x 1G/10G SFP+ ports.

Hardware
========

  - RTL9313 SoC
  - 256MiB DDR3 RAM (Winbond W632GU6MB)
  - 32MiB SPI-NOR Flash (Macronix MX25L25645G)
  - 8x 100M/1G/2.5G/5G/10G RJ45 (Aquantia AQR813)
  - 2x 100M/1G/2.5G/5G/10G RJ45 (2x Aquantia AQR113C)
  - 2x 1G/10G SFP+
  - PoE:
    - Ports 1-8 with PoE++/802.3bt
    - 2x RTL8239 + GigaDevice FD32F103 MCU
  - RTL8231 for port LEDs
  - LM96000 I2C hardware monitor
  - 3-pin fans
  - Front LEDs: PWR, SYS, CLOUD, LOCATOR, POE USAGE
  - Console: TTL 3.3V, 115200 8N1
  - Software chain:
    - Bootbase/stripped-down U-Boot
    - BootExt
    - RAS/ZyNOS

Console
=======

The console port is a 4-pin header reachable without opening case.
Looking at the front port-side of the device, turn the device 90 degrees
clockwise. On this side, there's a rectangular opening in the honeycomb
structure. Pinout is (from left/front to right/back): GND RX TX VCC

Hardware quirks
===============

* The SFP signals RX_LOS, MOD_ABS and TX_FAULT do not have dedicated GPIO
  lines each. Instead, there's a multiplexer (using GPIO12 and GPIO14)
  which - depending on its state - connect this single GPIO line to RX_LOS,
  MOD_ABS or TX_FAULT (GPIO19 for SFP1, GPIO27 for SFP2). This requires
  a special adapter driver (which is backed by a gpio-mux) that makes
  this hardware design and Linux' SFP core work together.

* SFP slots are disabled by default. GPIO6 and GPIO7 seems to be gates
  for SFP1 and SFP2 respectively. The need to be pulled low to make SFP
  modules work (i.e. respond to I2C requests and pass GPIO signals).

* Fan can only be set to SLOW or FAST mode, no real speed/PWM control.

Disclaimer
==========

PoE not yet supported.

Flashing OpenWrt will overwrite BootExtension + ZyNOS. BootExtension
functionality (e.g. initramfs boot as mentioned below) is not available
anymore then. The U-boot/Bootbase still has some limited functionality
which can be used in emergency cases.

Installation
============

Simple web upgrade:

1. Take the OpenWrt factory.bin image generated by the build.

2. In the ZyNOS web UI, login and go to Maintenance -> Firmware Upgrade.

3. Under "Boot Image", make sure the Config Boot Image is set to 1. In
   other words, make sure the switch booted from firmware image 1 or it
   will do so on next reboot.
   This is crucial, otherwise OpenWrt cannot boot.

4. Below, select and upload the factory.bin image. After clicking
   upgrade, the image will be flashed.

5. After flashing has finished, reboot the switch. It will now boot into
   OpenWrt.

Initramfs boot
==============

NOTE: You need to use Xmodem transfer, the bootloader doesn't support
      Ymodem nor any networking.
      This only works as long as the default ZyNOS firmware is
      installed.

1. Connect to the switch using serial and interrupt the boot process
   to enter debug/recovery mode.

2. You need to unlock the bootloader. Use known methods [1] and [2] to
   obtain the unlock code and unlock the bootloader with:

   > ATEN 1,<unlock_code>

3. Upload the initramfs image using Xmodem:

   > ATUP <address>,<file_length>

   <address>: you may use any RAM address >= 0x80300000
   <file_length>: length of image in bytes

4. After the transfer has finished, boot the image with:

   > ATGO <address>

5. Wait for OpenWrt to boot. At this stage, it might be wise to create a
   backup/dump of the Flash partitions.

Return to stock firmware
========================

1. Download the firmware for the switch from Zyxel website.

2. Unzip the download, there should be a .bin file with a alphanumeric
   name.

3. Upload this file to running OpenWrt.

4. Run (use -F since the image doesn't have image metadata):

   > sysupgrade -F <stock-firmware>.bin

5. Wait for the sysupgrade to succeed and the switch reboot. At the next
   boot, ZyNOS should come up again.

Recovery
========

The Bootbase loader is actually a modified U-Boot variant. You can enter
it by spamming $ during the DRAM test.

The U-Boot shell can be unlocked with [1] and [2]. Note that the command
is slightly different, using a space instead of a comma, and lowercase:

> aten 1 <unlock_code>

You should now have more-or-less a standard RTK-U-boot shell from where
you can upload and write a new image to flash. Use e.g.:

> upgradeY image2 81000000 115200

Wait for the upgrade process to finish and reboot the switch.

===
[1] https://akao.co.uk/tools/zyxel_unlocker/
[2] https://www.ixo.de/info/zyxel_uclinux/

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22909
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-20 11:13:06 +02:00
Jonas Jelonek 4a9c32b264 realtek: add support for Zyxel XS1930-12F
Add support for RTL9313-based Zyxel XS1930-12F, a 12-port Multi-Gig
switch with 8x 1G/10G SFP+ ports and 2x 100M/1G/2.5G/5G/10G RJ45.

Hardware
========

  - RTL9313 SoC
  - 256MiB DDR3 RAM (Nanya NT5CC128M16JR-EK)
  - 32MiB SPI-NOR Flash (Macronix MX25L25645G)
  - 10x 1G/10G SFP+
  - 2x 100M/1G/2.5G/5G/10G RJ45 (2x Aquantia AQR113C)
  - 2x RTL8231 for GPIO expansion + port LEDs
  - TI PM555 GPIO expander
  - LM96000 I2C hardware monitor
  - 3-pin fan
  - Front LEDs: PWR, SYS, CLOUD, LOCATOR
  - Console: TTL 3.3V, 115200 8N1
  - Software chain:
    - Bootbase/stripped-down U-Boot
    - BootExt
    - RAS/ZyNOS

Console
=======

The console port is a 4-pin header reachable without opening case.
Looking at the front port-side of the device, turn the device 90 degrees
clockwise. On this side, there's a rectangular opening in the honeycomb
structure. Pinout is (from left/front to right/back): GND RX TX VCC

Hardware quirks
===============

* SFP slots are disabled by default. Several GPIO lines on the PM555
  GPIO expander need to be pulled low to activate SFPs, one for each SFP
  slot. Otherwise modules cannot respond to I2C requests and GPIO signals
  do not reach the SoC.

* Fan can only be set to SLOW or FAST mode, no real speed/PWM control.

Disclaimer
==========

Flashing OpenWrt will overwrite BootExtension + ZyNOS. BootExtension
functionality (e.g. initramfs boot as mentioned below) is not available
anymore then. The U-boot/Bootbase still has some limited functionality
which can be used in emergency cases.

Installation
============

Simple web upgrade:

1. Take the OpenWrt factory.bin image generated by the build.

2. In the ZyNOS web UI, login and go to Maintenance -> Firmware Upgrade.

3. Under "Boot Image", make sure the Config Boot Image is set to 1. In
   other words, make sure the switch booted from firmware image 1 or it
   will do so on next reboot.
   This is crucial, otherwise OpenWrt cannot boot.

4. Below, select and upload the factory.bin image. After clicking
   upgrade, the image will be flashed.

5. After flashing has finished, reboot the switch. It will now boot into
   OpenWrt.

Initramfs boot
==============

NOTE: You need to use Xmodem transfer, the bootloader doesn't support
      Ymodem nor any networking.
      This only works as long as the default ZyNOS firmware is
      installed.

1. Connect to the switch using serial and interrupt the boot process
   to enter debug/recovery mode.

2. You need to unlock the bootloader. Use known methods [1] and [2] to
   obtain the unlock code and unlock the bootloader with:

   > ATEN 1,<unlock_code>

3. Upload the initramfs image using Xmodem:

   > ATUP <address>,<file_length>

   <address>: you may use any RAM address >= 0x80300000
   <file_length>: length of image in bytes

4. After the transfer has finished, boot the image with:

   > ATGO <address>

5. Wait for OpenWrt to boot. At this stage, it might be wise to create a
   backup/dump of the Flash partitions.

Return to stock firmware
========================

1. Download the firmware for the switch from Zyxel website.

2. Unzip the download, there should be a .bin file with a alphanumeric
   name.

3. Upload this file to running OpenWrt.

4. Run (use -F since the image doesn't have image metadata):

   > sysupgrade -F <stock-firmware>.bin

5. Wait for the sysupgrade to succeed and the switch reboot. At the next
   boot, ZyNOS should come up again.

Recovery
========

The Bootbase loader is actually a modified U-Boot variant. You can enter
it by spamming $ during the DRAM test.

The U-Boot shell can be unlocked with [1] and [2]. Note that the command
is slightly different, using a space instead of a comma, and lowercase:

> aten 1 <unlock_code>

You should now have more-or-less a standard RTK-U-boot shell from where
you can upload and write a new image to flash. Use e.g.:

> upgradeY image2 81000000 115200

Wait for the upgrade process to finish and reboot the switch.

===
[1] https://akao.co.uk/tools/zyxel_unlocker/
[2] https://www.ixo.de/info/zyxel_uclinux/

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22909
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-20 11:13:06 +02:00
Jonas Jelonek be54b1d008 realtek: add support for Zyxel XS1930-10
Add support for RTL9313-based Zyxel XS1930-10, a 10-port Multi-Gig
switch with 8x 100M/1G/2.5G/5G/10G RJ45 and 2x 1G/10G SFP+ ports.

Hardware
========

  - RTL9313 SoC
  - 256MiB DDR3 RAM (Winbond W632GU6MB)
  - 32MiB SPI-NOR Flash (Macronix MX25L25645G)
  - 8x 100M/1G/2.5G/5G/10G RJ45 (Aquantia AQR813)
  - 2x 1G/10G SFP+
  - RTL8231 for port LEDs
  - LM96000 I2C hardware monitor
  - 3-pin fan
  - Front LEDs: PWR, SYS, CLOUD, LOCATOR
  - Console: TTL 3.3V, 115200 8N1
  - Software chain:
    - Bootbase/stripped-down U-Boot
    - BootExt
    - RAS/ZyNOS

Console
=======

The console port is a 4-pin header reachable without opening case.
Looking at the front port-side of the device, turn the device 90 degrees
clockwise. On this side, there's a rectangular opening in the honeycomb
structure. Pinout is (from left/front to right/back): GND RX TX VCC

Hardware quirks
===============

* The SFP signals RX_LOS, MOD_ABS and TX_FAULT do not have dedicated GPIO
  lines each. Instead, there's a multiplexer (using GPIO12 and GPIO14)
  which - depending on its state - connect this single GPIO line to RX_LOS,
  MOD_ABS or TX_FAULT (GPIO19 for SFP1, GPIO27 for SFP2). This requires
  a special adapter driver (which is backed by a gpio-mux) that makes
  this hardware design and Linux' SFP core work together.

* SFP slots are disabled by default. GPIO6 and GPIO7 seems to be gates
  for SFP1 and SFP2 respectively. The need to be pulled low to make SFP
  modules work (i.e. respond to I2C requests and pass GPIO signals).

* Fan can only be set to SLOW or FAST mode, no real speed/PWM control.

Disclaimer
==========

Flashing OpenWrt will overwrite BootExtension + ZyNOS. BootExtension
functionality (e.g. initramfs boot as mentioned below) is not available
anymore then. The U-boot/Bootbase still has some limited functionality
which can be used in emergency cases.

Installation
============

Simple web upgrade:

1. Take the OpenWrt factory.bin image generated by the build.

2. In the ZyNOS web UI, login and go to Maintenance -> Firmware Upgrade.

3. Under "Boot Image", make sure the Config Boot Image is set to 1. In
   other words, make sure the switch booted from firmware image 1 or it
   will do so on next reboot.
   This is crucial, otherwise OpenWrt cannot boot.

4. Below, select and upload the factory.bin image. After clicking
   upgrade, the image will be flashed.

5. After flashing has finished, reboot the switch. It will now boot into
   OpenWrt.

Initramfs boot
==============

NOTE: You need to use Xmodem transfer, the bootloader doesn't support
      Ymodem nor any networking.
      This only works as long as the default ZyNOS firmware is
      installed.

1. Connect to the switch using serial and interrupt the boot process
   to enter debug/recovery mode.

2. You need to unlock the bootloader. Use known methods [1] and [2] to
   obtain the unlock code and unlock the bootloader with:

   > ATEN 1,<unlock_code>

3. Upload the initramfs image using Xmodem:

   > ATUP <address>,<file_length>

   <address>: you may use any RAM address >= 0x80300000
   <file_length>: length of image in bytes

4. After the transfer has finished, boot the image with:

   > ATGO <address>

5. Wait for OpenWrt to boot. At this stage, it might be wise to create a
   backup/dump of the Flash partitions.

Return to stock firmware
========================

1. Download the firmware for the switch from Zyxel website.

2. Unzip the download, there should be a .bin file with a alphanumeric
   name.

3. Upload this file to running OpenWrt.

4. Run (use -F since the image doesn't have image metadata):

   > sysupgrade -F <stock-firmware>.bin

5. Wait for the sysupgrade to succeed and the switch reboot. At the next
   boot, ZyNOS should come up again.

Recovery
========

The Bootbase loader is actually a modified U-Boot variant. You can enter
it by spamming $ during the DRAM test.

The U-Boot shell can be unlocked with [1] and [2]. Note that the command
is slightly different, using a space instead of a comma, and lowercase:

> aten 1 <unlock_code>

You should now have more-or-less a standard RTK-U-boot shell from where
you can upload and write a new image to flash. Use e.g.:

> upgradeY image2 81000000 115200

Wait for the upgrade process to finish and reboot the switch.

===
[1] https://akao.co.uk/tools/zyxel_unlocker/
[2] https://www.ixo.de/info/zyxel_uclinux/

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22909
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-20 11:13:06 +02:00
Jonas Jelonek 1409c25c9a realtek: add generic support for Zyxel XS1930 lineup
Add generic support for Zyxel's XS1930 10G switch lineup. This will be
used by subsequent patches to share common behavior/settings.

Common specs:

- Realtek RTL9313 switch SoC
- 256MB RAM
- 32MB Flash with shared layout
- different 10G copper/SFP port configurations

The devices use a proprietary software chain from Zyxel, consisting of:
- stripped-down, heavily modified U-boot masked as "Bootbase"
- BootExtension stage2 loader
- Thread-X based ZyNOS

Those devices require to add some symbols to the kernel config, i.e.
CONFIG_AQUANTIA_PHY for the used PHYs and symbols for GPIO peripherals
and muxes due to the hardware design.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22909
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-20 11:13:06 +02:00
Jonas Jelonek 647daebf64 realtek: image: add recipe for ZyNOS-based Zyxel devices
Add a new recipe 'zyxel-zynos' which contains common
behavior/definitions for ZyNOS-based Zyxel devices which requirea
special image to be built using 'zynos-firmware' recipe.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22909
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-20 11:13:05 +02:00
Jonas Jelonek 62a15f06b1 realtek: image: add zynos-firmware recipe
Add a build recipe to build a ZyNOS firmware image using mkzynfw from
firmware-utils to produce an image that can be flashed with the web
interface of ZyNOS vendor firmware.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22909
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-20 11:13:05 +02:00
Jonas Jelonek f95dbe3575 realtek: pcs: replace various SerDes range checks
The whole driver often does some range checks of the SerDes ID to
restrict some functionality to a group of SerDes. However, having these
open-coded checks everywhere is rather confusing because it's not
obvious what it actually means.

Luckily, those checks give a good picture of what SerDes types we have:
- 5G: RTL838x, RTL839x (0-7, 10, 11), RTL930x (0, 1)
- 10G: RTL839x (8, 9, 12, 13), RTL930x (2-9), RTL931x (2-13)
- unknown: RTL930x (10, 11), RTL931x (0, 1)

Add a new enum and field in rtpcs_serdes for the type of a SerDes we
have. This is filled during SerDes probe, making use of the stub
implementations for that hook.. All SerDes ID range checks related to
this are replaced with corresponding checks of the SerDes type.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22941
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-20 11:10:54 +02:00
Jonas Jelonek c32e90a396 realtek: pcs: add SerDes probe hook
Add a per-SerDes probe hook to rtpcs_config, called once for each SerDes
during driver probe. This provides a place for variant-specific, one-time
per-SerDes initialization that doesn't fit into the existing controller-
level init hook — such as allocating per-lane regmap fields or assigning
per-SerDes metadata.

Add stub implementations for all variants for now. They will be used by
all variants in a subsequent comment. For RTL839x, reuse the existing
rtl839x_sds_init hook and move its call out of the global init.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22941
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-20 11:10:54 +02:00
Nick Hainke bc391dd8ed x86: add support for DFI ASL553
The DFI ASL553 is a 3.5" SBC very similar to the ADN553. The network
topology is identical, so both boards share the same network
configuration.

Differences from the ADN553:
* CPU: Intel Atom x7835RE (8C, 12W) / x7433RE (4C, 9W) /
                  x7213RE (2C, 9W) / x7211RE (2C, 6W)
       (Amston Lake / x7000RE series instead of Alder Lake-N)
* Ethernet: Intel I226IT instead of I226V
* Audio: Realtek ALC888S instead of ALC888

For installation and board detection details, see commit b6b09a2ad8
("x86: add support for DFI ADN553").

Link: https://github.com/openwrt/openwrt/pull/23003
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-20 08:52:16 +02:00
Daniel Golle e591ba4bad mediatek: 6.18: add missing module dependency
Add missing dependency of kmod-btmtkuart on kmod-hci-uart when building
with Linux 6.18.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-20 01:10:32 +01:00
Daniel Golle b41ba5314c mediatek: mt7629: add missing CONFIG_LEDS_SMARTRG_LED
The config symbol has acceidentally been omitted when adding support for
Linux 6.18. Re-add it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-20 01:10:22 +01:00
Zoltan HERPAI 858e89d2f7 sifiveu: drop support for 6.12
Drop support for 6.12 by removing config and patches.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-19 13:21:21 +02:00
Zoltan HERPAI 8bcde63013 sifiveu: switch to 6.18
Make 6.18 the default kernel.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-19 13:21:21 +02:00
Nick Hainke b6b09a2ad8 x86: add support for DFI ADN553
The DFI ADN553 is a 3.5" SBC based on Intel Atom Alder Lake-N
processors with three Intel I226V 2.5GbE ports.

Specs:
* CPU: Intel Atom x7425E (4C, 12W) / x7213E (2C, 10W) /
       x7211E (2C, 6W)
* RAM: 1x DDR5 SO-DIMM, up to 16GB
* Storage: 1x M.2 M key 2242/2280 (PCIe Gen3 x1/SATA3),
           1x SATA 3.0
* Ethernet: 3x 2.5GbE RJ-45 (Intel I226V)
* USB: 4x USB 3.2 (rear), 2x USB 2.0 (internal)
* Expansion: 1x M.2 B key 3052 (USB3/USB2, opt. PCIe x1, SIM),
             1x M.2 E key 2230 (USB/PCIe x1, CNVi)
* Display: 1x HDMI, 1x Type-C DP Alt. Mode, 1x LVDS/eDP
* Power: 9-36V DC wide range input
* TPM: dTPM 2.0 (NPCT750AADYX)
* Form factor: 3.5" SBC (146mm x 102mm)

Installation:
1. Write the combined-efi.img to a USB drive:
   dd if=combined-efi.img of=/dev/sdX conv=fdatasync
2. Boot the ADN553 from the USB drive via the UEFI boot menu.
3. For permanent installation, write the image to the M.2 or
   SATA storage device.

The board uses "Default string" as DMI sys_vendor and product_name
placeholders, so board detection is fixed by filtering these out and
falling through to board_vendor (DFI Inc.) and board_name (ADN553).

The three I226V NICs are pinned to their PCIe paths to ensure
consistent interface ordering matching the physical left-to-right
port layout. eth0 is assigned as WAN and eth1/eth2 as LAN.

Link: https://github.com/openwrt/openwrt/pull/22980
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-04-18 16:58:39 +02:00
Robert Marko 13c54cd9b3 qualcommax: ipq807x: ax9000: wire up the fan
Now that we have a proper driver support for the onboard EMC2301 lets
wire up the fan as a cooling device on the Xiaomi AX9000.

Link: https://github.com/openwrt/openwrt/pull/22942
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-18 12:46:31 +02:00
Robert Marko 4df09199db generic: 6.18: backport EMC2305 changes
Now that 6.12 EMC2305 driver is backported to 7.0 code, lets do the same
for 6.18 so they dont diverge.

Link: https://github.com/openwrt/openwrt/pull/22942
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-18 12:46:31 +02:00
Robert Marko 4a886334ea generic: 6.12: backport EMC2305 changes
Backport the Microchip EMC2305 driver changes up to current linux-next.
These are required in order to actually be able to use the driver with
DTS support to drive fans as cooling devices.

Replace the bcm27xx RPi patch with the one from RPi kernel 7.0 that was
already adapted to all of these backports.

Link: https://github.com/openwrt/openwrt/pull/22942
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-18 12:46:31 +02:00
Zoltan HERPAI c4ed907551 pistachio: drop support for 6.12
Drop support for 6.12 by removing config and patches.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-18 12:02:48 +02:00
Zoltan HERPAI 0cf5605318 pistachio: switch to 6.18
Make 6.18 the default kernel.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-18 12:02:48 +02:00
Zoltan HERPAI fddbefbcc5 pistachio: refresh config on 6.18
Refresh config.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-18 12:02:40 +02:00
Zoltan HERPAI 8aa836eba3 sifiveu: enable 6.18 testing kernel
The sifiveu target now supports 6.18 kernel as testing.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-17 23:57:02 +02:00
Zoltan HERPAI 71ab1575af sifiveu: refresh config for 6.18
Refresh config for 6.18.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-17 23:57:02 +02:00
Zoltan HERPAI 203743a01f kernel/sifiveu: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

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

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-17 23:57:02 +02:00
Zoltan HERPAI 7f9190f4bd kernel/sifiveu: create files for v6.18 (from v6.12)
This is an automatically generated commit.

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

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-17 23:57:02 +02:00
Linus Walleij 1ad5eba0ff gemini/kernel: drop v6.12 and default to v6.18
Drop the old kernel and move over to the latest. We hardly
have any patches so this is a swift change.

Link: https://github.com/openwrt/openwrt/pull/22932
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-17 18:01:06 +02:00
Daniel Golle de2b69c432 mediatek: enable Linux 6.18 testing kernel
Enable Linux 6.18 as testing kernel.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle 7b1cbf9ea4 mediatek: filogic: adjust config for Linux 6.18
Adapt kernel configuration of the filogic subtarget for Linux 6.18.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle c0373f7af4 mediatek: mt7622: adjust config for Linux 6.18
Adapt kernel configuration of the mt7622 subtarget for Linux 6.18.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle 88a4f7afbe mediatek: mt7629: adjust config for Linux 6.18
Adapt kernel configuration of the mt7629 subtarget for Linux 6.18.
This was only compile-tested as I don't have the hardward.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle a5d85f0ec2 mediatek: mt7623: adjust config for Linux 6.18
Adapt kernel configuration of the mt7623 subtarget for Linux 6.18.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle bf0825a2d0 mediatek: build driver for built-in 2.5GE PHY as module
The by-now-upstream driver for the built-in 2.5GE PHY of the MediaTek
MT7988 and MT7987 SoC loads firmware at probe time.

Build the driver as a module in order to make sure the driver only
attempts to load the firmware by the time the rootfs with the firmware
file has become available.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle 7de575b809 mediatek: fix Arioha AN8855 DSA driver for Linux 6.18
Upstream changes to phylink require to make some small changes to our
downstream Airoha AN8855 DSA driver, so it build with Linux 6.18.
The efuse driver is upstream by now and can be dropped.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle 2129465f98 mediatek: fix patches for Linux 6.18
Delete patches merged upstream and refresh the remaining patches.
Import pending patchset to fix read-out-of-bounds bug in clk driver
while at it, as it makes maintaining the downstream clk driver for
MT7987 easier.
Replace downstream patch for Fidelix FM35X1GA SPI-NAND chip with
upstream commit replacing it (Dosilicon DS35Q1GA is indentical).
Several additional fixes were needed for MT7623N, especially to get
HDMI and the Mali-450 GPU working again...

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle ddfe78ea75 kernel/mediatek: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

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

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle 505c187497 kernel/mediatek: create files for v6.18 (from v6.12)
This is an automatically generated commit.

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

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle fd02003162 generic: 6.18: fix build of MediaTek USXGMII driver
Upstream changes to phylink require some small changes so the driver
can build with Linux 6.18.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle bdb8dea90d generic: 6.18: fix mtk_eth_soc on MT7988 and MT7987
Our downstream patch for the new SerDes paths on MT7988 wasn't
correctly ported to Linux 6.18 which already got most of the XPCS
support upstream.

Fix (ie. reduce) the patch to make the built-in 2.5G PHY on MT7988 and
MT7987 work again.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Daniel Golle 8c434b8316 generic: 6.18: add new Kconfig symbols
Add some new Kconfig symbols to the generic config so they don't end up
in all target configs.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-17 14:37:52 +01:00
Jonas Jelonek b7c21b4347 realtek: pcs: rtl93xx: extend USXGMII config
Our USXGMII config only covers one single register of which kind there
are actually more. We only set a value for 'CFG_QHSG_TXCFG_MAC_CH0' but
there are additional registers for CH1-CH3. Those refer to the 4
USXGMII 'channels'. While the RTL930x part of the SDK doesn't set them
explicitly, from RTK setup SerDes dumps we can see they are usually
similarly set.

The RTL931x part of the SDK actually writes those register explicitly
during USXGMII. We just haven't implemented that so far. Thus, add this
to the USXGMII config for both RTL93xx.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22939
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-17 12:24:08 +02:00
Jonas Jelonek 5c8b947082 realtek: pcs: rtl931x: use generic USXGMII config
Since the USXGMII config was made generic before, we can use it now for
the RTL931x setup too. This brings it closer to what the SDK configures
(see _dal_mango_construct_init_usxgmii), fixes some deviations in our
previous settings and makes clearer what is actually done.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22939
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-17 12:24:07 +02:00
Jonas Jelonek 440da2900d realtek: pcs: rtl93xx: make USXGMII config generic
The USXGMII config setting specific options currently is only
implemented for RTL930x. Looking at the SDK one can see that RTL931x
shares a lot of these configuration options. Additionally, several dumps
from RTK setups have shown that values which aren't set yet by us for
RTL930x but for RTL931x, also apply for RTL930x. Thus, both can be
merged. Start this by making the current function generic for RTL93xx.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22939
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-17 12:24:07 +02:00
Jonas Jelonek ed8851d521 realtek: pcs: rtl93xx: properly handle USXGMII autoneg
USXGMII autoneg setting is currently hardcoded for RTL930x and not even
handled explicitly for RTL931x. This should be handled via neg_mode from
phylink subsystem too. Thus, move it over to rtpcs_93xx_sds_set_autoneg
as generic implementation for RTL93xx and set it depending on the
provided negotiation mode.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22939
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-17 12:24:07 +02:00
INAGAKI Hiroshi 986ca4c887 mediatek: add support for BUFFALO WSR-3000AX4P
BUFFALO WSR-3000AX4P is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on
MT7981B.

Specification:

- SoC             : MediaTek MT7981B
- RAM             : DDR4 512 MiB (ESMT M16U4G16256A-KJBG)
- Flash           : SPI-NAND 128 MiB (Winbond W25N01GVZEIG)
- WLAN            : 2.4/5 GHz 2T2R (MediaTek MT7981B (SoC))
- Ethernet        : 4x 10/100/1000 Mbps
  - switch        : MediaTek MT7531A
- LEDs/Keys (GPIO): 6x/4x
- UART            : through-hole on PCB (J1)
  - assignment    : 3.3V, GND, TX, RX from tri-angle marking
  - settings      : 115200n8
- Power           : 12 VDC, 1.5 A (Max. 14.4 W)

Flash instruction using initramfs image:

1. Prepare a TFTP server with 192.168.11.2
2. Rename initramfs image to "linux.ubi-recovery" and put it to the TFTP
   directory
3. Hold the "AOSS" button and power on WSR-3000AX4P, release after 7~
   seconds
4. The bootloader automatically downloads the initramfs image and boots
   with it
5. After booting, upload a sysupgrade image to the device and perform
   sysupgrade with it
6. Wait ~100 seconds to complete flashing

Reverting to stock image:

1. Download a official firmware and decrypt it by buffalo-enc

   example:

     buffalo-enc -i <official .bin> -o fw.dec -d -O 0xC8 -l

2. Upload the decrypted image to the device
3. Flash the image to the UBI in "ubi_kernel" partition on the device

   example:

     . /lib/upgrade/common.sh
     . /lib/upgrade/nand.sh
     CI_UBIPART="ubi_kernel" nand_do_flash_file fw.dec

4. Reboot the device

   reboot

Notes:

- WSR-3000AX4P has 2x OS images ("ubi"/"Kernel2"), but the second one
  is only for backup and not used for booting.

  image handling on the bootloader:

  - "ubi" is broken     : "Kernel2" --(copy)--> "ubi"
  - "Kernel2" is broken : "ubi" --(copy)--> "Kernel2"
  - "ubi" != "Kernel2"  :
    - boot_select=0: "ubi" --(copy)--> "Kernel2"
    - boot_select=1: "Kernel2" --(copy)--> "ubi", set boot_select to '0'

MAC Addresses:

LAN   : EC:5A:31:xx:xx:50 (board_data, "mac" (text))
WAN   : EC:5A:31:xx:xx:50
2.4GHz: EC:5A:31:xx:xx:52
5GHz  : EC:5A:31:xx:xx:59

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22587
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-16 22:48:57 +02:00
INAGAKI Hiroshi 2cef2148c4 mediatek: filogic: enable ascii-env NVMEM driver
Enable ascii-env NVMEM driver (CONFIG_NVMEM_LAYOUT_ASCII_ENV) on
mediatek/filogic subtarget, to handle ascii-based MAC addresses
in key-value format stored to the mtd partition.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22587
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-16 22:48:57 +02:00
Zoltan HERPAI f335bf0d7c pistachio: enable 6.18 testing kernel
The pistachio target now supports 6.18 kernel as testing.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 22:23:02 +02:00