diff --git a/board/aarch64/acer-connect-vero-w6m/README.md b/board/aarch64/acer-connect-vero-w6m/README.md index 1afb3cdeb9..b0f67e525b 100644 --- a/board/aarch64/acer-connect-vero-w6m/README.md +++ b/board/aarch64/acer-connect-vero-w6m/README.md @@ -49,6 +49,23 @@ U-Boot from the first partition after fip. installing. Interrupt autoboot and run `printenv` to note down: `2gMAC`, `5gMAC`, `6gMAC`, `LANMAC`, and `WANMAC`. +## Giving the Unit a Permanent MAC Address + +Infix does not read the stock U-Boot environment, so the unit boots +with random Ethernet addresses until it is given a product record. +Store one as `/mnt/aux/vpd.bin`, from the Infix shell, using the +`WANMAC` noted down above as the base address: + +``` +echo '{"mac-address":"","serial-number":"","vendor":"Acer","product-name":"Connect Vero W6m"}' \ + | onieprom -e > /mnt/aux/vpd.bin +``` + +After a reboot the ports get fixed offsets from the base address and +the WiFi interfaces derive theirs from it. See +[Vital Product Data](../../../doc/vpd.md#vpd-file-on-the-aux-partition) +for the record format. + ## Required Files Prepare these files on a host reachable from the Vero: diff --git a/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m-common.dtsi b/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m-common.dtsi index fc77c7a7a7..5e86277a45 100644 --- a/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m-common.dtsi +++ b/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m-common.dtsi @@ -13,6 +13,7 @@ infix { /* Default admin user password: 'admin' */ factory-password-hash = "$5$mI/zpOAqZYKLC2WU$i7iPzZiIjOjrBF3NyftS9CCq8dfYwHwrmUK097Jca9A"; + vpds = <&vpd>; }; }; diff --git a/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m-vpd.dtsi b/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m-vpd.dtsi new file mode 100644 index 0000000000..0d6d5c0e21 --- /dev/null +++ b/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m-vpd.dtsi @@ -0,0 +1,53 @@ +/* + * Product VPD, an ONIE TLV that the boot loader copies from the aux + * partition into reserved memory. The region is zeroed when there is + * no VPD, which leaves the layout without cells. Ports reference the + * base MAC address with an index, <&base_mac N>, and get base + N as + * their permanent address. + */ +&{/reserved-memory} { + vpd: vpd@43e00000 { + compatible = "nvmem-rmem"; + reg = <0 0x43e00000 0 0x10000>; + no-map; + infix,board = "product"; + + nvmem-layout { + compatible = "onie,tlv-layout"; + + base_mac: mac-address { + #nvmem-cell-cells = <1>; + }; + }; + }; +}; + +/* Port addresses: VPD base MAC + 1 .. + 5 in port name order */ +&gmac0 { + nvmem-cells = <&base_mac 1>; + nvmem-cell-names = "mac-address"; +}; + +&swport0 { + nvmem-cells = <&base_mac 2>; + nvmem-cell-names = "mac-address"; +}; + +&switch { + ports { + port@1 { + nvmem-cells = <&base_mac 3>; + nvmem-cell-names = "mac-address"; + }; + + port@2 { + nvmem-cells = <&base_mac 4>; + nvmem-cell-names = "mac-address"; + }; + + port@3 { + nvmem-cells = <&base_mac 5>; + nvmem-cell-names = "mac-address"; + }; + }; +}; diff --git a/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m.dts b/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m.dts index 37c992d39a..acf1bdbff2 100644 --- a/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m.dts +++ b/board/aarch64/acer-connect-vero-w6m/dts/mediatek/mt7986a-acer-connect-vero-w6m.dts @@ -3,6 +3,7 @@ /dts-v1/; #include "mt7986a-acer-connect-vero-w6m-common.dtsi" #include "mt7986a-acer-connect-vero-w6m-pcie-eeprom.dtsi" +#include "mt7986a-acer-connect-vero-w6m-vpd.dtsi" / { model = "Acer Connect Vero W6m"; diff --git a/board/aarch64/acer-connect-vero-w6m/rootfs/usr/share/product/acer,connect-vero-w/etc/factory-config.cfg b/board/aarch64/acer-connect-vero-w6m/rootfs/usr/share/product/acer,connect-vero-w/etc/factory-config.cfg index eb1e5b9dad..8226e163e4 100644 --- a/board/aarch64/acer-connect-vero-w6m/rootfs/usr/share/product/acer,connect-vero-w/etc/factory-config.cfg +++ b/board/aarch64/acer-connect-vero-w6m/rootfs/usr/share/product/acer,connect-vero-w/etc/factory-config.cfg @@ -59,7 +59,8 @@ "prefix-length": 24 } ] - } + }, + "ietf-ip:ipv6": {} }, { "name": "lan1", diff --git a/board/aarch64/bananapi-bpi-r3/README.md b/board/aarch64/bananapi-bpi-r3/README.md index b21fda14f7..6646ff958b 100644 --- a/board/aarch64/bananapi-bpi-r3/README.md +++ b/board/aarch64/bananapi-bpi-r3/README.md @@ -222,25 +222,26 @@ default address on every board, so two boards cannot even connect to each other over WiFi: a client refuses to authenticate to an access point that has its own address. -The eMMC image carries an empty `factory` partition for this purpose. -Write a product record to it once, from the Infix shell, and the board -keeps that identity across reboots and upgrades: +Store a product record as `/mnt/aux/vpd.bin`, from the Infix shell, +and the board keeps that identity across reboots and upgrades: ``` -echo '{"mac-address":"02:00:00:ba:01:00","serial-number":"banana1","vendor":"Bananapi","product-name":"BPI-R3"}' \ - | onieprom -e | dd of=/dev/disk/by-partlabel/factory +echo '{"mac-address":"02:00:00:ba:01:00","serial-number":"banana1","vendor":"SinoVoip Co., Ltd.","product-name":"BPI-R3"}' \ + | onieprom -e > /mnt/aux/vpd.bin ``` Give each board its own base address and serial number, then reboot. -The base address becomes the hostname suffix, the wired ports get base -+ 1, base + 2, and so on in name order, and the WiFi interfaces get -addresses derived from the base. With the record above the board is -named `bpi-ba-01-00`, `lan1` is `02:00:00:ba:01:02` and `wifi0` is -`06:00:00:ba:01:00`. +The base address becomes the hostname suffix, each wired port gets a +fixed offset from the base, and the WiFi interfaces get addresses +derived from it. With the record above the board is named +`bpi-ba-01-00`, `lan1` is `02:00:00:ba:01:02`, `wan` is +`02:00:00:ba:01:08` and `wifi0` is `06:00:00:ba:01:00`. A port goes +back to this address when a custom MAC address is removed from it. A locally administered address like `02:xx:xx:xx:xx:xx` is fine for a lab. For boards that will share a network with other equipment, use a -range you own. See [Vital Product Data](../../../doc/vpd.md#factory-partition) +range you own. Remove the file to return to random addresses. See +[Vital Product Data](../../../doc/vpd.md#vpd-file-on-the-aux-partition) for the record format and what else it can carry. ## Troubleshooting diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-emmc.dts b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-emmc.dts index 573285c8ca..12a4971eaa 100644 --- a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-emmc.dts +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-emmc.dts @@ -2,3 +2,4 @@ #include "mt7986a-bananapi-bpi-r3.dtsi" #include "mt7986a-bananapi-bpi-r3-emmc.dtsi" +#include "mt7986a-bananapi-bpi-r3-macaddr.dtsi" diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-macaddr.dtsi b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-macaddr.dtsi new file mode 100644 index 0000000000..637e0512fe --- /dev/null +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-macaddr.dtsi @@ -0,0 +1,44 @@ +/* Port addresses: VPD base MAC + 1 .. + 8 */ +&gmac0 { + nvmem-cells = <&base_mac 1>; + nvmem-cell-names = "mac-address"; +}; + +&gmac1 { + nvmem-cells = <&base_mac 6>; + nvmem-cell-names = "mac-address"; +}; + +&switch { + ports { + port@0 { + nvmem-cells = <&base_mac 8>; + nvmem-cell-names = "mac-address"; + }; + + port@1 { + nvmem-cells = <&base_mac 2>; + nvmem-cell-names = "mac-address"; + }; + + port@2 { + nvmem-cells = <&base_mac 3>; + nvmem-cell-names = "mac-address"; + }; + + port@3 { + nvmem-cells = <&base_mac 4>; + nvmem-cell-names = "mac-address"; + }; + + port@4 { + nvmem-cells = <&base_mac 5>; + nvmem-cell-names = "mac-address"; + }; + + port@5 { + nvmem-cells = <&base_mac 7>; + nvmem-cell-names = "mac-address"; + }; + }; +}; diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts index bcb323e6b0..f38f004465 100644 --- a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts @@ -10,3 +10,12 @@ compatible = "ethernet-phy-id03a2.a411"; }; +/* Port addresses: VPD base MAC + 1 (lan) and + 2 (wan) */ +&gmac0 { + nvmem-cells = <&base_mac 1>; + nvmem-cell-names = "mac-address"; +}; +&gmac1 { + nvmem-cells = <&base_mac 2>; + nvmem-cell-names = "mac-address"; +}; diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-sd.dts b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-sd.dts index 640586fc7a..c5caaed036 100644 --- a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-sd.dts +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-sd.dts @@ -2,3 +2,4 @@ #include "mt7986a-bananapi-bpi-r3.dtsi" #include "mt7986a-bananapi-bpi-r3-sd.dtsi" +#include "mt7986a-bananapi-bpi-r3-macaddr.dtsi" diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-vpd.dtsi b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-vpd.dtsi new file mode 100644 index 0000000000..c1c44da90d --- /dev/null +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-vpd.dtsi @@ -0,0 +1,23 @@ +/* + * Product VPD, an ONIE TLV that the boot loader copies from the aux + * partition into reserved memory. The region is zeroed when there is + * no VPD, which leaves the layout without cells. Ports reference the + * base MAC address with an index, <&base_mac N>, and get base + N as + * their permanent address. + */ +&{/reserved-memory} { + vpd: vpd@43e00000 { + compatible = "nvmem-rmem"; + reg = <0 0x43e00000 0 0x10000>; + no-map; + infix,board = "product"; + + nvmem-layout { + compatible = "onie,tlv-layout"; + + base_mac: mac-address { + #nvmem-cell-cells = <1>; + }; + }; + }; +}; diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi index ef1b246590..52c6a47b6e 100644 --- a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi @@ -4,9 +4,9 @@ * every boot, into the node behind the ethernet0 alias. The * kernel then reports that port, and every switch port that * inherits from it, as having a permanent hardware address. - * Drop the aliases so the ports come up with a random address - * instead, which init.d/22-macaddr replaces with a chassis- - * derived one when a product VPD is present. + * Drop the aliases so the ports get their address from the + * product VPD instead, see mt7986a-bananapi-bpi-r3-vpd.dtsi, + * or a random one on a board without a VPD. */ aliases { /delete-property/ ethernet0; @@ -17,11 +17,14 @@ infix { /* Default admin user password: 'admin' */ factory-password-hash = "$5$mI/zpOAqZYKLC2WU$i7iPzZiIjOjrBF3NyftS9CCq8dfYwHwrmUK097Jca9A"; + vpds = <&vpd>; usb-ports = <&ssusb>; usb-port-names = "USB"; }; }; }; +#include "mt7986a-bananapi-bpi-r3-vpd.dtsi" + /* From 236317dd4e55512933dcdaec3d0b4a0824f5e5bd Mon Sep 17 00:00:00 2001 From: Shiji Yang diff --git a/board/aarch64/bananapi-bpi-r3/rootfs/etc/modprobe.d/mt7915e-wed.conf b/board/aarch64/bananapi-bpi-r3/rootfs/etc/modprobe.d/mt7915e-wed.conf index 2d323064b7..3ebdbabfcf 100644 --- a/board/aarch64/bananapi-bpi-r3/rootfs/etc/modprobe.d/mt7915e-wed.conf +++ b/board/aarch64/bananapi-bpi-r3/rootfs/etc/modprobe.d/mt7915e-wed.conf @@ -1,2 +1,2 @@ # Wireless Ethernet Dispatch, the WiFi hardware offload path -options mt7915e wed_enable=1 +options mt7915e wed_enable=0 diff --git a/board/aarch64/bananapi-bpi-r3/rootfs/usr/libexec/bpi-r3/macaddr b/board/aarch64/bananapi-bpi-r3/rootfs/usr/libexec/bpi-r3/macaddr deleted file mode 100755 index 3e5efb239f..0000000000 --- a/board/aarch64/bananapi-bpi-r3/rootfs/usr/libexec/bpi-r3/macaddr +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env python3 -"""Give ports without a hardware MAC address a chassis-derived one. - -The BPI-R3 family has no MAC EEPROM, so every port boots with a random -address, and the switch ports inherit that from their conduit. When -the product VPD provides a base MAC, hand each such port a stable -address derived from it: base + 1, base + 2, ... in interface name -order. This mirrors what products with real hardware addresses get -from their device tree. Ports with a permanent address are left alone. - -Runs from /etc/product/init.d, before the DSA conduit is renamed, so -it sorts as eth0 and takes base + 1. -""" -import json -import os -import subprocess -import sys - -SYSTEM_JSON = "/run/system.json" -NET = "/sys/class/net" -NET_ADDR_PERM = 0 - - -def log(msg): - subprocess.run(["logger", "-k", "-p", "user.notice", "-t", "macaddr", msg], - check=False) - - -def vpd_base_mac(): - try: - with open(SYSTEM_JSON, encoding="ascii") as f: - system = json.load(f) - except (OSError, ValueError): - return None - - product = system.get("vpd", {}).get("product", {}) - return product.get("data", {}).get("mac-address") - - -def mac_add(mac, offset): - num = int(mac.replace(":", ""), 16) + offset - num %= 1 << 48 - return ":".join(f"{(num >> 8 * i) & 0xff:02x}" for i in range(5, -1, -1)) - - -def read(path): - with open(path, encoding="ascii") as f: - return f.read().strip() - - -def ports(): - """Wired ports whose address the kernel did not get from hardware.""" - for name in sorted(os.listdir(NET)): - path = os.path.join(NET, name) - if not os.path.exists(os.path.join(path, "device")): - continue - if os.path.exists(os.path.join(path, "phy80211")): - continue - try: - if int(read(os.path.join(path, "addr_assign_type"))) == NET_ADDR_PERM: - continue - except (OSError, ValueError): - continue - - yield name - - -def main(): - base = vpd_base_mac() - if not base: - return 0 - - for offset, name in enumerate(ports(), start=1): - mac = mac_add(base, offset) - rc = subprocess.run(["ip", "link", "set", "dev", name, "address", mac], - check=False) - if rc.returncode: - log(f"failed setting {name} address {mac}") - continue - log(f"{name}: {mac} (chassis + {offset})") - - return 0 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3/etc/factory-config.cfg b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3/etc/factory-config.cfg index c018183b3a..bc16d8245f 100644 --- a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3/etc/factory-config.cfg +++ b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3/etc/factory-config.cfg @@ -51,7 +51,8 @@ "prefix-length": 24 } ] - } + }, + "ietf-ip:ipv6": {} }, { "name": "lan1", diff --git a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3/etc/product/init.d/S22-macaddr b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3/etc/product/init.d/S22-macaddr deleted file mode 120000 index f44f78b9d5..0000000000 --- a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3/etc/product/init.d/S22-macaddr +++ /dev/null @@ -1 +0,0 @@ -/usr/libexec/bpi-r3/macaddr \ No newline at end of file diff --git a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/factory-config.cfg b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/factory-config.cfg index 182c6f5359..4357d620a2 100644 --- a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/factory-config.cfg +++ b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/factory-config.cfg @@ -51,7 +51,8 @@ "prefix-length": 24 } ] - } + }, + "ietf-ip:ipv6": {} }, { "name": "lan", diff --git a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/product/init.d/S22-macaddr b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/product/init.d/S22-macaddr deleted file mode 120000 index f44f78b9d5..0000000000 --- a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/product/init.d/S22-macaddr +++ /dev/null @@ -1 +0,0 @@ -/usr/libexec/bpi-r3/macaddr \ No newline at end of file diff --git a/board/aarch64/bananapi-bpi-r3/uboot/mt7986-env.dtsi b/board/aarch64/bananapi-bpi-r3/uboot/mt7986-env.dtsi index 39cb3e1eb2..b04fcf2a72 100644 --- a/board/aarch64/bananapi-bpi-r3/uboot/mt7986-env.dtsi +++ b/board/aarch64/bananapi-bpi-r3/uboot/mt7986-env.dtsi @@ -10,6 +10,7 @@ bootcmd = "run ixboot"; boot_targets = "mmc0"; ethprime = "eth0"; + vpd_addr_r = "0x43e00000"; fdt_addr_r = "0x43f00000"; kernel_addr_r = "0x44000000"; scriptaddr = "0x48000000"; diff --git a/board/aarch64/bananapi-bpi-r4/rootfs/usr/share/product/bananapi,bpi-r4-2g5/etc/factory-config.cfg b/board/aarch64/bananapi-bpi-r4/rootfs/usr/share/product/bananapi,bpi-r4-2g5/etc/factory-config.cfg index c95c464d5b..5aa69df31d 100644 --- a/board/aarch64/bananapi-bpi-r4/rootfs/usr/share/product/bananapi,bpi-r4-2g5/etc/factory-config.cfg +++ b/board/aarch64/bananapi-bpi-r4/rootfs/usr/share/product/bananapi,bpi-r4-2g5/etc/factory-config.cfg @@ -25,7 +25,8 @@ "prefix-length": 24 } ] - } + }, + "ietf-ip:ipv6": {} }, { "name": "lan0", diff --git a/board/aarch64/bananapi-bpi-r4/rootfs/usr/share/product/bananapi,bpi-r4/etc/factory-config.cfg b/board/aarch64/bananapi-bpi-r4/rootfs/usr/share/product/bananapi,bpi-r4/etc/factory-config.cfg index 7b6d669263..9e643858cf 100644 --- a/board/aarch64/bananapi-bpi-r4/rootfs/usr/share/product/bananapi,bpi-r4/etc/factory-config.cfg +++ b/board/aarch64/bananapi-bpi-r4/rootfs/usr/share/product/bananapi,bpi-r4/etc/factory-config.cfg @@ -25,7 +25,8 @@ "prefix-length": 24 } ] - } + }, + "ietf-ip:ipv6": {} }, { "name": "lan1", diff --git a/board/aarch64/bananapi-bpi-r64/rootfs/usr/share/product/bananapi,bpi-r64/etc/factory-config.cfg b/board/aarch64/bananapi-bpi-r64/rootfs/usr/share/product/bananapi,bpi-r64/etc/factory-config.cfg index 632787cbdb..fe9643df04 100644 --- a/board/aarch64/bananapi-bpi-r64/rootfs/usr/share/product/bananapi,bpi-r64/etc/factory-config.cfg +++ b/board/aarch64/bananapi-bpi-r64/rootfs/usr/share/product/bananapi,bpi-r64/etc/factory-config.cfg @@ -36,7 +36,8 @@ "prefix-length": 24 } ] - } + }, + "ietf-ip:ipv6": {} }, { "name": "lan0", diff --git a/board/aarch64/friendlyarm-nanopi-r2s/rootfs/usr/share/product/friendlyarm,nanopi-r2s/etc/factory-config.cfg b/board/aarch64/friendlyarm-nanopi-r2s/rootfs/usr/share/product/friendlyarm,nanopi-r2s/etc/factory-config.cfg index 3ef1d99aae..fc9df6bba6 100644 --- a/board/aarch64/friendlyarm-nanopi-r2s/rootfs/usr/share/product/friendlyarm,nanopi-r2s/etc/factory-config.cfg +++ b/board/aarch64/friendlyarm-nanopi-r2s/rootfs/usr/share/product/friendlyarm,nanopi-r2s/etc/factory-config.cfg @@ -25,7 +25,8 @@ "prefix-length": 24 } ] - } + }, + "ietf-ip:ipv6": {} }, { "name": "lan", diff --git a/board/aarch64/linux_defconfig b/board/aarch64/linux_defconfig index 43dedc1cc8..17be58e53a 100644 --- a/board/aarch64/linux_defconfig +++ b/board/aarch64/linux_defconfig @@ -578,6 +578,7 @@ CONFIG_RESET_GPIO=y CONFIG_PHY_MVEBU_CP110_COMPHY=y CONFIG_PHY_MVEBU_CP110_UTMI=y CONFIG_PHY_SAMSUNG_USB2=y +CONFIG_NVMEM_RMEM=y CONFIG_NVMEM_LAYOUT_ONIE_TLV=y CONFIG_MUX_MMIO=y CONFIG_EXT2_FS=y diff --git a/board/common/rootfs/usr/libexec/infix/init.d/00-probe b/board/common/rootfs/usr/libexec/infix/init.d/00-probe index d41c196dea..e2054cefb8 100755 --- a/board/common/rootfs/usr/libexec/infix/init.d/00-probe +++ b/board/common/rootfs/usr/libexec/infix/init.d/00-probe @@ -480,46 +480,11 @@ def probe_dmisystem(out): return 0 -FACTORY_PART = "/dev/disk/by-partlabel/factory" - - -def factory_partition_vpd(): - """Product VPD from an ONIE TLV at the start of the factory partition. - - Boards without a VPD EEPROM, e.g. SBCs, can be given an identity by - writing a TLV to a partition labelled "factory". Anyone with write - access to the disk can change it, so it is never trusted. - """ - if not os.path.exists(FACTORY_PART): - return None - - try: - with open(FACTORY_PART, "rb", 0) as f: - data = onieprom.from_tlv(f) - except Exception: # pylint: disable=broad-except - return None - - if not data: - return None - - return { - "board": "product", - "available": True, - "trusted": False, - "data": data, - } - - def probe_dtsystem(out): """Probe DTS based system, expects a VPD in ONIE PROM format.""" dtsys = DTSystem() vpds = dtsys.infix_vpds() - if not any(vpd["board"] == "product" and vpd["available"] for vpd in vpds): - vpd = factory_partition_vpd() - if vpd: - vpds.append(vpd) - model = dtsys.base.str("model") if model: out["product-name"] = model diff --git a/board/common/uboot/scripts/ixpreboot.sh b/board/common/uboot/scripts/ixpreboot.sh index 7b6242e0db..4d0147dc87 100644 --- a/board/common/uboot/scripts/ixpreboot.sh +++ b/board/common/uboot/scripts/ixpreboot.sh @@ -37,6 +37,13 @@ for tgt in "${boot_targets}"; do test -n "${ixvariant}" && run ixvariant fi + if test -n "${vpd_addr_r}"; then + mw.b ${vpd_addr_r} 0 0x10 + if test -e ${devtype} ${devnum}:${auxpart} /vpd.bin; then + load ${devtype} ${devnum}:${auxpart} ${vpd_addr_r} /vpd.bin + fi + fi + if test -n "${DEBUG}"; then setenv bootargs_log "debug" else diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index e585de412c..3ec08bf688 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -9,11 +9,15 @@ All notable changes to the project are documented in this file. ### Changes - Upgrade Linux kernel to 6.18.56 (LTS) +- The LAN bridge in the factory config of the Banana Pi R3, R3 mini, R4, + R64, NanoPi R2S and Vero W6M now has IPv6 enabled, so the router has a + link-local address on the LAN side like its ports already had - Boards without a VPD EEPROM can be given a fixed identity, base MAC - included, by writing an ONIE TLV to a disk partition labelled `factory`, - see [VPD documentation](vpd.md#factory-partition) -- Banana Pi BPI-R3: ports get stable addresses derived from the chassis - MAC instead of random ones at every boot + included, by storing an ONIE TLV as `/mnt/aux/vpd.bin`, see + [VPD documentation](vpd.md#vpd-file-on-the-aux-partition) +- Banana Pi BPI-R3 and Acer Connect Vero W6m: ports get permanent + addresses derived from the chassis MAC instead of random ones at + every boot - WiFi interfaces get a unique address derived from the chassis MAC, so several APs on one radio, or two devices of the same model, no longer need `custom-phys-address` @@ -21,8 +25,6 @@ All notable changes to the project are documented in this file. with `wds` enabled can be a bridge port, and an access point bridges each remote station through a `wds-link` interface, see [WDS Backhaul and Repeaters][wds] -- MT7986 boards (Banana Pi BPI-R3, BPI-R3 Mini, Acer Connect Vero W6m): - WiFi hardware offloading is now active - Add IPv6 dynamic routing: RIPng and OSPFv3. Both reuse the existing ietf-rip and ietf-ospf models, selected per control-plane-protocol by the `ripng`/`ospfv3` type and the IPv6 address-family diff --git a/doc/vpd.md b/doc/vpd.md index 6c32b3982c..9e49dfcd55 100644 --- a/doc/vpd.md +++ b/doc/vpd.md @@ -54,33 +54,33 @@ Every VPD is listed in the _ietf-hardware_ model as a component named `vpd-`, e.g., `vpd-product` for the example above. -## Factory Partition +## VPD File on the Aux Partition Boards without a VPD EEPROM, such as single board computers, boot with a random MAC address on every port and the vendor's default address on every WiFi radio. Two such boards of the same model cannot even talk to each other over WiFi, since both radios claim the same address. -Such a board can be given an identity by writing an ONIE TLV to the -start of a disk partition labelled `factory`. The system reads it -when the device tree provides no product VPD. The `onieprom` tool -encodes the JSON form described [below](#json-encoding): +Such a board can be given an identity by storing an ONIE TLV as +`/mnt/aux/vpd.bin`. The boot loader hands the file to the system, +which reads it like any other VPD. The `onieprom` tool encodes the +JSON form described [below](#json-encoding): ``` -echo '{"mac-address":"02:00:00:ba:01:00","serial-number":"banana1","vendor":"Bananapi","product-name":"BPI-R3"}' \ - | onieprom -e | dd of=/dev/disk/by-partlabel/factory +echo '{"mac-address":"02:00:00:ba:01:00","serial-number":"banana1","vendor":"SinoVoip Co., Ltd.","product-name":"BPI-R3"}' \ + | onieprom -e > /mnt/aux/vpd.bin ``` -A VPD read this way is never trusted, so it can only provide identity, -never the factory password. On the Banana Pi BPI-R3 family the base -MAC address it provides is also handed out to the ports at boot: every -wired port without a hardware address gets base + 1, base + 2, and so -on, in interface name order. -WiFi interfaces derive their addresses from the base MAC as described -in [WiFi](wifi.md#multi-ssid-configuration). +The file survives upgrades, and removing it returns the board to +random addresses on the next boot. A VPD read this way is never +trusted, so it can only provide identity, never the factory password. +The ports get their addresses from its base MAC address, each with a +fixed offset given by the device tree, and WiFi interfaces derive +theirs from the base MAC as described in +[WiFi](wifi.md#multi-ssid-configuration). -The image for the Banana Pi BPI-R3 family already carries an empty -`factory` partition for this purpose. +This is currently supported on the Banana Pi BPI-R3 family and the +Acer Connect Vero W6m. ## Product VPD diff --git a/doc/wifi.md b/doc/wifi.md index a12608f177..7a781cb52a 100644 --- a/doc/wifi.md +++ b/doc/wifi.md @@ -806,7 +806,6 @@ portal. For a backhaul with a single root, where multi-hop and self-healing are not needed, see [WDS Backhaul and Repeaters](#wds-backhaul-and-repeaters). -That variant can use WiFi hardware offloading, mesh cannot. > [!NOTE] > Not all WiFi hardware supports 802.11s mesh, see the adapter list @@ -911,8 +910,7 @@ configuration and tied to the satellite's MAC address. Compared to an [802.11s mesh](#80211s-mesh-point-mode), a WDS backhaul is a star with one root, without multi-hop or self-healing. In return -it is a plain access point and station link, which WiFi hardware -offloading supports where mesh is not. +it is a plain access point and station link. ### Root: access point with WDS ports diff --git a/patches/linux/6.18.56/0001-net-phy-marvell10g-Support-firmware-loading-on-88X33.patch b/patches/linux/6.18.56/0001-net-phy-marvell10g-Support-firmware-loading-on-88X33.patch index 63f024651d..36a7aaad48 100644 --- a/patches/linux/6.18.56/0001-net-phy-marvell10g-Support-firmware-loading-on-88X33.patch +++ b/patches/linux/6.18.56/0001-net-phy-marvell10g-Support-firmware-loading-on-88X33.patch @@ -1,7 +1,7 @@ From ca34ebe2b40b53b52a5ea6fb00b7bb36eeeabb5f Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 19 Sep 2023 18:38:10 +0200 -Subject: [PATCH 01/86] net: phy: marvell10g: Support firmware loading on +Subject: [PATCH 001/102] net: phy: marvell10g: Support firmware loading on 88X3310 When probing, if a device is waiting for firmware to be loaded into diff --git a/patches/linux/6.18.56/0002-net-phy-marvell10g-Fix-power-up-when-strapped-to-sta.patch b/patches/linux/6.18.56/0002-net-phy-marvell10g-Fix-power-up-when-strapped-to-sta.patch index 9a48713b74..b0d8f2695c 100644 --- a/patches/linux/6.18.56/0002-net-phy-marvell10g-Fix-power-up-when-strapped-to-sta.patch +++ b/patches/linux/6.18.56/0002-net-phy-marvell10g-Fix-power-up-when-strapped-to-sta.patch @@ -1,7 +1,7 @@ From 59532ff26cccf476b4e6f8eeaf2e733c93106a78 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 21 Nov 2023 20:15:24 +0100 -Subject: [PATCH 02/86] net: phy: marvell10g: Fix power-up when strapped to +Subject: [PATCH 002/102] net: phy: marvell10g: Fix power-up when strapped to start powered down On devices which are hardware strapped to start powered down (PDSTATE diff --git a/patches/linux/6.18.56/0003-net-phy-marvell10g-Add-LED-support-for-88X3310.patch b/patches/linux/6.18.56/0003-net-phy-marvell10g-Add-LED-support-for-88X3310.patch index 1b45c4c0ab..cc276b3126 100644 --- a/patches/linux/6.18.56/0003-net-phy-marvell10g-Add-LED-support-for-88X3310.patch +++ b/patches/linux/6.18.56/0003-net-phy-marvell10g-Add-LED-support-for-88X3310.patch @@ -1,7 +1,7 @@ From 2881f5a7008a4b7a214f63960f1d199f55a7a78a Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 15 Nov 2023 20:58:42 +0100 -Subject: [PATCH 03/86] net: phy: marvell10g: Add LED support for 88X3310 +Subject: [PATCH 003/102] net: phy: marvell10g: Add LED support for 88X3310 Pickup the LEDs from the state in which the hardware reset or bootloader left them, but also support further configuration via diff --git a/patches/linux/6.18.56/0004-net-phy-marvell10g-Support-LEDs-tied-to-a-single-med.patch b/patches/linux/6.18.56/0004-net-phy-marvell10g-Support-LEDs-tied-to-a-single-med.patch index 13027abff8..4f82512fb1 100644 --- a/patches/linux/6.18.56/0004-net-phy-marvell10g-Support-LEDs-tied-to-a-single-med.patch +++ b/patches/linux/6.18.56/0004-net-phy-marvell10g-Support-LEDs-tied-to-a-single-med.patch @@ -1,7 +1,7 @@ From 67a62752bdb5e1e45982289b2eda1f5df4ca6f47 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 12 Dec 2023 09:51:05 +0100 -Subject: [PATCH 04/86] net: phy: marvell10g: Support LEDs tied to a single +Subject: [PATCH 004/102] net: phy: marvell10g: Support LEDs tied to a single media side In a combo-port setup, i.e. where both the copper and fiber interface diff --git a/patches/linux/6.18.56/0005-net-phy-Do-not-resume-PHY-when-attaching.patch b/patches/linux/6.18.56/0005-net-phy-Do-not-resume-PHY-when-attaching.patch index 370ff0d79d..31b601cf88 100644 --- a/patches/linux/6.18.56/0005-net-phy-Do-not-resume-PHY-when-attaching.patch +++ b/patches/linux/6.18.56/0005-net-phy-Do-not-resume-PHY-when-attaching.patch @@ -1,7 +1,7 @@ From a60255d4ba8ea888ecb86e92a2c65334a26f6384 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 27 Mar 2024 10:10:19 +0100 -Subject: [PATCH 05/86] net: phy: Do not resume PHY when attaching +Subject: [PATCH 005/102] net: phy: Do not resume PHY when attaching The PHY should not start negotiating with its link-partner until explicitly instructed to do so. diff --git a/patches/linux/6.18.56/0006-net-bridge-avoid-classifying-unknown-multicast-as-mr.patch b/patches/linux/6.18.56/0006-net-bridge-avoid-classifying-unknown-multicast-as-mr.patch index 722348bd34..8aff6683f7 100644 --- a/patches/linux/6.18.56/0006-net-bridge-avoid-classifying-unknown-multicast-as-mr.patch +++ b/patches/linux/6.18.56/0006-net-bridge-avoid-classifying-unknown-multicast-as-mr.patch @@ -1,7 +1,7 @@ From 3fc8e2a80589a5a5ae02fac7b3f97f195cb90930 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 4 Mar 2024 16:47:28 +0100 -Subject: [PATCH 06/86] net: bridge: avoid classifying unknown multicast as +Subject: [PATCH 006/102] net: bridge: avoid classifying unknown multicast as mrouters_only Unknown multicast, MAC/IPv4/IPv6, should always be flooded according to diff --git a/patches/linux/6.18.56/0007-net-bridge-Ignore-router-ports-when-forwarding-L2-mu.patch b/patches/linux/6.18.56/0007-net-bridge-Ignore-router-ports-when-forwarding-L2-mu.patch index ac60d4c16a..922a6e34aa 100644 --- a/patches/linux/6.18.56/0007-net-bridge-Ignore-router-ports-when-forwarding-L2-mu.patch +++ b/patches/linux/6.18.56/0007-net-bridge-Ignore-router-ports-when-forwarding-L2-mu.patch @@ -1,7 +1,7 @@ From 8f5cf3a448d6e7a1d00043debd0bf1fcaf706680 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 5 Mar 2024 06:44:41 +0100 -Subject: [PATCH 07/86] net: bridge: Ignore router ports when forwarding L2 +Subject: [PATCH 007/102] net: bridge: Ignore router ports when forwarding L2 multicast Multicast router ports are either statically configured or learned from diff --git a/patches/linux/6.18.56/0008-net-bridge-drop-delay-for-applying-strict-multicast-.patch b/patches/linux/6.18.56/0008-net-bridge-drop-delay-for-applying-strict-multicast-.patch index 46e8298662..ace817dd7b 100644 --- a/patches/linux/6.18.56/0008-net-bridge-drop-delay-for-applying-strict-multicast-.patch +++ b/patches/linux/6.18.56/0008-net-bridge-drop-delay-for-applying-strict-multicast-.patch @@ -1,7 +1,7 @@ From a42722822b7ff8ea8ac5e65a8449bb72b1ef8c05 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Thu, 4 Apr 2024 16:36:30 +0200 -Subject: [PATCH 08/86] net: bridge: drop delay for applying strict multicast +Subject: [PATCH 008/102] net: bridge: drop delay for applying strict multicast filtering This *local* patch drops the initial delay before applying strict multicast diff --git a/patches/linux/6.18.56/0009-net-bridge-Differentiate-MDB-additions-from-modifica.patch b/patches/linux/6.18.56/0009-net-bridge-Differentiate-MDB-additions-from-modifica.patch index 6a3937d3ad..e83383c759 100644 --- a/patches/linux/6.18.56/0009-net-bridge-Differentiate-MDB-additions-from-modifica.patch +++ b/patches/linux/6.18.56/0009-net-bridge-Differentiate-MDB-additions-from-modifica.patch @@ -1,7 +1,7 @@ From 2722df35856114c70f9896452d155b660f804ed8 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Thu, 16 May 2024 14:51:54 +0200 -Subject: [PATCH 09/86] net: bridge: Differentiate MDB additions from +Subject: [PATCH 009/102] net: bridge: Differentiate MDB additions from modifications Before this change, the reception of an IGMPv3 report (and analogously diff --git a/patches/linux/6.18.56/0010-nvmem-layouts-onie-tlv-Let-device-probe-even-when-TL.patch b/patches/linux/6.18.56/0010-nvmem-layouts-onie-tlv-Let-device-probe-even-when-TL.patch index 1e5f830a6e..3bdc586783 100644 --- a/patches/linux/6.18.56/0010-nvmem-layouts-onie-tlv-Let-device-probe-even-when-TL.patch +++ b/patches/linux/6.18.56/0010-nvmem-layouts-onie-tlv-Let-device-probe-even-when-TL.patch @@ -1,7 +1,7 @@ From 17f03931f23a3ed1dbe6f77a7e48bfdc11f17140 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Fri, 24 Nov 2023 23:29:55 +0100 -Subject: [PATCH 10/86] nvmem: layouts: onie-tlv: Let device probe even when +Subject: [PATCH 010/102] nvmem: layouts: onie-tlv: Let device probe even when TLV is invalid Before this change, probing an NVMEM device, expected to contain a diff --git a/patches/linux/6.18.56/0011-net-usb-r8152-add-r8153b-support-for-link-activity-L.patch b/patches/linux/6.18.56/0011-net-usb-r8152-add-r8153b-support-for-link-activity-L.patch index 55dfcebe60..be19f5142c 100644 --- a/patches/linux/6.18.56/0011-net-usb-r8152-add-r8153b-support-for-link-activity-L.patch +++ b/patches/linux/6.18.56/0011-net-usb-r8152-add-r8153b-support-for-link-activity-L.patch @@ -1,7 +1,7 @@ From cbc993b90307a45db570d20bce5e651100bafaa7 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 11 Aug 2024 11:27:35 +0200 -Subject: [PATCH 11/86] net: usb: r8152: add r8153b support for link/activity +Subject: [PATCH 011/102] net: usb: r8152: add r8153b support for link/activity LEDs This patch adds support for the link/activity LEDs on the NanoPi R2S diff --git a/patches/linux/6.18.56/0012-arm64-dts-mediatek-mt7986a-rename-BPi-R3-ports-to-ma.patch b/patches/linux/6.18.56/0012-arm64-dts-mediatek-mt7986a-rename-BPi-R3-ports-to-ma.patch index 5726a3f795..645cecc4ea 100644 --- a/patches/linux/6.18.56/0012-arm64-dts-mediatek-mt7986a-rename-BPi-R3-ports-to-ma.patch +++ b/patches/linux/6.18.56/0012-arm64-dts-mediatek-mt7986a-rename-BPi-R3-ports-to-ma.patch @@ -1,7 +1,7 @@ From 0c1a54359f6989eedad98678e030fc1d8fb44da0 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 10 Aug 2025 18:52:54 +0200 -Subject: [PATCH 12/86] arm64: dts: mediatek: mt7986a: rename BPi R3 ports to +Subject: [PATCH 012/102] arm64: dts: mediatek: mt7986a: rename BPi R3 ports to match case For ref. see: https://wiki.banana-pi.org/File:Bpi-r3_Metal_case.jpg diff --git a/patches/linux/6.18.56/0013-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch b/patches/linux/6.18.56/0013-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch index 1068b1f892..298054ebdc 100644 --- a/patches/linux/6.18.56/0013-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch +++ b/patches/linux/6.18.56/0013-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch @@ -1,8 +1,8 @@ From 2cbb47d51538a83315595715405a328552b9a753 Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Wed, 20 Aug 2025 21:38:24 +0200 -Subject: [PATCH 13/86] drm/panel-simple: Add a timing for the Raspberry Pi 7" - panel +Subject: [PATCH 013/102] drm/panel-simple: Add a timing for the Raspberry Pi + 7" panel The Raspberry Pi 7" 800x480 panel uses a Toshiba TC358762 DSI to DPI bridge chip, so there is a requirement for the timings diff --git a/patches/linux/6.18.56/0014-input-touchscreen-edt-ft5x06-Add-polled-mode.patch b/patches/linux/6.18.56/0014-input-touchscreen-edt-ft5x06-Add-polled-mode.patch index 70094938df..dab2c27e98 100644 --- a/patches/linux/6.18.56/0014-input-touchscreen-edt-ft5x06-Add-polled-mode.patch +++ b/patches/linux/6.18.56/0014-input-touchscreen-edt-ft5x06-Add-polled-mode.patch @@ -1,7 +1,7 @@ From fed97704c224902b2d79c81492c5a50ccd97793b Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Thu, 21 Aug 2025 11:20:23 +0200 -Subject: [PATCH 14/86] input:touchscreen:edt-ft5x06: Add polled mode +Subject: [PATCH 014/102] input:touchscreen:edt-ft5x06: Add polled mode Not all hardware has interrupts therefore we need to poll the touchscreen. diff --git a/patches/linux/6.18.56/0015-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch b/patches/linux/6.18.56/0015-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch index 0d8c077247..1e3d058be4 100644 --- a/patches/linux/6.18.56/0015-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch +++ b/patches/linux/6.18.56/0015-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch @@ -1,7 +1,7 @@ From 11f9f49b62a6eb3a73a523541b3f26f6958e0d49 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 12 Mar 2024 10:27:24 +0100 -Subject: [PATCH 15/86] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for +Subject: [PATCH 015/102] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for PPU on 6393X In a multi-chip setup, delays of up to 750ms are observed before the diff --git a/patches/linux/6.18.56/0016-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch b/patches/linux/6.18.56/0016-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch index aef78ec815..842d688472 100644 --- a/patches/linux/6.18.56/0016-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch +++ b/patches/linux/6.18.56/0016-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch @@ -1,7 +1,7 @@ From 6aed16ecedd6e8d3594474b00b4f80a6a75372c1 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 27 Mar 2024 15:52:43 +0100 -Subject: [PATCH 16/86] net: dsa: mv88e6xxx: Improve indirect register access +Subject: [PATCH 016/102] net: dsa: mv88e6xxx: Improve indirect register access perf on 6393 When operating in multi-chip mode, the 6393 family maps a subset of diff --git a/patches/linux/6.18.56/0017-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch b/patches/linux/6.18.56/0017-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch index 914a052256..cee78ea4d9 100644 --- a/patches/linux/6.18.56/0017-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch +++ b/patches/linux/6.18.56/0017-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch @@ -1,7 +1,7 @@ From 627e2902f0b11f9994e5c8c92627791b60069cdb Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Mon, 22 Apr 2024 23:18:01 +0200 -Subject: [PATCH 17/86] net: dsa: mv88e6xxx: Honor ports being managed via +Subject: [PATCH 017/102] net: dsa: mv88e6xxx: Honor ports being managed via in-band-status Keep all link parameters in their unforced states when the port is diff --git a/patches/linux/6.18.56/0018-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch b/patches/linux/6.18.56/0018-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch index 25c027ed6e..dc56c97566 100644 --- a/patches/linux/6.18.56/0018-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch +++ b/patches/linux/6.18.56/0018-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch @@ -1,7 +1,7 @@ From 1ad63ed23d72ed2429bcb7393aac0e82affde9e3 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 24 Apr 2024 22:41:04 +0200 -Subject: [PATCH 18/86] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user +Subject: [PATCH 018/102] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user ports on 6393X For packets with a DA in the IEEE reserved L2 group range, originating diff --git a/patches/linux/6.18.56/0019-net-dsa-tag_dsa-Use-tag-priority-as-initial-skb-prio.patch b/patches/linux/6.18.56/0019-net-dsa-tag_dsa-Use-tag-priority-as-initial-skb-prio.patch index 51365c7dc3..f62fc1050b 100644 --- a/patches/linux/6.18.56/0019-net-dsa-tag_dsa-Use-tag-priority-as-initial-skb-prio.patch +++ b/patches/linux/6.18.56/0019-net-dsa-tag_dsa-Use-tag-priority-as-initial-skb-prio.patch @@ -1,7 +1,7 @@ From 29b6583d7463dfddbfbb0e30a70de7707f5c86b0 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 28 May 2024 10:38:42 +0200 -Subject: [PATCH 19/86] net: dsa: tag_dsa: Use tag priority as initial +Subject: [PATCH 019/102] net: dsa: tag_dsa: Use tag priority as initial skb->priority Use the 3-bit priority field from the DSA tag as the initial packet diff --git a/patches/linux/6.18.56/0020-net-dsa-Support-MDB-memberships-whose-L2-addresses-o.patch b/patches/linux/6.18.56/0020-net-dsa-Support-MDB-memberships-whose-L2-addresses-o.patch index ffeed97468..fe9a0c4995 100644 --- a/patches/linux/6.18.56/0020-net-dsa-Support-MDB-memberships-whose-L2-addresses-o.patch +++ b/patches/linux/6.18.56/0020-net-dsa-Support-MDB-memberships-whose-L2-addresses-o.patch @@ -1,7 +1,7 @@ From 6cebfb46fd0a75b04f2481dcbd43cb9442bb1e12 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 16 Jan 2024 16:00:55 +0100 -Subject: [PATCH 20/86] net: dsa: Support MDB memberships whose L2 addresses +Subject: [PATCH 020/102] net: dsa: Support MDB memberships whose L2 addresses overlap Multiple IP multicast groups (32 for v4, 2^80 for v6) map to the same diff --git a/patches/linux/6.18.56/0021-net-dsa-Support-EtherType-based-priority-overrides.patch b/patches/linux/6.18.56/0021-net-dsa-Support-EtherType-based-priority-overrides.patch index c4d543ad5d..716189f103 100644 --- a/patches/linux/6.18.56/0021-net-dsa-Support-EtherType-based-priority-overrides.patch +++ b/patches/linux/6.18.56/0021-net-dsa-Support-EtherType-based-priority-overrides.patch @@ -1,7 +1,7 @@ From 2b39a3958e00546ff1c6f0cc523970d19355d796 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Thu, 21 Mar 2024 19:12:15 +0100 -Subject: [PATCH 21/86] net: dsa: Support EtherType based priority overrides +Subject: [PATCH 021/102] net: dsa: Support EtherType based priority overrides --- include/net/dsa.h | 4 ++++ diff --git a/patches/linux/6.18.56/0022-net-dsa-mv88e6xxx-Support-EtherType-based-priority-o.patch b/patches/linux/6.18.56/0022-net-dsa-mv88e6xxx-Support-EtherType-based-priority-o.patch index fa08609765..c1b1244454 100644 --- a/patches/linux/6.18.56/0022-net-dsa-mv88e6xxx-Support-EtherType-based-priority-o.patch +++ b/patches/linux/6.18.56/0022-net-dsa-mv88e6xxx-Support-EtherType-based-priority-o.patch @@ -1,7 +1,7 @@ From 3769055203bee35077c685d850f0debbac52459e Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Fri, 22 Mar 2024 16:15:43 +0100 -Subject: [PATCH 22/86] net: dsa: mv88e6xxx: Support EtherType based priority +Subject: [PATCH 022/102] net: dsa: mv88e6xxx: Support EtherType based priority overrides --- diff --git a/patches/linux/6.18.56/0023-net-dsa-mv88e6xxx-Add-mqprio-qdisc-support.patch b/patches/linux/6.18.56/0023-net-dsa-mv88e6xxx-Add-mqprio-qdisc-support.patch index ade6f51f6d..db6d7b0c4d 100644 --- a/patches/linux/6.18.56/0023-net-dsa-mv88e6xxx-Add-mqprio-qdisc-support.patch +++ b/patches/linux/6.18.56/0023-net-dsa-mv88e6xxx-Add-mqprio-qdisc-support.patch @@ -1,7 +1,7 @@ From bf8849ce4ee5e95f33c435914a5d7c8e6e16e416 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 28 May 2024 11:04:22 +0200 -Subject: [PATCH 23/86] net: dsa: mv88e6xxx: Add mqprio qdisc support +Subject: [PATCH 023/102] net: dsa: mv88e6xxx: Add mqprio qdisc support Add support for attaching mqprio qdisc's to mv88e6xxx ports and use the packet's traffic class as the outgoing priority when no PCP bits diff --git a/patches/linux/6.18.56/0024-net-dsa-mv88e6xxx-Use-VLAN-prio-over-IP-when-both-ar.patch b/patches/linux/6.18.56/0024-net-dsa-mv88e6xxx-Use-VLAN-prio-over-IP-when-both-ar.patch index 11cf8db9de..e0fd421c86 100644 --- a/patches/linux/6.18.56/0024-net-dsa-mv88e6xxx-Use-VLAN-prio-over-IP-when-both-ar.patch +++ b/patches/linux/6.18.56/0024-net-dsa-mv88e6xxx-Use-VLAN-prio-over-IP-when-both-ar.patch @@ -1,7 +1,7 @@ From 73b39094d7cdd592ec6fb18164590678789ab37a Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 29 May 2024 13:20:41 +0200 -Subject: [PATCH 24/86] net: dsa: mv88e6xxx: Use VLAN prio over IP when both +Subject: [PATCH 024/102] net: dsa: mv88e6xxx: Use VLAN prio over IP when both are available Switch the priority sourcing precdence to prefer VLAN PCP over IP diff --git a/patches/linux/6.18.56/0025-FIX-net-dsa-mv88e6xxx-Trap-locally-terminated-VLANs.patch b/patches/linux/6.18.56/0025-FIX-net-dsa-mv88e6xxx-Trap-locally-terminated-VLANs.patch index a8da9951cf..5d251c8edc 100644 --- a/patches/linux/6.18.56/0025-FIX-net-dsa-mv88e6xxx-Trap-locally-terminated-VLANs.patch +++ b/patches/linux/6.18.56/0025-FIX-net-dsa-mv88e6xxx-Trap-locally-terminated-VLANs.patch @@ -1,7 +1,7 @@ From 320983cf57f27f4138a4736388ad384ea9754d37 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 26 Nov 2024 19:45:59 +0100 -Subject: [PATCH 25/86] [FIX] net: dsa: mv88e6xxx: Trap locally terminated +Subject: [PATCH 025/102] [FIX] net: dsa: mv88e6xxx: Trap locally terminated VLANs Before this change, in a setup like the following, packets assigned to diff --git a/patches/linux/6.18.56/0026-net-dsa-mv88e6xxx-collapse-disabled-state-into-block.patch b/patches/linux/6.18.56/0026-net-dsa-mv88e6xxx-collapse-disabled-state-into-block.patch index e3cd5c084f..56b2e9290a 100644 --- a/patches/linux/6.18.56/0026-net-dsa-mv88e6xxx-collapse-disabled-state-into-block.patch +++ b/patches/linux/6.18.56/0026-net-dsa-mv88e6xxx-collapse-disabled-state-into-block.patch @@ -1,7 +1,7 @@ From 95d919b20d95e7d33432d450e2caafa42105d645 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Thu, 16 Jan 2025 12:35:12 +0100 -Subject: [PATCH 26/86] net: dsa: mv88e6xxx: collapse disabled state into +Subject: [PATCH 026/102] net: dsa: mv88e6xxx: collapse disabled state into blocking This patch changes the behavior of switchcore ports wrt. the port state. diff --git a/patches/linux/6.18.56/0027-net-dsa-mv88e6xxx-Only-activate-LAG-offloading-when-.patch b/patches/linux/6.18.56/0027-net-dsa-mv88e6xxx-Only-activate-LAG-offloading-when-.patch index ec77c2f60d..e8474983bf 100644 --- a/patches/linux/6.18.56/0027-net-dsa-mv88e6xxx-Only-activate-LAG-offloading-when-.patch +++ b/patches/linux/6.18.56/0027-net-dsa-mv88e6xxx-Only-activate-LAG-offloading-when-.patch @@ -1,8 +1,8 @@ From 4a67cefaa3e4d69034afee21162133191863e841 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 12 Feb 2025 22:03:14 +0100 -Subject: [PATCH 27/86] net: dsa: mv88e6xxx: Only activate LAG offloading when - bridged +Subject: [PATCH 027/102] net: dsa: mv88e6xxx: Only activate LAG offloading + when bridged The current port isolation scheme for mv88e6xxx is detailed here: https://lore.kernel.org/netdev/20220203101657.990241-1-tobias@waldekranz.com/ diff --git a/patches/linux/6.18.56/0028-net-dsa-mv88e6xxx-Add-LED-support-for-6393X.patch b/patches/linux/6.18.56/0028-net-dsa-mv88e6xxx-Add-LED-support-for-6393X.patch index ba7c735f1c..2c9e4d8ed2 100644 --- a/patches/linux/6.18.56/0028-net-dsa-mv88e6xxx-Add-LED-support-for-6393X.patch +++ b/patches/linux/6.18.56/0028-net-dsa-mv88e6xxx-Add-LED-support-for-6393X.patch @@ -1,7 +1,7 @@ From de1f05b6ee9af9d4f7deb7cde43e28d81e1b7f7f Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Wed, 14 Jan 2026 18:22:41 +0100 -Subject: [PATCH 28/86] net: dsa: mv88e6xxx: Add LED support for 6393X +Subject: [PATCH 028/102] net: dsa: mv88e6xxx: Add LED support for 6393X Original commit: commit 462277b926140ee2d231317e92afb6cabf640268 diff --git a/patches/linux/6.18.56/0029-wifi-brcmfmac-check-connection-state-before-querying.patch b/patches/linux/6.18.56/0029-wifi-brcmfmac-check-connection-state-before-querying.patch index 61a591407f..99cada56ba 100644 --- a/patches/linux/6.18.56/0029-wifi-brcmfmac-check-connection-state-before-querying.patch +++ b/patches/linux/6.18.56/0029-wifi-brcmfmac-check-connection-state-before-querying.patch @@ -1,8 +1,8 @@ From 5ba4ebc2cbcc3efdb8c68e64de2e3e1d36f700ca Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Mon, 19 Jan 2026 13:06:53 +0100 -Subject: [PATCH 29/86] wifi: brcmfmac: check connection state before querying - station info +Subject: [PATCH 029/102] wifi: brcmfmac: check connection state before + querying station info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0030-wifi-brcmfmac-suppress-log-spam-for-regulatory-restr.patch b/patches/linux/6.18.56/0030-wifi-brcmfmac-suppress-log-spam-for-regulatory-restr.patch index 2749a592e3..6e7efbfc54 100644 --- a/patches/linux/6.18.56/0030-wifi-brcmfmac-suppress-log-spam-for-regulatory-restr.patch +++ b/patches/linux/6.18.56/0030-wifi-brcmfmac-suppress-log-spam-for-regulatory-restr.patch @@ -1,7 +1,7 @@ From e714d2bb8736f8befb0e223b4de054981125010e Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Tue, 20 Jan 2026 20:12:10 +0100 -Subject: [PATCH 30/86] wifi: brcmfmac: suppress log spam for +Subject: [PATCH 030/102] wifi: brcmfmac: suppress log spam for regulatory-restricted channels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/patches/linux/6.18.56/0031-wifi-brcmfmac-reduce-log-noise-during-AP-to-station-.patch b/patches/linux/6.18.56/0031-wifi-brcmfmac-reduce-log-noise-during-AP-to-station-.patch index 30aecd0680..418df9347d 100644 --- a/patches/linux/6.18.56/0031-wifi-brcmfmac-reduce-log-noise-during-AP-to-station-.patch +++ b/patches/linux/6.18.56/0031-wifi-brcmfmac-reduce-log-noise-during-AP-to-station-.patch @@ -1,7 +1,7 @@ From 09696680be45dbeb24e8a722c3d4030b7737e11a Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Tue, 20 Jan 2026 20:18:45 +0100 -Subject: [PATCH 31/86] wifi: brcmfmac: reduce log noise during AP to station +Subject: [PATCH 031/102] wifi: brcmfmac: reduce log noise during AP to station transition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/patches/linux/6.18.56/0032-net-phy-air_en8811h-add-OF-device-table-for-auto-loa.patch b/patches/linux/6.18.56/0032-net-phy-air_en8811h-add-OF-device-table-for-auto-loa.patch index 145a6655e4..a1785eed5d 100644 --- a/patches/linux/6.18.56/0032-net-phy-air_en8811h-add-OF-device-table-for-auto-loa.patch +++ b/patches/linux/6.18.56/0032-net-phy-air_en8811h-add-OF-device-table-for-auto-loa.patch @@ -1,7 +1,7 @@ From 28322c174df66701c2f4283bf338a3032a8121bc Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Tue, 17 Feb 2026 21:59:59 +0100 -Subject: [PATCH 32/86] net: phy: air_en8811h: add OF device table for +Subject: [PATCH 032/102] net: phy: air_en8811h: add OF device table for auto-loading mdio_uevent() only emits an OF-style MODALIAS via diff --git a/patches/linux/6.18.56/0033-drm-vc4-dsi-enable-video-and-then-retry-failed-trans.patch b/patches/linux/6.18.56/0033-drm-vc4-dsi-enable-video-and-then-retry-failed-trans.patch index d2717e1997..967eacec50 100644 --- a/patches/linux/6.18.56/0033-drm-vc4-dsi-enable-video-and-then-retry-failed-trans.patch +++ b/patches/linux/6.18.56/0033-drm-vc4-dsi-enable-video-and-then-retry-failed-trans.patch @@ -1,7 +1,7 @@ From 53aba25643ef8e41021eab9b61242f3151fa3a56 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 20 Sep 2024 12:05:18 +0100 -Subject: [PATCH 33/86] drm: vc4: dsi: enable video and then retry failed +Subject: [PATCH 033/102] drm: vc4: dsi: enable video and then retry failed transfers The DSI block appears to be able to come up stuck in a condition where diff --git a/patches/linux/6.18.56/0034-drm-vc4-dsi-Clocks-should-be-running-before-reset.patch b/patches/linux/6.18.56/0034-drm-vc4-dsi-Clocks-should-be-running-before-reset.patch index 128b97ca5f..4c30807495 100644 --- a/patches/linux/6.18.56/0034-drm-vc4-dsi-Clocks-should-be-running-before-reset.patch +++ b/patches/linux/6.18.56/0034-drm-vc4-dsi-Clocks-should-be-running-before-reset.patch @@ -1,7 +1,7 @@ From b145fb6117a42c835d69cee8d01b7679396541e6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Jun 2022 17:23:47 +0100 -Subject: [PATCH 34/86] drm: vc4: dsi: Clocks should be running before reset +Subject: [PATCH 034/102] drm: vc4: dsi: Clocks should be running before reset The initialisation sequence differs slightly from the documentation in that the clocks are meant to be running before resets and diff --git a/patches/linux/6.18.56/0035-drm-vc4-Ensure-DSI-is-enabled-for-FIFO-resets.patch b/patches/linux/6.18.56/0035-drm-vc4-Ensure-DSI-is-enabled-for-FIFO-resets.patch index d1130efcef..219d2655c8 100644 --- a/patches/linux/6.18.56/0035-drm-vc4-Ensure-DSI-is-enabled-for-FIFO-resets.patch +++ b/patches/linux/6.18.56/0035-drm-vc4-Ensure-DSI-is-enabled-for-FIFO-resets.patch @@ -1,7 +1,7 @@ From 394a21d586f7f13a5cb822ed95ef986dfb17ca87 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 5 Apr 2024 17:51:55 +0100 -Subject: [PATCH 35/86] drm/vc4: Ensure DSI is enabled for FIFO resets +Subject: [PATCH 035/102] drm/vc4: Ensure DSI is enabled for FIFO resets The block must be enabled for the FIFO resets to be actioned, so ensure this is the case. diff --git a/patches/linux/6.18.56/0036-drm-vc4-Reset-DSI-AFE-on-disable.patch b/patches/linux/6.18.56/0036-drm-vc4-Reset-DSI-AFE-on-disable.patch index de5adcbf37..3d965cfcff 100644 --- a/patches/linux/6.18.56/0036-drm-vc4-Reset-DSI-AFE-on-disable.patch +++ b/patches/linux/6.18.56/0036-drm-vc4-Reset-DSI-AFE-on-disable.patch @@ -1,7 +1,7 @@ From 5b807e23d91f3d90697f74d484276e574670aa2c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 26 May 2022 18:56:19 +0100 -Subject: [PATCH 36/86] drm: vc4: Reset DSI AFE on disable +Subject: [PATCH 036/102] drm: vc4: Reset DSI AFE on disable vc4_dsi_bridge_disable wasn't resetting things during shutdown, so add that in. diff --git a/patches/linux/6.18.56/0037-drm-vc4-dsi-Handle-the-different-command-FIFO-widths.patch b/patches/linux/6.18.56/0037-drm-vc4-dsi-Handle-the-different-command-FIFO-widths.patch index 742c69a38b..0e6b38841e 100644 --- a/patches/linux/6.18.56/0037-drm-vc4-dsi-Handle-the-different-command-FIFO-widths.patch +++ b/patches/linux/6.18.56/0037-drm-vc4-dsi-Handle-the-different-command-FIFO-widths.patch @@ -1,7 +1,8 @@ From 1610998f5338234b29c335d18ffeb00c2dcec73a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 20 Nov 2024 13:58:08 +0000 -Subject: [PATCH 37/86] drm: vc4: dsi: Handle the different command FIFO widths +Subject: [PATCH 037/102] drm: vc4: dsi: Handle the different command FIFO + widths DSI0 and DSI1 have different widths for the command FIFO (24bit vs 32bit), but the driver was assuming the 32bit width of DSI1 diff --git a/patches/linux/6.18.56/0038-drm-bridge-tc358762-Program-the-DPI-mode-into-the-ch.patch b/patches/linux/6.18.56/0038-drm-bridge-tc358762-Program-the-DPI-mode-into-the-ch.patch index fc94b38fc8..7565fe2e38 100644 --- a/patches/linux/6.18.56/0038-drm-bridge-tc358762-Program-the-DPI-mode-into-the-ch.patch +++ b/patches/linux/6.18.56/0038-drm-bridge-tc358762-Program-the-DPI-mode-into-the-ch.patch @@ -1,7 +1,7 @@ From 0c2f36c6efa65abc8d2c5179903c3fb5afac9874 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 9 Jan 2024 17:37:00 +0000 -Subject: [PATCH 38/86] drm/bridge: tc358762: Program the DPI mode into the +Subject: [PATCH 038/102] drm/bridge: tc358762: Program the DPI mode into the chip The autodetection of resolution/timing by the TC358762 can lead diff --git a/patches/linux/6.18.56/0039-drm-bridge-tc358762-revert-move-ops-to-enable.patch b/patches/linux/6.18.56/0039-drm-bridge-tc358762-revert-move-ops-to-enable.patch index 168a87fe35..b1455cdfbc 100644 --- a/patches/linux/6.18.56/0039-drm-bridge-tc358762-revert-move-ops-to-enable.patch +++ b/patches/linux/6.18.56/0039-drm-bridge-tc358762-revert-move-ops-to-enable.patch @@ -1,7 +1,7 @@ From 91f9e48ff0405e6b8ec9d046b7f37d96f99483c5 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 9 Jan 2024 18:44:49 +0000 -Subject: [PATCH 39/86] drm/bridge: tc358762: revert move ops to enable +Subject: [PATCH 039/102] drm/bridge: tc358762: revert move ops to enable Reverts 8a4b2fc9c91a ("drm/bridge: tc358762: Split register programming from pre-enable to enable") as we want the config commands sent before video starts. diff --git a/patches/linux/6.18.56/0040-drm-bridge-tc358762-Set-pre_enabled-on-pre_enable-to.patch b/patches/linux/6.18.56/0040-drm-bridge-tc358762-Set-pre_enabled-on-pre_enable-to.patch index a4d092208b..b1198dd658 100644 --- a/patches/linux/6.18.56/0040-drm-bridge-tc358762-Set-pre_enabled-on-pre_enable-to.patch +++ b/patches/linux/6.18.56/0040-drm-bridge-tc358762-Set-pre_enabled-on-pre_enable-to.patch @@ -1,8 +1,8 @@ From 18d15d554c004a795771c8adb8abb6ef54f22985 Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Sat, 4 Apr 2026 18:04:19 +0200 -Subject: [PATCH 40/86] drm/bridge: tc358762: Set pre_enabled on pre_enable to - prevent regulator imbalance +Subject: [PATCH 040/102] drm/bridge: tc358762: Set pre_enabled on pre_enable + to prevent regulator imbalance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0041-net-pcs-add-standalone-PCS-registration-infrastructu.patch b/patches/linux/6.18.56/0041-net-pcs-add-standalone-PCS-registration-infrastructu.patch index acc2764e24..6fc113b4c2 100644 --- a/patches/linux/6.18.56/0041-net-pcs-add-standalone-PCS-registration-infrastructu.patch +++ b/patches/linux/6.18.56/0041-net-pcs-add-standalone-PCS-registration-infrastructu.patch @@ -1,7 +1,8 @@ From a2fc20fe20ad386cff232905d1858f9af21ecaf2 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 5 Apr 2026 11:33:00 +0200 -Subject: [PATCH 41/86] net/pcs: add standalone PCS registration infrastructure +Subject: [PATCH 041/102] net/pcs: add standalone PCS registration + infrastructure Add a simple registration mechanism that allows platform PCS drivers to register their phylink_pcs instances, and consumers (e.g. Ethernet MAC diff --git a/patches/linux/6.18.56/0042-net-pcs-add-MediaTek-MT7988-USXGMII-PCS-driver.patch b/patches/linux/6.18.56/0042-net-pcs-add-MediaTek-MT7988-USXGMII-PCS-driver.patch index 07a19f206a..c7d36b20fd 100644 --- a/patches/linux/6.18.56/0042-net-pcs-add-MediaTek-MT7988-USXGMII-PCS-driver.patch +++ b/patches/linux/6.18.56/0042-net-pcs-add-MediaTek-MT7988-USXGMII-PCS-driver.patch @@ -1,7 +1,7 @@ From 6c0e1262a95027d0ef8fb263353e5a4382529437 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 6 Apr 2026 14:14:23 +0200 -Subject: [PATCH 42/86] net/pcs: add MediaTek MT7988 USXGMII PCS driver +Subject: [PATCH 042/102] net/pcs: add MediaTek MT7988 USXGMII PCS driver Add a PCS driver for the USXGMII subsystem found in the MediaTek MT7988 SoC (usxgmiisys0 at 0x10080000, usxgmiisys1 at 0x10081000). The hardware diff --git a/patches/linux/6.18.56/0043-net-ethernet-mediatek-add-USXGMII-support-for-MT7988.patch b/patches/linux/6.18.56/0043-net-ethernet-mediatek-add-USXGMII-support-for-MT7988.patch index 50c0ae6e60..d0fbc277fe 100644 --- a/patches/linux/6.18.56/0043-net-ethernet-mediatek-add-USXGMII-support-for-MT7988.patch +++ b/patches/linux/6.18.56/0043-net-ethernet-mediatek-add-USXGMII-support-for-MT7988.patch @@ -1,7 +1,8 @@ From 7a3a934b66b5a38e732f6c28f76c45b43cea4e15 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 6 Apr 2026 14:15:43 +0200 -Subject: [PATCH 43/86] net: ethernet: mediatek: add USXGMII support for MT7988 +Subject: [PATCH 043/102] net: ethernet: mediatek: add USXGMII support for + MT7988 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0044-arm64-dts-mediatek-mt7988a-add-USXGMII-PCS-nodes.patch b/patches/linux/6.18.56/0044-arm64-dts-mediatek-mt7988a-add-USXGMII-PCS-nodes.patch index 3666303652..6e91a7bbb6 100644 --- a/patches/linux/6.18.56/0044-arm64-dts-mediatek-mt7988a-add-USXGMII-PCS-nodes.patch +++ b/patches/linux/6.18.56/0044-arm64-dts-mediatek-mt7988a-add-USXGMII-PCS-nodes.patch @@ -1,7 +1,7 @@ From d320f311c3e132191b319db4d7f7e3e3f5ed58df Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 6 Apr 2026 14:15:56 +0200 -Subject: [PATCH 44/86] arm64: dts: mediatek: mt7988a: add USXGMII PCS nodes +Subject: [PATCH 044/102] arm64: dts: mediatek: mt7988a: add USXGMII PCS nodes Add device nodes for the two USXGMII subsystem blocks (usxgmiisys0 at 0x10080000 and usxgmiisys1 at 0x10081000), each referencing its clock, diff --git a/patches/linux/6.18.56/0045-arm64-dts-mediatek-bananapi-bpi-r4-enable-SFP-ports-.patch b/patches/linux/6.18.56/0045-arm64-dts-mediatek-bananapi-bpi-r4-enable-SFP-ports-.patch index 51a2e9c26a..702cdd482b 100644 --- a/patches/linux/6.18.56/0045-arm64-dts-mediatek-bananapi-bpi-r4-enable-SFP-ports-.patch +++ b/patches/linux/6.18.56/0045-arm64-dts-mediatek-bananapi-bpi-r4-enable-SFP-ports-.patch @@ -1,7 +1,7 @@ From d83185ab2d0bc45de5c33b6fc50006e166f39417 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 6 Apr 2026 14:16:11 +0200 -Subject: [PATCH 45/86] arm64: dts: mediatek: bananapi-bpi-r4: enable SFP+ +Subject: [PATCH 045/102] arm64: dts: mediatek: bananapi-bpi-r4: enable SFP+ ports and WPS button Enable the SFP+ cages wired to gmac1 and gmac2. The USXGMII PCS nodes diff --git a/patches/linux/6.18.56/0046-net-phy-sfp-add-OEM-SFP-10G-T-I-quirk.patch b/patches/linux/6.18.56/0046-net-phy-sfp-add-OEM-SFP-10G-T-I-quirk.patch index 59cc38f06d..1f965f010f 100644 --- a/patches/linux/6.18.56/0046-net-phy-sfp-add-OEM-SFP-10G-T-I-quirk.patch +++ b/patches/linux/6.18.56/0046-net-phy-sfp-add-OEM-SFP-10G-T-I-quirk.patch @@ -1,7 +1,7 @@ From fa401f49e78eeefa6ef1752733c87b1d67655125 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 7 Apr 2026 07:34:52 +0200 -Subject: [PATCH 46/86] net: phy: sfp: add OEM SFP-10G-T-I quirk +Subject: [PATCH 046/102] net: phy: sfp: add OEM SFP-10G-T-I quirk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0047-net-dsa-mv88e6xxx-Trap-PTP-frames-on-timestamping-po.patch b/patches/linux/6.18.56/0047-net-dsa-mv88e6xxx-Trap-PTP-frames-on-timestamping-po.patch index 169a5b9e44..416edcb013 100644 --- a/patches/linux/6.18.56/0047-net-dsa-mv88e6xxx-Trap-PTP-frames-on-timestamping-po.patch +++ b/patches/linux/6.18.56/0047-net-dsa-mv88e6xxx-Trap-PTP-frames-on-timestamping-po.patch @@ -1,7 +1,7 @@ From 79c898ca16e60f10eafaf89110b5d2c24bd9ac2c Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Fri, 17 Apr 2026 09:13:04 +0000 -Subject: [PATCH 47/86] net: dsa: mv88e6xxx: Trap PTP frames on timestamping +Subject: [PATCH 047/102] net: dsa: mv88e6xxx: Trap PTP frames on timestamping ports, on 6393X Similar to the Peridot (6390), the designation of PTP frames as diff --git a/patches/linux/6.18.56/0048-wifi-mt76-mt7615-add-MODULE_DEVICE_TABLE-for-mt7622-.patch b/patches/linux/6.18.56/0048-wifi-mt76-mt7615-add-MODULE_DEVICE_TABLE-for-mt7622-.patch index 7feb07b15a..aaea6dbf4c 100644 --- a/patches/linux/6.18.56/0048-wifi-mt76-mt7615-add-MODULE_DEVICE_TABLE-for-mt7622-.patch +++ b/patches/linux/6.18.56/0048-wifi-mt76-mt7615-add-MODULE_DEVICE_TABLE-for-mt7622-.patch @@ -1,8 +1,8 @@ From 0f8cdee2b15e4d5c36520e274ebc74371ec8de68 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 28 Apr 2026 15:30:01 +0200 -Subject: [PATCH 48/86] wifi: mt76: mt7615: add MODULE_DEVICE_TABLE for mt7622 - wmac +Subject: [PATCH 048/102] wifi: mt76: mt7615: add MODULE_DEVICE_TABLE for + mt7622 wmac Without MODULE_DEVICE_TABLE(of, ...) the OF compatible alias is never exported to modules.alias, so udev cannot autoload mt7615e when the diff --git a/patches/linux/6.18.56/0049-PCI-mediatek-gen3-Fix-PERST-control-timing-during-sy.patch b/patches/linux/6.18.56/0049-PCI-mediatek-gen3-Fix-PERST-control-timing-during-sy.patch index 46fa15d0d9..7f8c8fe25a 100644 --- a/patches/linux/6.18.56/0049-PCI-mediatek-gen3-Fix-PERST-control-timing-during-sy.patch +++ b/patches/linux/6.18.56/0049-PCI-mediatek-gen3-Fix-PERST-control-timing-during-sy.patch @@ -1,7 +1,7 @@ From 5f9aa8845b841fcada5fa58f92ceaa9bb9fabcb4 Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Wed, 22 Apr 2026 10:24:43 +0200 -Subject: [PATCH 49/86] PCI: mediatek-gen3: Fix PERST# control timing during +Subject: [PATCH 049/102] PCI: mediatek-gen3: Fix PERST# control timing during system startup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/patches/linux/6.18.56/0050-net-dsa-mv88e6xxx-Derive-LED-names-from-device-name.patch b/patches/linux/6.18.56/0050-net-dsa-mv88e6xxx-Derive-LED-names-from-device-name.patch index cf0df843b9..1579010e1f 100644 --- a/patches/linux/6.18.56/0050-net-dsa-mv88e6xxx-Derive-LED-names-from-device-name.patch +++ b/patches/linux/6.18.56/0050-net-dsa-mv88e6xxx-Derive-LED-names-from-device-name.patch @@ -1,7 +1,8 @@ From 024fb8fd29a48bb85f355b5a4a558c8ab6875b3c Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Wed, 12 Aug 2026 10:08:53 +0200 -Subject: [PATCH 50/86] net: dsa: mv88e6xxx: Derive LED names from device name +Subject: [PATCH 050/102] net: dsa: mv88e6xxx: Derive LED names from device + name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0051-phy-sparx5-serdes-make-it-selectable-for-ARCH_LAN969.patch b/patches/linux/6.18.56/0051-phy-sparx5-serdes-make-it-selectable-for-ARCH_LAN969.patch index 449a6df468..d85630fb87 100644 --- a/patches/linux/6.18.56/0051-phy-sparx5-serdes-make-it-selectable-for-ARCH_LAN969.patch +++ b/patches/linux/6.18.56/0051-phy-sparx5-serdes-make-it-selectable-for-ARCH_LAN969.patch @@ -1,7 +1,8 @@ From f42698c6d686cabca0fced226a63e09c438fbc78 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 31 Oct 2025 13:18:12 +0100 -Subject: [PATCH 51/86] phy: sparx5-serdes: make it selectable for ARCH_LAN969X +Subject: [PATCH 051/102] phy: sparx5-serdes: make it selectable for + ARCH_LAN969X LAN969x uses the SparX-5 SERDES driver, so make it selectable for ARCH_LAN969X. diff --git a/patches/linux/6.18.56/0052-net-sparx5-fix-wrong-chip-ids-for-TSN-SKUs.patch b/patches/linux/6.18.56/0052-net-sparx5-fix-wrong-chip-ids-for-TSN-SKUs.patch index 745d755413..4613b518e3 100644 --- a/patches/linux/6.18.56/0052-net-sparx5-fix-wrong-chip-ids-for-TSN-SKUs.patch +++ b/patches/linux/6.18.56/0052-net-sparx5-fix-wrong-chip-ids-for-TSN-SKUs.patch @@ -1,7 +1,7 @@ From da55a0660bc7a764abd39b28d1b588d58cfafcf7 Mon Sep 17 00:00:00 2001 From: Daniel Machon Date: Wed, 6 May 2026 09:25:38 +0200 -Subject: [PATCH 52/86] net: sparx5: fix wrong chip ids for TSN SKUs +Subject: [PATCH 052/102] net: sparx5: fix wrong chip ids for TSN SKUs The TSN SKUs in enum spx5_target_chiptype have incorrect IDs: diff --git a/patches/linux/6.18.56/0053-net-sparx5-configure-serdes-for-1000BASE-X-in-sparx5.patch b/patches/linux/6.18.56/0053-net-sparx5-configure-serdes-for-1000BASE-X-in-sparx5.patch index 0d8dfbf321..acfa1af440 100644 --- a/patches/linux/6.18.56/0053-net-sparx5-configure-serdes-for-1000BASE-X-in-sparx5.patch +++ b/patches/linux/6.18.56/0053-net-sparx5-configure-serdes-for-1000BASE-X-in-sparx5.patch @@ -1,7 +1,7 @@ From 13292f9168073d35dfa05f2c3e8402e18bf3f9ce Mon Sep 17 00:00:00 2001 From: Daniel Machon Date: Wed, 6 May 2026 09:25:39 +0200 -Subject: [PATCH 53/86] net: sparx5: configure serdes for 1000BASE-X in +Subject: [PATCH 053/102] net: sparx5: configure serdes for 1000BASE-X in sparx5_port_init() sparx5_port_init() only invokes sparx5_serdes_set() and the associated diff --git a/patches/linux/6.18.56/0054-dt-bindings-mmc-atmel-sama5d2-sdhci-add-microchip-la.patch b/patches/linux/6.18.56/0054-dt-bindings-mmc-atmel-sama5d2-sdhci-add-microchip-la.patch index bd6b3e02aa..1dd1a1b0cd 100644 --- a/patches/linux/6.18.56/0054-dt-bindings-mmc-atmel-sama5d2-sdhci-add-microchip-la.patch +++ b/patches/linux/6.18.56/0054-dt-bindings-mmc-atmel-sama5d2-sdhci-add-microchip-la.patch @@ -1,7 +1,7 @@ From 704c64713d2d2d34a22e0d2f8066996bc62d9120 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 19 Aug 2026 11:35:29 +0200 -Subject: [PATCH 54/86] dt-bindings: mmc: atmel,sama5d2-sdhci: add +Subject: [PATCH 054/102] dt-bindings: mmc: atmel,sama5d2-sdhci: add microchip,lan969x-sdhci The LAN969x SDMMC controller has its own base clock divider and, unlike diff --git a/patches/linux/6.18.56/0055-mmc-sdhci-of-at91-add-LAN969x-support.patch b/patches/linux/6.18.56/0055-mmc-sdhci-of-at91-add-LAN969x-support.patch index fb62bbd5cc..0658a234c0 100644 --- a/patches/linux/6.18.56/0055-mmc-sdhci-of-at91-add-LAN969x-support.patch +++ b/patches/linux/6.18.56/0055-mmc-sdhci-of-at91-add-LAN969x-support.patch @@ -1,7 +1,7 @@ From ae98994e45aaa55ecff09321aa65601561aefab4 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 19 Aug 2026 11:35:44 +0200 -Subject: [PATCH 55/86] mmc: sdhci-of-at91: add LAN969x support +Subject: [PATCH 055/102] mmc: sdhci-of-at91: add LAN969x support The LAN969x SDMMC controller is an Atmel SDMMC IP block, but the driver has no compatible for it, so the eMMC on LAN969x boards never probes. diff --git a/patches/linux/6.18.56/0056-mmc-sdhci-of-at91-stop-SDCLK-on-reset-and-add-eMMC-h.patch b/patches/linux/6.18.56/0056-mmc-sdhci-of-at91-stop-SDCLK-on-reset-and-add-eMMC-h.patch index 36f60a3d2a..c589579ec9 100644 --- a/patches/linux/6.18.56/0056-mmc-sdhci-of-at91-stop-SDCLK-on-reset-and-add-eMMC-h.patch +++ b/patches/linux/6.18.56/0056-mmc-sdhci-of-at91-stop-SDCLK-on-reset-and-add-eMMC-h.patch @@ -1,7 +1,7 @@ From 4a50546ae4abb37070703d1ce20149b65fdd1a51 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 19 Aug 2026 11:37:48 +0200 -Subject: [PATCH 56/86] mmc: sdhci-of-at91: stop SDCLK on reset and add eMMC +Subject: [PATCH 056/102] mmc: sdhci-of-at91: stop SDCLK on reset and add eMMC hardware reset The controller is reset, and its signaling mode changed, with SDCLK diff --git a/patches/linux/6.18.56/0057-net-sparx5-lan969x-populate-netdev-of_node.patch b/patches/linux/6.18.56/0057-net-sparx5-lan969x-populate-netdev-of_node.patch index 3b692f39fd..8b8cd77f29 100644 --- a/patches/linux/6.18.56/0057-net-sparx5-lan969x-populate-netdev-of_node.patch +++ b/patches/linux/6.18.56/0057-net-sparx5-lan969x-populate-netdev-of_node.patch @@ -1,7 +1,7 @@ From ba2f77ed48aae661eed6cb213162a612f4792931 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 10 Nov 2025 13:42:53 +0100 -Subject: [PATCH 57/86] net: sparx5/lan969x: populate netdev of_node +Subject: [PATCH 057/102] net: sparx5/lan969x: populate netdev of_node Populate of_node for the port netdevs, to make the individual ports of_nodes available in sysfs. diff --git a/patches/linux/6.18.56/0058-arm64-dts-microchip-add-LAN969x-clock-header-file.patch b/patches/linux/6.18.56/0058-arm64-dts-microchip-add-LAN969x-clock-header-file.patch index d0fa8eb3c3..988288e4da 100644 --- a/patches/linux/6.18.56/0058-arm64-dts-microchip-add-LAN969x-clock-header-file.patch +++ b/patches/linux/6.18.56/0058-arm64-dts-microchip-add-LAN969x-clock-header-file.patch @@ -1,7 +1,7 @@ From b8f745bf145aed656a87edcf2cee16caef2950e2 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 2 Mar 2026 12:20:11 +0100 -Subject: [PATCH 58/86] arm64: dts: microchip: add LAN969x clock header file +Subject: [PATCH 058/102] arm64: dts: microchip: add LAN969x clock header file LAN969x uses hardware clock indexes, so document theses in a header to make them humanly readable. diff --git a/patches/linux/6.18.56/0059-arm64-dts-microchip-add-LAN969x-support.patch b/patches/linux/6.18.56/0059-arm64-dts-microchip-add-LAN969x-support.patch index 835c902c4b..2115e45f73 100644 --- a/patches/linux/6.18.56/0059-arm64-dts-microchip-add-LAN969x-support.patch +++ b/patches/linux/6.18.56/0059-arm64-dts-microchip-add-LAN969x-support.patch @@ -1,7 +1,7 @@ From c3fc7872ff9176197161d2695a4d3fbbe2d90f90 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 2 Mar 2026 12:20:12 +0100 -Subject: [PATCH 59/86] arm64: dts: microchip: add LAN969x support +Subject: [PATCH 059/102] arm64: dts: microchip: add LAN969x support Add support for Microchip LAN969x switch SoC series by adding the SoC DTSI. diff --git a/patches/linux/6.18.56/0060-arm64-dts-microchip-add-EV23X71A-board.patch b/patches/linux/6.18.56/0060-arm64-dts-microchip-add-EV23X71A-board.patch index cf54bc54f4..f3f08deb10 100644 --- a/patches/linux/6.18.56/0060-arm64-dts-microchip-add-EV23X71A-board.patch +++ b/patches/linux/6.18.56/0060-arm64-dts-microchip-add-EV23X71A-board.patch @@ -1,7 +1,7 @@ From b10c04d81bb96ab0b09484ee2a2373482b56f26d Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 2 Mar 2026 12:20:14 +0100 -Subject: [PATCH 60/86] arm64: dts: microchip: add EV23X71A board +Subject: [PATCH 060/102] arm64: dts: microchip: add EV23X71A board Microchip EV23X71A is an LAN9696 based evaluation board. diff --git a/patches/linux/6.18.56/0061-arm64-dts-microchip-lan969x-add-OTP-node.patch b/patches/linux/6.18.56/0061-arm64-dts-microchip-lan969x-add-OTP-node.patch index 1a593defed..d945b26487 100644 --- a/patches/linux/6.18.56/0061-arm64-dts-microchip-lan969x-add-OTP-node.patch +++ b/patches/linux/6.18.56/0061-arm64-dts-microchip-lan969x-add-OTP-node.patch @@ -1,7 +1,7 @@ From c6af26aff045284fc98aae066d46385e74ab82c8 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 15 May 2026 13:59:09 +0200 -Subject: [PATCH 61/86] arm64: dts: microchip: lan969x: add OTP node +Subject: [PATCH 061/102] arm64: dts: microchip: lan969x: add OTP node Add the required OTP on LAN969x. diff --git a/patches/linux/6.18.56/0062-arm64-dts-microchip-lan969x-add-SDMMC-nodes.patch b/patches/linux/6.18.56/0062-arm64-dts-microchip-lan969x-add-SDMMC-nodes.patch index 5a143e36d2..6544accd81 100644 --- a/patches/linux/6.18.56/0062-arm64-dts-microchip-lan969x-add-SDMMC-nodes.patch +++ b/patches/linux/6.18.56/0062-arm64-dts-microchip-lan969x-add-SDMMC-nodes.patch @@ -1,7 +1,7 @@ From 7df6f654874cc48a7bea2d8d2d78fe8e9c1c90c7 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 19 Aug 2026 11:38:37 +0200 -Subject: [PATCH 62/86] arm64: dts: microchip: lan969x: add SDMMC nodes +Subject: [PATCH 062/102] arm64: dts: microchip: lan969x: add SDMMC nodes The SoC has two SDMMC controllers, neither of which is described, so boards with eMMC have no way to enable it. Add both, disabled by diff --git a/patches/linux/6.18.56/0063-arm64-dts-microchip-ev23x71a-enable-eMMC.patch b/patches/linux/6.18.56/0063-arm64-dts-microchip-ev23x71a-enable-eMMC.patch index 7e5db38be6..3efe3f059c 100644 --- a/patches/linux/6.18.56/0063-arm64-dts-microchip-ev23x71a-enable-eMMC.patch +++ b/patches/linux/6.18.56/0063-arm64-dts-microchip-ev23x71a-enable-eMMC.patch @@ -1,7 +1,7 @@ From b41259b09f91a140bc0350d7f473d9fee3fbe8b3 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 19 Aug 2026 11:38:37 +0200 -Subject: [PATCH 63/86] arm64: dts: microchip: ev23x71a: enable eMMC +Subject: [PATCH 063/102] arm64: dts: microchip: ev23x71a: enable eMMC The board has an 8-bit eMMC on SDMMC0, and defines the emmc_sd pinctrl group for it, but nothing enables the controller. diff --git a/patches/linux/6.18.56/0064-wifi-brcmfmac-survey-the-requested-interface-not-the.patch b/patches/linux/6.18.56/0064-wifi-brcmfmac-survey-the-requested-interface-not-the.patch index bd1609210b..a46cf23277 100644 --- a/patches/linux/6.18.56/0064-wifi-brcmfmac-survey-the-requested-interface-not-the.patch +++ b/patches/linux/6.18.56/0064-wifi-brcmfmac-survey-the-requested-interface-not-the.patch @@ -1,8 +1,8 @@ From 54b38afac5c46299c8a7ebe594b35774d134389b Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Tue, 30 Jun 2026 15:42:48 +0200 -Subject: [PATCH 64/86] wifi: brcmfmac: survey the requested interface, not the - primary +Subject: [PATCH 064/102] wifi: brcmfmac: survey the requested interface, not + the primary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0065-wifi-brcmfmac-honor-caller-s-rtnl-lock-when-stopping.patch b/patches/linux/6.18.56/0065-wifi-brcmfmac-honor-caller-s-rtnl-lock-when-stopping.patch index a4b45e6373..20bd879b03 100644 --- a/patches/linux/6.18.56/0065-wifi-brcmfmac-honor-caller-s-rtnl-lock-when-stopping.patch +++ b/patches/linux/6.18.56/0065-wifi-brcmfmac-honor-caller-s-rtnl-lock-when-stopping.patch @@ -1,8 +1,8 @@ From b2c521013e15b485455469fa4a263de2cf04dd02 Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Tue, 30 Jun 2026 15:43:14 +0200 -Subject: [PATCH 65/86] wifi: brcmfmac: honor caller's rtnl lock when stopping - primary interface +Subject: [PATCH 065/102] wifi: brcmfmac: honor caller's rtnl lock when + stopping primary interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0066-wifi-brcmfmac-let-cfg_to_ndev-return-NULL-and-harden.patch b/patches/linux/6.18.56/0066-wifi-brcmfmac-let-cfg_to_ndev-return-NULL-and-harden.patch index 30f45c859a..faea82ca58 100644 --- a/patches/linux/6.18.56/0066-wifi-brcmfmac-let-cfg_to_ndev-return-NULL-and-harden.patch +++ b/patches/linux/6.18.56/0066-wifi-brcmfmac-let-cfg_to_ndev-return-NULL-and-harden.patch @@ -1,7 +1,7 @@ From 0e082428a5013b6d35567cf122119af2772f909f Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Tue, 30 Jun 2026 15:46:25 +0200 -Subject: [PATCH 66/86] wifi: brcmfmac: let cfg_to_ndev() return NULL and +Subject: [PATCH 066/102] wifi: brcmfmac: let cfg_to_ndev() return NULL and harden its callers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/patches/linux/6.18.56/0067-wifi-brcmfmac-support-deletion-and-recreation-of-the.patch b/patches/linux/6.18.56/0067-wifi-brcmfmac-support-deletion-and-recreation-of-the.patch index c31f3cb56a..080d9babe8 100644 --- a/patches/linux/6.18.56/0067-wifi-brcmfmac-support-deletion-and-recreation-of-the.patch +++ b/patches/linux/6.18.56/0067-wifi-brcmfmac-support-deletion-and-recreation-of-the.patch @@ -1,8 +1,8 @@ From 102750f26d8cbf5d58936b4c9c6da801433c4314 Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Tue, 30 Jun 2026 16:05:17 +0200 -Subject: [PATCH 67/86] wifi: brcmfmac: support deletion and recreation of the - primary interface +Subject: [PATCH 067/102] wifi: brcmfmac: support deletion and recreation of + the primary interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0068-wifi-brcmfmac-report-port-authorized-after-offloaded.patch b/patches/linux/6.18.56/0068-wifi-brcmfmac-report-port-authorized-after-offloaded.patch index cf1ee0196c..09419130a7 100644 --- a/patches/linux/6.18.56/0068-wifi-brcmfmac-report-port-authorized-after-offloaded.patch +++ b/patches/linux/6.18.56/0068-wifi-brcmfmac-report-port-authorized-after-offloaded.patch @@ -1,8 +1,8 @@ From b965ae0c551ae3e2df6937933b6bdd1c42753a43 Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Thu, 10 Sep 2026 08:29:47 +0200 -Subject: [PATCH 68/86] wifi: brcmfmac: report port authorized after offloaded - PSK/SAE handshake +Subject: [PATCH 068/102] wifi: brcmfmac: report port authorized after + offloaded PSK/SAE handshake MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0069-dt-bindings-arm-AT91-document-Novarq-Tactical-1000.patch b/patches/linux/6.18.56/0069-dt-bindings-arm-AT91-document-Novarq-Tactical-1000.patch index e1668444dd..89672fa056 100644 --- a/patches/linux/6.18.56/0069-dt-bindings-arm-AT91-document-Novarq-Tactical-1000.patch +++ b/patches/linux/6.18.56/0069-dt-bindings-arm-AT91-document-Novarq-Tactical-1000.patch @@ -1,7 +1,7 @@ From f5f7599f8af9db56b09f26d22b20ee75defe1717 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 9 Jan 2026 13:27:00 +0100 -Subject: [PATCH 69/86] dt-bindings: arm: AT91: document Novarq Tactical 1000 +Subject: [PATCH 069/102] dt-bindings: arm: AT91: document Novarq Tactical 1000 Novarq Tactical 1000 is a Microchip LAN9696 based 24x1G + 4x10G SFP switch. diff --git a/patches/linux/6.18.56/0070-arm64-dts-microchip-add-Novarq-Tactical-1000.patch b/patches/linux/6.18.56/0070-arm64-dts-microchip-add-Novarq-Tactical-1000.patch index e6e34024e8..fdf5d12b1d 100644 --- a/patches/linux/6.18.56/0070-arm64-dts-microchip-add-Novarq-Tactical-1000.patch +++ b/patches/linux/6.18.56/0070-arm64-dts-microchip-add-Novarq-Tactical-1000.patch @@ -1,7 +1,7 @@ From 8b4b41c449758451c7dbcdd9092b9bd0e0a2b082 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 30 Sep 2025 13:37:49 +0200 -Subject: [PATCH 70/86] arm64: dts: microchip: add Novarq Tactical 1000 +Subject: [PATCH 070/102] arm64: dts: microchip: add Novarq Tactical 1000 Novarq Tactical 1000 is a LAN9696 based switch featuring 24x1G and 4x10G SFP ports. diff --git a/patches/linux/6.18.56/0071-arm64-dts-microchip-tactical-1000-add-port-names.patch b/patches/linux/6.18.56/0071-arm64-dts-microchip-tactical-1000-add-port-names.patch index bbef8699f9..e5e73ef057 100644 --- a/patches/linux/6.18.56/0071-arm64-dts-microchip-tactical-1000-add-port-names.patch +++ b/patches/linux/6.18.56/0071-arm64-dts-microchip-tactical-1000-add-port-names.patch @@ -1,7 +1,7 @@ From f973058544e1b44fd551db6a230659dbce67313e Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 30 Jun 2026 11:23:47 +0200 -Subject: [PATCH 71/86] arm64: dts: microchip: tactical-1000: add port names +Subject: [PATCH 071/102] arm64: dts: microchip: tactical-1000: add port names Now that driver supports parsing the "label" property, populate port names as they are physically wired up. diff --git a/patches/linux/6.18.56/0072-arm64-dts-microchip-tactical-1000-adapt-to-6.18.patch b/patches/linux/6.18.56/0072-arm64-dts-microchip-tactical-1000-adapt-to-6.18.patch index 5c5071bfd0..903fdcb8bc 100644 --- a/patches/linux/6.18.56/0072-arm64-dts-microchip-tactical-1000-adapt-to-6.18.patch +++ b/patches/linux/6.18.56/0072-arm64-dts-microchip-tactical-1000-adapt-to-6.18.patch @@ -1,7 +1,7 @@ From d49813a338d7c9b9d69e38e1fcc1c937c588a071 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 20 Sep 2026 12:22:43 +0200 -Subject: [PATCH 72/86] arm64: dts: microchip: tactical-1000: adapt to 6.18 +Subject: [PATCH 072/102] arm64: dts: microchip: tactical-1000: adapt to 6.18 Novarq develop against 7.3, which has three things 6.18 does not: a QSPI controller node, a tmon that also provides the fan PWM, and hence a SoC diff --git a/patches/linux/6.18.56/0073-dt-bindings-arm-AT91-document-EV23X71A-board.patch b/patches/linux/6.18.56/0073-dt-bindings-arm-AT91-document-EV23X71A-board.patch index 66b1c907bb..1006f37777 100644 --- a/patches/linux/6.18.56/0073-dt-bindings-arm-AT91-document-EV23X71A-board.patch +++ b/patches/linux/6.18.56/0073-dt-bindings-arm-AT91-document-EV23X71A-board.patch @@ -1,7 +1,7 @@ From b5afb74688659804bbed4bca3928c98975daf2c8 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 2 Mar 2026 12:20:13 +0100 -Subject: [PATCH 73/86] dt-bindings: arm: AT91: document EV23X71A board +Subject: [PATCH 073/102] dt-bindings: arm: AT91: document EV23X71A board Microchip EV23X71A board is an LAN9696 based evaluation board. diff --git a/patches/linux/6.18.56/0074-net-dsa-Skip-DCB-default-priority-init-on-unsupporte.patch b/patches/linux/6.18.56/0074-net-dsa-Skip-DCB-default-priority-init-on-unsupporte.patch index e696bec023..c64b4c125e 100644 --- a/patches/linux/6.18.56/0074-net-dsa-Skip-DCB-default-priority-init-on-unsupporte.patch +++ b/patches/linux/6.18.56/0074-net-dsa-Skip-DCB-default-priority-init-on-unsupporte.patch @@ -1,8 +1,8 @@ From 45fd43a305c595ea24b0de5cf090affeffc4029f Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 9 Sep 2026 17:04:21 +0200 -Subject: [PATCH 74/86] net: dsa: Skip DCB default priority init on unsupported - switches +Subject: [PATCH 074/102] net: dsa: Skip DCB default priority init on + unsupported switches A driver serving several chip generations has one dsa_switch_ops for all of them, so port_get_default_prio is set even for chips that have diff --git a/patches/linux/6.18.56/0075-net-dsa-Generalise-the-global-DCB-APP-mirroring-help.patch b/patches/linux/6.18.56/0075-net-dsa-Generalise-the-global-DCB-APP-mirroring-help.patch index 33b9569356..78f1c46c53 100644 --- a/patches/linux/6.18.56/0075-net-dsa-Generalise-the-global-DCB-APP-mirroring-help.patch +++ b/patches/linux/6.18.56/0075-net-dsa-Generalise-the-global-DCB-APP-mirroring-help.patch @@ -1,7 +1,7 @@ From cb31150945889f02373febe89f618afee36c6e62 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 22 Sep 2026 13:51:07 +0200 -Subject: [PATCH 75/86] net: dsa: Generalise the global DCB APP mirroring +Subject: [PATCH 075/102] net: dsa: Generalise the global DCB APP mirroring helper A switch with one classification table for all its ports programs it diff --git a/patches/linux/6.18.56/0076-net-dsa-Support-the-PCP-APP-selector.patch b/patches/linux/6.18.56/0076-net-dsa-Support-the-PCP-APP-selector.patch index 6058238227..ad4cde7f64 100644 --- a/patches/linux/6.18.56/0076-net-dsa-Support-the-PCP-APP-selector.patch +++ b/patches/linux/6.18.56/0076-net-dsa-Support-the-PCP-APP-selector.patch @@ -1,7 +1,7 @@ From e1a8005d2fc1813b71e65c79e700da5635e639e0 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 9 Sep 2026 17:04:22 +0200 -Subject: [PATCH 76/86] net: dsa: Support the PCP APP selector +Subject: [PATCH 076/102] net: dsa: Support the PCP APP selector Add port_add_pcp_prio, port_del_pcp_prio and port_get_pcp_prio switch ops and route the DCB_APP_SEL_PCP selector to them, mirroring the DSCP diff --git a/patches/linux/6.18.56/0077-net-dsa-Support-DCB-priority-rewrite.patch b/patches/linux/6.18.56/0077-net-dsa-Support-DCB-priority-rewrite.patch index e3760a8474..c8fbf15f70 100644 --- a/patches/linux/6.18.56/0077-net-dsa-Support-DCB-priority-rewrite.patch +++ b/patches/linux/6.18.56/0077-net-dsa-Support-DCB-priority-rewrite.patch @@ -1,7 +1,7 @@ From fb3ca7803ea876f7d96514696615143835bc78f9 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 9 Sep 2026 17:10:32 +0200 -Subject: [PATCH 77/86] net: dsa: Support DCB priority rewrite +Subject: [PATCH 077/102] net: dsa: Support DCB priority rewrite The DCB rewrite table maps a priority back to the PCP and DEI, or the DSCP, that frames are remarked with on egress. DSA has no diff --git a/patches/linux/6.18.56/0078-net-dsa-Support-the-IEEE-ETS-managed-object.patch b/patches/linux/6.18.56/0078-net-dsa-Support-the-IEEE-ETS-managed-object.patch index a6cd10f789..a1d1884ad2 100644 --- a/patches/linux/6.18.56/0078-net-dsa-Support-the-IEEE-ETS-managed-object.patch +++ b/patches/linux/6.18.56/0078-net-dsa-Support-the-IEEE-ETS-managed-object.patch @@ -1,7 +1,7 @@ From 46e44f7a4aba62dc94958e01638e8e93ea62e59b Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 22 Sep 2026 13:53:23 +0200 -Subject: [PATCH 78/86] net: dsa: Support the IEEE ETS managed object +Subject: [PATCH 078/102] net: dsa: Support the IEEE ETS managed object A switch port's transmission selection is configured today through the ets queuing discipline, which numbers its bands the other way round diff --git a/patches/linux/6.18.56/0079-net-sparx5-fix-sleep-in-atomic-context-in-MAC-table-.patch b/patches/linux/6.18.56/0079-net-sparx5-fix-sleep-in-atomic-context-in-MAC-table-.patch index 1de8c48052..48cef6f8e9 100644 --- a/patches/linux/6.18.56/0079-net-sparx5-fix-sleep-in-atomic-context-in-MAC-table-.patch +++ b/patches/linux/6.18.56/0079-net-sparx5-fix-sleep-in-atomic-context-in-MAC-table-.patch @@ -1,7 +1,7 @@ From 308c9dbab764bef06cceb03e412b491ea57234b5 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 7 Oct 2026 11:42:12 +0200 -Subject: [PATCH 79/86] net: sparx5: fix sleep in atomic context in MAC table +Subject: [PATCH 079/102] net: sparx5: fix sleep in atomic context in MAC table access Adding or removing a multicast address on an unbridged switch port diff --git a/patches/linux/6.18.56/0080-misc-sparx5-symreg-symreg-debugfs-driver-DBB-1045.patch b/patches/linux/6.18.56/0080-misc-sparx5-symreg-symreg-debugfs-driver-DBB-1045.patch index 91e66a5b8d..69ebcd6764 100644 --- a/patches/linux/6.18.56/0080-misc-sparx5-symreg-symreg-debugfs-driver-DBB-1045.patch +++ b/patches/linux/6.18.56/0080-misc-sparx5-symreg-symreg-debugfs-driver-DBB-1045.patch @@ -1,7 +1,7 @@ From c6f8b6a050e69c951ce0ce56467b6e9fd9a638f1 Mon Sep 17 00:00:00 2001 From: Steen Hegelund Date: Wed, 21 Jan 2026 10:09:45 +0100 -Subject: [PATCH 80/86] misc: sparx5-symreg; symreg debugfs driver (DBB-1045) +Subject: [PATCH 080/102] misc: sparx5-symreg; symreg debugfs driver (DBB-1045) Expose the switch register space of Microchip Sparx5 family SoCs through /sys/kernel/debug/symreg/mem, for the symreg tool, which diff --git a/patches/linux/6.18.56/0081-net-ethernet-mtk_wed-map-WO-memory-regions-without-r.patch b/patches/linux/6.18.56/0081-net-ethernet-mtk_wed-map-WO-memory-regions-without-r.patch index 4119c93b28..ed8a7755e4 100644 --- a/patches/linux/6.18.56/0081-net-ethernet-mtk_wed-map-WO-memory-regions-without-r.patch +++ b/patches/linux/6.18.56/0081-net-ethernet-mtk_wed-map-WO-memory-regions-without-r.patch @@ -1,7 +1,7 @@ From e0e6e024e5e5866ff61b68bf9790fd24e542d7e2 Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Mon, 5 Oct 2026 14:37:56 +0200 -Subject: [PATCH 81/86] net: ethernet: mtk_wed: map WO memory regions without +Subject: [PATCH 081/102] net: ethernet: mtk_wed: map WO memory regions without requesting them MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/patches/linux/6.18.56/0082-wifi-mt76-wed-fix-kernel-panic-on-non-DBDC-MT7986.patch b/patches/linux/6.18.56/0082-wifi-mt76-wed-fix-kernel-panic-on-non-DBDC-MT7986.patch index e9b8b07da5..6670a0a7c9 100644 --- a/patches/linux/6.18.56/0082-wifi-mt76-wed-fix-kernel-panic-on-non-DBDC-MT7986.patch +++ b/patches/linux/6.18.56/0082-wifi-mt76-wed-fix-kernel-panic-on-non-DBDC-MT7986.patch @@ -1,7 +1,7 @@ From 8c40b743cd6f8117c177291988ffe1980e9595cd Mon Sep 17 00:00:00 2001 From: Zhi-Jun You Date: Wed, 15 Jul 2026 23:21:12 +0800 -Subject: [PATCH 82/86] wifi: mt76: wed: fix kernel panic on non-DBDC MT7986 +Subject: [PATCH 082/102] wifi: mt76: wed: fix kernel panic on non-DBDC MT7986 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0083-wifi-mt76-mt7915-set-up-WPDMA-RX-ring-0-for-WED-on-a.patch b/patches/linux/6.18.56/0083-wifi-mt76-mt7915-set-up-WPDMA-RX-ring-0-for-WED-on-a.patch index e91a7477ff..2a943bac75 100644 --- a/patches/linux/6.18.56/0083-wifi-mt76-mt7915-set-up-WPDMA-RX-ring-0-for-WED-on-a.patch +++ b/patches/linux/6.18.56/0083-wifi-mt76-mt7915-set-up-WPDMA-RX-ring-0-for-WED-on-a.patch @@ -1,8 +1,8 @@ From 9b5a788cc9a12f1b23ad0e84dfaa78008a399b49 Mon Sep 17 00:00:00 2001 From: Mattias Walström Date: Wed, 7 Oct 2026 22:20:00 +0200 -Subject: [PATCH 83/86] wifi: mt76: mt7915: set up WPDMA RX ring 0 for WED on a - band1-only device +Subject: [PATCH 083/102] wifi: mt76: mt7915: set up WPDMA RX ring 0 for WED on + a band1-only device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/patches/linux/6.18.56/0084-wifi-mt76-mt7915-add-WDS-support-when-WED-is-enabled.patch b/patches/linux/6.18.56/0084-wifi-mt76-mt7915-add-WDS-support-when-WED-is-enabled.patch index e390eb26d8..c327683ade 100644 --- a/patches/linux/6.18.56/0084-wifi-mt76-mt7915-add-WDS-support-when-WED-is-enabled.patch +++ b/patches/linux/6.18.56/0084-wifi-mt76-mt7915-add-WDS-support-when-WED-is-enabled.patch @@ -1,7 +1,8 @@ From a39e22f32c005cb7096e66789000b2a9209444d0 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 20 Oct 2025 15:59:12 +0200 -Subject: [PATCH 84/86] wifi: mt76: mt7915: add WDS support when WED is enabled +Subject: [PATCH 084/102] wifi: mt76: mt7915: add WDS support when WED is + enabled The current WED only supports 256 wcid, whereas mt7986 can support up to 512 entries, so firmware provides a rule to get sta_info by DA when wcid diff --git a/patches/linux/6.18.56/0085-net-ethernet-mtk_wed-increase-WED-v2-WDMA-RESV_BUFF-.patch b/patches/linux/6.18.56/0085-net-ethernet-mtk_wed-increase-WED-v2-WDMA-RESV_BUFF-.patch index cceaca7b92..338c368543 100644 --- a/patches/linux/6.18.56/0085-net-ethernet-mtk_wed-increase-WED-v2-WDMA-RESV_BUFF-.patch +++ b/patches/linux/6.18.56/0085-net-ethernet-mtk_wed-increase-WED-v2-WDMA-RESV_BUFF-.patch @@ -1,8 +1,8 @@ From 3d86eb80be2c4367e3293e783d26b6b452840287 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Wed, 19 Aug 2026 21:07:07 +0800 -Subject: [PATCH 85/86] net: ethernet: mtk_wed: increase WED v2 WDMA RESV_BUFF - to 0x80 +Subject: [PATCH 085/102] net: ethernet: mtk_wed: increase WED v2 WDMA + RESV_BUFF to 0x80 Change WDMA RESV_BUFF from 0x40 to 0x80 to avoid CDM TX FIFO overflow. Without this patch mt7986 and mt7981 may have WDMA TX hang issue. This diff --git a/patches/linux/6.18.56/0086-wifi-mt76-mt7915-publish-wcid-before-MCU-add-command.patch b/patches/linux/6.18.56/0086-wifi-mt76-mt7915-publish-wcid-before-MCU-add-command.patch index 6a67d8d839..13eb4c5eba 100644 --- a/patches/linux/6.18.56/0086-wifi-mt76-mt7915-publish-wcid-before-MCU-add-command.patch +++ b/patches/linux/6.18.56/0086-wifi-mt76-mt7915-publish-wcid-before-MCU-add-command.patch @@ -1,7 +1,7 @@ From 57ac316f70b79c0e2709e6221aca6b9026f8ce1c Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Fri, 21 Aug 2026 09:00:01 +0000 -Subject: [PATCH 86/86] wifi: mt76: mt7915: publish wcid before MCU add +Subject: [PATCH 086/102] wifi: mt76: mt7915: publish wcid before MCU add commands mt7915_add_interface() enables the BSS/STA in firmware via diff --git a/patches/linux/6.18.56/0087-riscv-dts-spacemit-add-UART-pinctrl-combinations.patch b/patches/linux/6.18.56/0087-riscv-dts-spacemit-add-UART-pinctrl-combinations.patch index 2eb2d12a3d..64ddfe9fac 100644 --- a/patches/linux/6.18.56/0087-riscv-dts-spacemit-add-UART-pinctrl-combinations.patch +++ b/patches/linux/6.18.56/0087-riscv-dts-spacemit-add-UART-pinctrl-combinations.patch @@ -1,7 +1,7 @@ From 48c77340af8c65ca397f9566482107efcaf6e438 Mon Sep 17 00:00:00 2001 From: Hendrik Hamerlinck Date: Wed, 17 Sep 2025 08:59:07 +0200 -Subject: [PATCH 087/100] riscv: dts: spacemit: add UART pinctrl combinations +Subject: [PATCH 087/102] riscv: dts: spacemit: add UART pinctrl combinations Add UART pinctrl configurations based on the SoC datasheet and the downstream Bianbu Linux tree. The drive strength values were taken from @@ -20,7 +20,7 @@ Signed-off-by: Yixun Lan 1 file changed, 428 insertions(+), 2 deletions(-) diff --git a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi -index 48c4b4131164..09a4f1dca4f1 100644 +index 48c4b41311646..09a4f1dca4f1a 100644 --- a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi @@ -75,11 +75,437 @@ gmac1-clk-ref-pins { diff --git a/patches/linux/6.18.56/0088-riscv-dts-spacemit-enable-the-i2c8-adapter.patch b/patches/linux/6.18.56/0088-riscv-dts-spacemit-enable-the-i2c8-adapter.patch index cdf644c7ad..e47dd86864 100644 --- a/patches/linux/6.18.56/0088-riscv-dts-spacemit-enable-the-i2c8-adapter.patch +++ b/patches/linux/6.18.56/0088-riscv-dts-spacemit-enable-the-i2c8-adapter.patch @@ -1,7 +1,7 @@ From 068107e84a2ca23f5a3b5f21406dcf42e4ebed8a Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Mon, 25 Aug 2025 12:20:54 -0500 -Subject: [PATCH 088/100] riscv: dts: spacemit: enable the i2c8 adapter +Subject: [PATCH 088/102] riscv: dts: spacemit: enable the i2c8 adapter Define properties for the I2C adapter that provides access to the SpacemiT P1 PMIC. Enable this adapter on the Banana Pi BPI-F3. @@ -17,7 +17,7 @@ Signed-off-by: Yixun Lan 3 files changed, 32 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts -index b2c40bae6094..a3644606d8b6 100644 +index b2c40bae60945..a3644606d8b60 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -92,6 +92,18 @@ &pdma { @@ -40,7 +40,7 @@ index b2c40bae6094..a3644606d8b6 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_2_cfg>; diff --git a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi -index 09a4f1dca4f1..7c87811b3ecd 100644 +index 09a4f1dca4f1a..7c87811b3ecd5 100644 --- a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi @@ -75,6 +75,13 @@ gmac1-clk-ref-pins { @@ -58,7 +58,7 @@ index 09a4f1dca4f1..7c87811b3ecd 100644 uart0_0_cfg: uart0-0-cfg { uart0-0-pins { diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spacemit/k1.dtsi -index 6cdcd80a7c83..3de35077731c 100644 +index 6cdcd80a7c83b..3de35077731c7 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -459,6 +459,19 @@ pwm7: pwm@d401bc00 { diff --git a/patches/linux/6.18.56/0089-riscv-dts-spacemit-define-fixed-regulators.patch b/patches/linux/6.18.56/0089-riscv-dts-spacemit-define-fixed-regulators.patch index 90ebf139be..41fa6f11fa 100644 --- a/patches/linux/6.18.56/0089-riscv-dts-spacemit-define-fixed-regulators.patch +++ b/patches/linux/6.18.56/0089-riscv-dts-spacemit-define-fixed-regulators.patch @@ -1,7 +1,7 @@ From 043fcd090f07cc71f957fd928f37687674d928eb Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Mon, 25 Aug 2025 12:20:55 -0500 -Subject: [PATCH 089/100] riscv: dts: spacemit: define fixed regulators +Subject: [PATCH 089/102] riscv: dts: spacemit: define fixed regulators Define the DC power input and the 4v power as fixed supplies in the Banana Pi BPI-F3. @@ -15,7 +15,7 @@ Signed-off-by: Yixun Lan 1 file changed, 19 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts -index a3644606d8b6..db73207d9c27 100644 +index a3644606d8b60..db73207d9c276 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -30,6 +30,25 @@ led1 { diff --git a/patches/linux/6.18.56/0090-riscv-dts-spacemit-define-regulator-constraints.patch b/patches/linux/6.18.56/0090-riscv-dts-spacemit-define-regulator-constraints.patch index bf82c8bfa4..94087edceb 100644 --- a/patches/linux/6.18.56/0090-riscv-dts-spacemit-define-regulator-constraints.patch +++ b/patches/linux/6.18.56/0090-riscv-dts-spacemit-define-regulator-constraints.patch @@ -1,7 +1,7 @@ From cacb7418c46d57155175e52b436805fed4aa20bb Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Mon, 25 Aug 2025 12:20:56 -0500 -Subject: [PATCH 090/100] riscv: dts: spacemit: define regulator constraints +Subject: [PATCH 090/102] riscv: dts: spacemit: define regulator constraints Define basic constraints for the regulators in the SpacemiT P1 PMIC, as implemented in the Banana Pi BPI-F3. @@ -15,7 +15,7 @@ Signed-off-by: Yixun Lan 1 file changed, 104 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts -index db73207d9c27..371ce71a4985 100644 +index db73207d9c276..371ce71a49855 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -120,6 +120,110 @@ pmic@41 { diff --git a/patches/linux/6.18.56/0091-riscv-dts-spacemit-pinctrl-update-register-and-IO-po.patch b/patches/linux/6.18.56/0091-riscv-dts-spacemit-pinctrl-update-register-and-IO-po.patch index 228495b685..558bdcb4ae 100644 --- a/patches/linux/6.18.56/0091-riscv-dts-spacemit-pinctrl-update-register-and-IO-po.patch +++ b/patches/linux/6.18.56/0091-riscv-dts-spacemit-pinctrl-update-register-and-IO-po.patch @@ -1,7 +1,7 @@ From 5bae9efff65c6f9dc84e4fbd2fa791e390faa782 Mon Sep 17 00:00:00 2001 From: Troy Mitchell Date: Thu, 8 Jan 2026 14:42:40 +0800 -Subject: [PATCH 091/100] riscv: dts: spacemit: pinctrl: update register and IO +Subject: [PATCH 091/102] riscv: dts: spacemit: pinctrl: update register and IO power Change the size of the reg register to 0x1000 to match the hardware. @@ -26,7 +26,7 @@ Signed-off-by: Yixun Lan 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spacemit/k1.dtsi -index 3de35077731c..9c13e4dc9f3c 100644 +index 3de35077731c7..9c13e4dc9f3c4 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -474,10 +474,11 @@ i2c8: i2c@d401d800 { diff --git a/patches/linux/6.18.56/0092-riscv-dts-spacemit-Update-PMIC-supply-properties-for.patch b/patches/linux/6.18.56/0092-riscv-dts-spacemit-Update-PMIC-supply-properties-for.patch index 06df3aec18..da1adf6905 100644 --- a/patches/linux/6.18.56/0092-riscv-dts-spacemit-Update-PMIC-supply-properties-for.patch +++ b/patches/linux/6.18.56/0092-riscv-dts-spacemit-Update-PMIC-supply-properties-for.patch @@ -1,7 +1,7 @@ From c43dadfab8e147e016d5d3cd72ee91c23971e2cb Mon Sep 17 00:00:00 2001 From: Guodong Xu Date: Fri, 6 Feb 2026 10:32:04 +0800 -Subject: [PATCH 092/100] riscv: dts: spacemit: Update PMIC supply properties +Subject: [PATCH 092/102] riscv: dts: spacemit: Update PMIC supply properties for BPI-F3 and Jupiter Use per-regulator supply names in pmic "spacemit,p1" node to specify @@ -18,7 +18,7 @@ Signed-off-by: Yixun Lan 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts -index 371ce71a4985..a1ba3f212690 100644 +index 371ce71a49855..a1ba3f2126905 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -120,7 +120,15 @@ pmic@41 { diff --git a/patches/linux/6.18.56/0093-riscv-dts-spacemit-k1-add-SD-card-controller-and-pin.patch b/patches/linux/6.18.56/0093-riscv-dts-spacemit-k1-add-SD-card-controller-and-pin.patch index ad0433648a..490ac82469 100644 --- a/patches/linux/6.18.56/0093-riscv-dts-spacemit-k1-add-SD-card-controller-and-pin.patch +++ b/patches/linux/6.18.56/0093-riscv-dts-spacemit-k1-add-SD-card-controller-and-pin.patch @@ -1,7 +1,7 @@ From fb3def3a2d5dc721fe67dbc409f7a447217e8b43 Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Fri, 15 May 2026 12:48:59 +0200 -Subject: [PATCH 093/100] riscv: dts: spacemit: k1: add SD card controller and +Subject: [PATCH 093/102] riscv: dts: spacemit: k1: add SD card controller and pinctrl support Add SD card controller infrastructure for SpacemiT K1 SoC with complete @@ -30,7 +30,7 @@ Signed-off-by: Yixun Lan 2 files changed, 53 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi -index 7c87811b3ecd..ce76b1243d29 100644 +index 7c87811b3ecd5..ce76b1243d295 100644 --- a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi @@ -525,4 +525,44 @@ pwm14-1-pins { @@ -79,7 +79,7 @@ index 7c87811b3ecd..ce76b1243d29 100644 + }; }; diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spacemit/k1.dtsi -index 9c13e4dc9f3c..2adc11153b3b 100644 +index 9c13e4dc9f3c4..2adc11153b3b2 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -870,6 +870,19 @@ storage-bus { diff --git a/patches/linux/6.18.56/0094-riscv-dts-spacemit-k1-bananapi-f3-add-SD-card-suppor.patch b/patches/linux/6.18.56/0094-riscv-dts-spacemit-k1-bananapi-f3-add-SD-card-suppor.patch index d703bb84ae..ce91beb026 100644 --- a/patches/linux/6.18.56/0094-riscv-dts-spacemit-k1-bananapi-f3-add-SD-card-suppor.patch +++ b/patches/linux/6.18.56/0094-riscv-dts-spacemit-k1-bananapi-f3-add-SD-card-suppor.patch @@ -1,7 +1,7 @@ From a0b9436be9e9d76155b95a1142d3b1f5dbbf13de Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Fri, 15 May 2026 12:49:01 +0200 -Subject: [PATCH 094/100] riscv: dts: spacemit: k1-bananapi-f3: add SD card +Subject: [PATCH 094/102] riscv: dts: spacemit: k1-bananapi-f3: add SD card support with UHS modes Add complete SD card controller support with UHS high-speed modes. @@ -33,7 +33,7 @@ Signed-off-by: Yixun Lan 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts -index a1ba3f212690..a9588f3a3dbe 100644 +index a1ba3f2126905..a9588f3a3dbe8 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -14,6 +14,9 @@ aliases { diff --git a/patches/linux/6.18.56/0095-mmc-sdhci-of-k1-add-reset-support.patch b/patches/linux/6.18.56/0095-mmc-sdhci-of-k1-add-reset-support.patch index 051786143d..7beab99b69 100644 --- a/patches/linux/6.18.56/0095-mmc-sdhci-of-k1-add-reset-support.patch +++ b/patches/linux/6.18.56/0095-mmc-sdhci-of-k1-add-reset-support.patch @@ -1,7 +1,7 @@ From 561c4dc54c3d6401b4f34b80c4425da589d1b6c1 Mon Sep 17 00:00:00 2001 From: Yixun Lan Date: Tue, 23 Dec 2025 10:24:50 +0800 -Subject: [PATCH 095/100] mmc: sdhci-of-k1: add reset support +Subject: [PATCH 095/102] mmc: sdhci-of-k1: add reset support The SDHCI controller of SpacemiT K1 SoC requires two resets, add support to explicitly request the reset line and deassert during @@ -17,7 +17,7 @@ Signed-off-by: Ulf Hansson 1 file changed, 20 insertions(+) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c -index 0cc97e23a2f9..a160e1d5d9bd 100644 +index 0cc97e23a2f9c..a160e1d5d9bde 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -15,6 +15,7 @@ diff --git a/patches/linux/6.18.56/0096-mmc-sdhci-of-k1-enable-essential-clock-infrastructur.patch b/patches/linux/6.18.56/0096-mmc-sdhci-of-k1-enable-essential-clock-infrastructur.patch index 7b0c87e9fe..ab62e21e5d 100644 --- a/patches/linux/6.18.56/0096-mmc-sdhci-of-k1-enable-essential-clock-infrastructur.patch +++ b/patches/linux/6.18.56/0096-mmc-sdhci-of-k1-enable-essential-clock-infrastructur.patch @@ -1,7 +1,7 @@ From 9dcad57290c8f0268b7d4f7ab544a33d2a92514f Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Mon, 11 May 2026 10:53:57 +0200 -Subject: [PATCH 096/100] mmc: sdhci-of-k1: enable essential clock +Subject: [PATCH 096/102] mmc: sdhci-of-k1: enable essential clock infrastructure for SD operation Ensure SD card pins receive clock signals by enabling pad clock @@ -30,7 +30,7 @@ Signed-off-by: Ulf Hansson 1 file changed, 13 insertions(+) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c -index a160e1d5d9bd..76f4799c6491 100644 +index a160e1d5d9bde..76f4799c64914 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -21,6 +21,13 @@ diff --git a/patches/linux/6.18.56/0097-mmc-sdhci-of-k1-add-regulator-and-pinctrl-voltage-sw.patch b/patches/linux/6.18.56/0097-mmc-sdhci-of-k1-add-regulator-and-pinctrl-voltage-sw.patch index 16d146fbf0..ba4762c76c 100644 --- a/patches/linux/6.18.56/0097-mmc-sdhci-of-k1-add-regulator-and-pinctrl-voltage-sw.patch +++ b/patches/linux/6.18.56/0097-mmc-sdhci-of-k1-add-regulator-and-pinctrl-voltage-sw.patch @@ -1,7 +1,7 @@ From ed58a909842615d15ac19a341fd83c20ba405205 Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Mon, 11 May 2026 10:53:58 +0200 -Subject: [PATCH 097/100] mmc: sdhci-of-k1: add regulator and pinctrl voltage +Subject: [PATCH 097/102] mmc: sdhci-of-k1: add regulator and pinctrl voltage switching support Add voltage switching infrastructure for UHS-I modes by integrating both @@ -29,7 +29,7 @@ Signed-off-by: Ulf Hansson 1 file changed, 72 insertions(+) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c -index 76f4799c6491..6b01ac7ebf58 100644 +index 76f4799c64914..6b01ac7ebf58c 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -16,6 +16,7 @@ diff --git a/patches/linux/6.18.56/0098-mmc-sdhci-of-k1-add-comprehensive-SDR-tuning-support.patch b/patches/linux/6.18.56/0098-mmc-sdhci-of-k1-add-comprehensive-SDR-tuning-support.patch index 21aaa7c63a..070a458ff8 100644 --- a/patches/linux/6.18.56/0098-mmc-sdhci-of-k1-add-comprehensive-SDR-tuning-support.patch +++ b/patches/linux/6.18.56/0098-mmc-sdhci-of-k1-add-comprehensive-SDR-tuning-support.patch @@ -1,7 +1,7 @@ From ee33c390956dce5ac9602c904b44df030bf4ba11 Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Mon, 11 May 2026 10:53:59 +0200 -Subject: [PATCH 098/100] mmc: sdhci-of-k1: add comprehensive SDR tuning +Subject: [PATCH 098/102] mmc: sdhci-of-k1: add comprehensive SDR tuning support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -33,7 +33,7 @@ Signed-off-by: Ulf Hansson 1 file changed, 172 insertions(+) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c -index 6b01ac7ebf58..bbad58c6e729 100644 +index 6b01ac7ebf58c..bbad58c6e729e 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -69,6 +69,28 @@ diff --git a/patches/linux/6.18.56/0099-driver-reset-spacemit-p1-add-driver-for-poweroff-reb.patch b/patches/linux/6.18.56/0099-driver-reset-spacemit-p1-add-driver-for-poweroff-reb.patch index 7211f638fb..8b4463df64 100644 --- a/patches/linux/6.18.56/0099-driver-reset-spacemit-p1-add-driver-for-poweroff-reb.patch +++ b/patches/linux/6.18.56/0099-driver-reset-spacemit-p1-add-driver-for-poweroff-reb.patch @@ -1,7 +1,7 @@ From 33784f1f5221651440a3043d41ed314b9263d9d4 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Mon, 3 Nov 2025 00:01:59 +0100 -Subject: [PATCH 099/100] driver: reset: spacemit-p1: add driver for +Subject: [PATCH 099/102] driver: reset: spacemit-p1: add driver for poweroff/reboot This driver implements poweroff/reboot support for the SpacemiT P1 PMIC @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Reichel create mode 100644 drivers/power/reset/spacemit-p1-reboot.c diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig -index 8248895ca903..f6c1bcbb57de 100644 +index 8248895ca9038..f6c1bcbb57def 100644 --- a/drivers/power/reset/Kconfig +++ b/drivers/power/reset/Kconfig @@ -283,6 +283,15 @@ config POWER_RESET_KEYSTONE @@ -44,7 +44,7 @@ index 8248895ca903..f6c1bcbb57de 100644 bool "Generic SYSCON regmap reset driver" depends on OF diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile -index 51da87e05ce7..0e4ae6f6b5c5 100644 +index 51da87e05ce76..0e4ae6f6b5c55 100644 --- a/drivers/power/reset/Makefile +++ b/drivers/power/reset/Makefile @@ -24,6 +24,7 @@ obj-$(CONFIG_POWER_RESET_LTC2952) += ltc2952-poweroff.o @@ -57,7 +57,7 @@ index 51da87e05ce7..0e4ae6f6b5c5 100644 obj-$(CONFIG_POWER_RESET_TORADEX_EC) += tdx-ec-poweroff.o diff --git a/drivers/power/reset/spacemit-p1-reboot.c b/drivers/power/reset/spacemit-p1-reboot.c new file mode 100644 -index 000000000000..9ec3d1fff8f3 +index 0000000000000..9ec3d1fff8f3d --- /dev/null +++ b/drivers/power/reset/spacemit-p1-reboot.c @@ -0,0 +1,88 @@ diff --git a/patches/linux/6.18.56/0100-mfd-simple-mfd-i2c-Add-a-reboot-cell-for-the-Spacemi.patch b/patches/linux/6.18.56/0100-mfd-simple-mfd-i2c-Add-a-reboot-cell-for-the-Spacemi.patch index 69da4414f4..af26f2ce8a 100644 --- a/patches/linux/6.18.56/0100-mfd-simple-mfd-i2c-Add-a-reboot-cell-for-the-Spacemi.patch +++ b/patches/linux/6.18.56/0100-mfd-simple-mfd-i2c-Add-a-reboot-cell-for-the-Spacemi.patch @@ -1,7 +1,7 @@ From 19c5b3dcf894c3ef73dd6304aa8758b16121b5ad Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Mon, 3 Nov 2025 00:02:00 +0100 -Subject: [PATCH 100/100] mfd: simple-mfd-i2c: Add a reboot cell for the +Subject: [PATCH 100/102] mfd: simple-mfd-i2c: Add a reboot cell for the SpacemiT P1 chip Add a "spacemit-p1-reboot" cell for the SpacemiT P1 chip. @@ -17,7 +17,7 @@ Signed-off-by: Lee Jones 1 file changed, 1 insertion(+) diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c -index 9f911afafc25..c4166e8aeb9d 100644 +index 9f911afafc25e..c4166e8aeb9d5 100644 --- a/drivers/mfd/simple-mfd-i2c.c +++ b/drivers/mfd/simple-mfd-i2c.c @@ -99,6 +99,7 @@ static const struct regmap_config spacemit_p1_regmap_config = { diff --git a/patches/linux/6.18.56/0101-nvmem-core-do-not-defer-on-a-cell-missing-from-a-bou.patch b/patches/linux/6.18.56/0101-nvmem-core-do-not-defer-on-a-cell-missing-from-a-bou.patch new file mode 100644 index 0000000000..20877d25f8 --- /dev/null +++ b/patches/linux/6.18.56/0101-nvmem-core-do-not-defer-on-a-cell-missing-from-a-bou.patch @@ -0,0 +1,36 @@ +From 04c0618953892cb96967b3a4df7cf850eee46f06 Mon Sep 17 00:00:00 2001 +From: Mattias Walström +Date: Tue, 13 Oct 2026 10:52:54 +0200 +Subject: [PATCH 101/102] nvmem: core: do not defer on a cell missing from a + bound layout +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +A layout adds all of its cells from its probe, so once it is bound a +missing cell will never show up. Return -ENOENT instead of deferring +forever, e.g. an ONIE TLV layout over an unprovisioned partition must +not keep the Ethernet driver from probing. + +Signed-off-by: Mattias Walström +--- + drivers/nvmem/core.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c +index b61028ae0651b..10d02e9293cf3 100644 +--- a/drivers/nvmem/core.c ++++ b/drivers/nvmem/core.c +@@ -1453,7 +1453,11 @@ struct nvmem_cell *of_nvmem_cell_get(struct device_node *np, const char *id) + of_node_put(cell_np); + if (!cell_entry) { + nvmem_layout_module_put(nvmem); +- ret = nvmem->layout ? -EPROBE_DEFER : -ENOENT; ++ /* A bound layout has added all its cells, the cell is not there */ ++ if (nvmem->layout && !device_is_bound(&nvmem->layout->dev)) ++ ret = -EPROBE_DEFER; ++ else ++ ret = -ENOENT; + __nvmem_device_put(nvmem); + return ERR_PTR(ret); + } diff --git a/patches/linux/6.18.56/0102-net-dsa-mt7530-lock-the-MDIO-bus-around-regmap-irq-a.patch b/patches/linux/6.18.56/0102-net-dsa-mt7530-lock-the-MDIO-bus-around-regmap-irq-a.patch new file mode 100644 index 0000000000..b4b766ddf5 --- /dev/null +++ b/patches/linux/6.18.56/0102-net-dsa-mt7530-lock-the-MDIO-bus-around-regmap-irq-a.patch @@ -0,0 +1,108 @@ +From ddd76d5210e1e33cd10a0fa153690a706b3f4908 Mon Sep 17 00:00:00 2001 +From: Mattias Walström +Date: Tue, 13 Oct 2026 15:48:00 +0200 +Subject: [PATCH 102/102] net: dsa: mt7530: lock the MDIO bus around regmap-irq + accesses +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The MDIO register protocol is stateful: a page select followed by two +half word accesses. The driver's own helpers take bus->mdio_lock +around each sequence and the main regmap is created with locking +disabled, which worked until the interrupt controller was converted to +regmap-irq. regmap-irq accesses that unlocked regmap directly, from +its thread when reading and acking SYS_INT_STS and from the irq core's +bus lock callbacks when updating SYS_INT_EN, so its page selects +interleave with everybody else's locked sequences. + +A locked 32-bit write to a register at the same half word offset on +another page then commits its value into the register the irq thread +just selected. Seen on a BPI-R3 (MT7531): a link-change interrupt +being acked while the SGMII PCS wrote QPHY_PWR_STATE_CTRL landed that +value in SYS_INT_EN, which went to zero. From then on every PHY link +change was left pending in SYS_INT_STS, no interrupt ever fired again +and ports that were bounced stayed at no-link although the PHYs had +negotiated, until a reboot. + +Give the irq chip a regmap of its own that takes the MDIO bus lock +around every access, the same way the PCS regmaps already do. The MMIO +backend keeps using its regmap, which has regular locking. + +Fixes: 254f6b272e3b ("dsa: mt7530: Utilize REGMAP_IRQ for interrupt handling") +Signed-off-by: Mattias Walström +--- + drivers/net/dsa/mt7530-mdio.c | 25 +++++++++++++++++++++++++ + drivers/net/dsa/mt7530.c | 3 ++- + drivers/net/dsa/mt7530.h | 1 + + 3 files changed, 28 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/dsa/mt7530-mdio.c b/drivers/net/dsa/mt7530-mdio.c +index 119fdbea57160..749d746329369 100644 +--- a/drivers/net/dsa/mt7530-mdio.c ++++ b/drivers/net/dsa/mt7530-mdio.c +@@ -154,6 +154,7 @@ static const struct regmap_config regmap_config = { + static int + mt7530_probe(struct mdio_device *mdiodev) + { ++ struct regmap_config *irq_config; + struct mt7530_priv *priv; + struct device_node *dn; + int ret; +@@ -212,6 +213,30 @@ mt7530_probe(struct mdio_device *mdiodev) + if (IS_ERR(priv->regmap)) + return PTR_ERR(priv->regmap); + ++ /* regmap-irq accesses the switch from its own thread and from the ++ * irq core's bus lock callbacks, outside the driver's MDIO locking. ++ * The register protocol is stateful, a page select followed by two ++ * half words, so an unlocked access interleaving with a locked one ++ * commits the latter's value into whatever register the former ++ * selected. Give the irq chip a regmap that takes the MDIO bus lock ++ * around every access, like the PCS regmaps do. ++ */ ++ irq_config = devm_kmemdup(priv->dev, ®map_config, ++ sizeof(regmap_config), GFP_KERNEL); ++ if (!irq_config) ++ return -ENOMEM; ++ ++ irq_config->name = "irq"; ++ irq_config->disable_locking = false; ++ irq_config->lock = mt7530_mdio_regmap_lock; ++ irq_config->unlock = mt7530_mdio_regmap_unlock; ++ irq_config->lock_arg = &priv->bus->mdio_lock; ++ ++ priv->irq_regmap = devm_regmap_init(priv->dev, &mt7530_regmap_bus, ++ priv, irq_config); ++ if (IS_ERR(priv->irq_regmap)) ++ return PTR_ERR(priv->irq_regmap); ++ + if (priv->id == ID_MT7531) + priv->create_sgmii = mt7531_create_sgmii; + +diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c +index 4001779a91591..00f1a00745c38 100644 +--- a/drivers/net/dsa/mt7530.c ++++ b/drivers/net/dsa/mt7530.c +@@ -2259,7 +2259,8 @@ mt7530_setup_irq(struct mt7530_priv *priv) + mt7530_set(priv, MT7530_TOP_SIG_CTRL, TOP_SIG_CTRL_NORMAL); + + ret = devm_regmap_add_irq_chip_fwnode(dev, dev_fwnode(dev), +- priv->regmap, irq, ++ priv->irq_regmap ?: priv->regmap, ++ irq, + IRQF_ONESHOT, + 0, &mt7530_regmap_irq_chip, + &irq_data); +diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h +index 69be713bab800..76cb4845b5c62 100644 +--- a/drivers/net/dsa/mt7530.h ++++ b/drivers/net/dsa/mt7530.h +@@ -882,6 +882,7 @@ struct mt7530_priv { + struct dsa_switch *ds; + struct mii_bus *bus; + struct regmap *regmap; ++ struct regmap *irq_regmap; + struct reset_control *rstc; + struct regulator *core_pwr; + struct regulator *io_pwr;