Linux 6.10 Release – Notable changes, Arm, RISC-V, and MIPS architectures

Linux Torvalds has announced the release of Linux 6.10 on LKML:

So the final week was perhaps not quote as quiet as the preceding ones, which I don’t love – but it also wasn’t noisy enough to warrant an extra rc. And much of the noise this last week was bcachefs again (with netfs a close second), so it was all pretty compartmentalized.

In fact, about a third of the patch for the last week was filesystem-related (there were also some btrfs latency fixes and other noise), which is unusual, but none of it looks particularly scary.

Another third was drivers, and the rest is “random”.

Anyway, this obviously means that the merge window for 6.11 opens up tomorrow. Let’s see how that goes, with much of Europe probably making ready for summer vacation.

And the shortlog below is – as always – just the last week, not some kind of “what happened this release”.

Linus

Linux 6.9 was released about two months ago adding support for Intel Flexible Return and Event Delivery (FRED),  support for running AMD Secure Nested Paging (SNP) guests, mitigations for the “Register File Data Sampling” (RFDS)” hardware vulnerability impacting Intel Atom CPUs, GCC’s named address spaces feature to optimize access to per-CPU data, and initial support for FUSE passthrough among many other changes.

Linux 6.10 Release Changelog

Notable changes in Linux 6.10

Some newsworthy changes in Linux 6.10:

  • Networking performance improvements – The performance of zero-copy send operations using io_uring has been significantly improved and another change makes it possible to “bundle” multiple buffers for send and receive operations.
  • The mseal() system call was merged in Linux 6.10 to allow a process to forbid future changes to portions of its address space. It will notably be used by the Chrome browser to strengthen its internal sandboxing.
  • Bluetooth adds support for MediaTek MT7922 device – This is notably important for people using a mini PC with a MediaTek MT7922 wireless module as found in recent mini PCs such as the GEEKOM A8 where Bluetooth did not work in Linux until now. There was also a separate commit for “USB HW IDs for MT7921/MT7922/MT7925” wireless modules specific to Acer/ASUS notebook models
  • Some file systems changes – New netlink-based protocol for the control of the NFS server in the kernel, the XFS filesystem continues to gain more online repair functionality,  the filesystems in user space (FUSE) subsystem now supports integrity protection with fs-verity, and the overlayfs filesystem is now able to create temporary files using the O_TMPFILE option.

Linux 6.10 Arm changelog

  • Rockchip
    • Add support for RK816 PMIC
    • PHY – Added USBDP combo phy driver
    • Clock driver
      • Add new PLL rate and missing mux on Rockchip RK3568
      • Add missing reset line on Rockchip RK3588
      • Removal of an unused field in struct rockchip_mmc_clock
    • PCIe controller driver
      • Configure endpoint BARs to be 64-bit based on the BAR type, not the BAR value
      • Add DT binding missing maxItems to ep-gpios
      • Set the Subsystem Vendor ID, which was previously zero because it was masked incorrectly
    • Rockchip RK3308 – Added ASoC audio driver
    • New devices
      • Radxa ROCK 3C (RK3566-T)
      • ArmSom Sige7 board (RK3588)
      • GameForce Chi handheld gaming console (RK3326)
      • Forlinx FET3588-C system-on-module (RK3588) and OK3588-C carrier board
      • RR-Mechatronics MECSBC single board computer (RK3568) for blood analysis machines
      • WolfVision PF5 mainboard (RK3568)
  • Amlogic
    • Clock driver
      • Amlogic s4/a1: add regmap maximum register for proper debugfs dump
      • Amlogic s4: add MODULE_DEVICE_TABLE() on PLL and periph controllers
      • Amlogic pll driver: print clock name on lock error to help debug
      • Amlogic vclk: finish dsi clock path support
      • Amlogic license: fix occurence “GPL v2” as reported by checkpatch
    • Thermal driver – Amlogic A1 thermal sensor
    • Amlogic ARM64 DT changes for Linux 6.10:
      • Initial Amlogic A4 & A5 support – Both are application processors designed for smart audio and IoT applications.
      • MIPI DSI support for G12A, G12B & SM1 SoCs
      • Overlay for Khadas TS050 panel for the Khadas VIM3/VIM3L
      • Amlogic T7 reset controller
    • New devices
      • MNT Reform 2 CM4 adapter with a BPI-CM4 Module
      • AV400 (Amlogic A5)
      • BA400 (Amlogic A4)
  • Samsung
    • Clock driver
      • Allow choice of manual or firmware-driven control over PLLs, needed to fully implement CPU clock controllers on Exynos850
      •  Correct PLL clock IDs on ExynosAutov9
      • Propagate certain clock rates to allow setting proper SPI clock rates on Google GS101
      • Add HSI0 and HSI2 clock controllers for Google GS101
      • Mark certain Google GS101 clocks critical
      • Convert old S3C64xx clock controller bindings to DT schema
    • Pinctrl driver
      • Add support for toggling bus clock (PCLK) for any pin controller register accesses. This looks needed on newer Samsung chips, like Google GS101 and probably Exynos850.
      • Drop old, deprecated in v6.1 bindings header with register constants. The constants were moved to DTS headers.
    • DTS Arm changes for Linux 6.10
      • Few cleanups of deprecated properties and node names pointed out by bindings newly converted to DT schema.
      • Fix S5PV210 NAND node size-cells, pointed out by DT schema.
      • Add FIFO depth to each SPI node so we can avoid matching this through DTS alias. Difference SPI instances on given SoC have different FIFO depths.
      • Fix Exynos4212 Galaxy Tab3 usable memory, because stock bootloader is not telling us the truth.
    • Samsung DTS ARM64 changes
      • Add FIFO depth to each SPI node so we can avoid matching this through DTS alias. Difference SPI instances on given SoC have different FIFO depths.
      • Exynos850: add clock controllers providing clocks to CPUs.
      • A few changes exclusively for Google GS101 found in Google Pixel 6:
        • Few cleanups and add missing serial engine (USI) interface nodes.
        • Add HSI0 and HSI2 clock controllers (CMUs).
        • Add USB 3.1 Dual Role Device (DRD) support.
        • Add UFS (Universal Flash Storage) support.
        • Document bus clocks in pin controllers necessary for accessing registers.
    • Defconfig changes – N/A
    • New Devices – N/A
  • Qualcomm
    • LED driver – Add support for Qualcomm PMI8950 PWM to LPG Core
    • Clock driver
      • Add support in qcom RCG and RCG2 for multiple configurations for the same frequency
      • Use above support for IPQ8074 NSS port 5 and 6 clocks to resolve issues
      • Fix the Qualcomm APSS IPQ5018 PLL to fix boot failures of some boards
      • Cleanups and fixes for Qualcomm Stromer PLLs
      • Reduce max CPU frequency on Qualcomm APSS IPQ5018
      • Fix Kconfig dependencies of Qualcomm SM8650 GPU and SC8280XP camera clk drivers
      • Make Qualcomm MSM8998 Venus clocks functional
      • Cleanup downstream remnants related to DisplayPort across Qualcomm SM8450, SM6350, SM8550, and SM8650
      • Reuse the Huayra APSS register map on Qualcomm MSM8996 CBF PLL
      • Use a specific Qualcomm QCS404 compatible for the otherwise generic HFPLL
      • Remove Qualcomm SM8150 CPUSS AHB clk as it is unused
      • Remove an unused field in the Qualcomm RPM clk driver
      • Add missing MODULE_DEVICE_TABLE to Qualcomm MSM8917 and MSM8953 global clock controller drivers
    • Pinctrl driver – New drivers for Qualcomm PMIH0108, PMD8028, PMXR2230 and PM6450
    • IOMMU – ARM-SMMUv2 – Support for fault debugging hardware on Qualcomm implementations
    • PHY driver
      • Added support for Embedded DisplayPort and DisplayPort submodes and driver support on Qualcomm X1E80100 EDP driver
      • Added Qualcomm QMP UFS PHY for SM8475, QMP USB phy for QDU1000/QRU1000 and eusb2-repeater for SMB2360
      • Qualcomm x4 lane EP support for sa8775p, v4 ad v6 support for X1E80100, SM8650 tables for UFS Gear 4 & 5 and correct voltage swing tables
    • I2C driver – Added documentation for the Qualcomm SC8280XP.
    • WiFi
      • Qualcomm (ath11k):
        • P2P support for QCA6390, WCN6855 and QCA2066
        • Support hibernation
        • ieee80211-freq-limit Device Tree property support
      • Qualcomm (ath12k)
        • Refactoring in preparation of multi-link support
        • Suspend and hibernation support
        • ACPI support
        • debugfs support, including dfs_simulate_radar support
    • Driver updates
      • The Qualcomm SCM driver initialization order is improved, to avoid any potential for a client to find a half-initialized SCM instance.
      • The QSEECOM allow list is marked __maybe_unused to avoid build warnings when built with !OF. The error handling related to the interconnect API is cleaned up to avoid handling the impossible IS_ERR() condition.
      • initcall level is bumped to “core” for cmd-db and rpmh-rsc, as dependent drivers like regulators, interconnects and clocks are registered at this level.
      • Another attempt is made to remove the strncpy() usage in cmd-db, this time with strtomem_pad() which has the correct characteristics.
      • The bwmon regmap cache is changed to maple tree.
      • After an attempt to add missing MODULE_DEVICE_TABLEs to debug drivers, the intention of not having them automatically load is documented.
      • Operations on the pmic_glink client list is put under mutual exclusion, to avoid races when clients are being registered. pmic_glink client registered after the firmware notification arrived was not informed that the firmware was up, this is resolved.
      • More DSPs and the apss subsystem is added to the Qualcomm sleep stats driver.
    • ARM32 DTS updates
      • The QCA8074 PHY package found in IPQ4019 is properly described.
      • The Sony Xperia Z2 Tablet is cleaned up and improved, vibrator support is added
      • Nodes representing the PCIe bridges under existing controllers are added for APQ8064, IPQ4019, IPQ8064, and SDX55.
      • A number of fixes throughout to improve compliance with DeviceTree bindings.
    • Arm64 DTS updates for Linux 6.10
      • Snapdragon X Elite – SPMI support is added, together with PMIC definitions. The link properties for DP3 are corrected, and audio-related resets are  introduced. SoundWire properties are corrected.
      • IPQ8074 – UART6 is described and unused gpios from QPIC are removed.
      • Backlight and touchscreen are described on Samsung Grand Prime devices.
      • RGB LED is added to Sony Xperia “Yoshino” devices, on which the volume-up key definition is corrected as well.
      • Light Pulse Generator node is added to PM6150L PMIC, and blocks related to USB Type-C on PM6150 are added.
      • QCS6490 – Enabled Rb3Gen2 UFS storage, USB Type-C management, a couple of remoteprocs and both USB Type-C and native DisplayPort. For the related IDP display is enabled, and the PMIC volume and power
        buttons are described.
      • SC7280 – The inline crypto engine is added and an additional turbo frequency is added to the MDP.
      • USB Type-C port management is introduced for the QRB2210 RB1. WiFi firmware-name qualifier is added to both RB1 and RB2 boards.
      • QCM2290 – The LMH node is added to configure the thresholds as well as provide thermal pressure input.
      • The regulator range is adjusted for SD-card IO on SA8155P ADP, to allow UHS modes.
      • The unused DCC is disabled on SC7180, and unused PMIC gpio block is disabled on Trogdor.
      • For Lenovo Flex 5G, on SC8180X, the GPU firmware path is aligned with agreed upon firmware structure. The frequency of the I2C bus for touchpad is brought up to mitigate missing events. A number of additional cleanups are introduced.
      • SC8280XP – GICv3 ITS is wired up for PCIe. EAS properties ad introduced. A PS_HOLD-based restart node is introduced and acts as a fallback if other mechanisms are unavailable to restart the board. QFPROM is described, missing LMH interrupts for thermal pressure are added. The TCSR download mode register is added, to allow configuring if download mode should be entered on a crash.
      • USB Type-C handling is introduced for Fairphone FP3 as well.
      • SM6350 – Crypto engine and DisplayPort controllers are introduced.
      • WiFi is enabled on the SM8150 Hardware Development Kit (HDK)
      • USB PD properties are added on Xiaomi Mi Pad 5 Pro devices.
      • SM8350 – Interconnect paths are added for UFS to ensure the bus is voted for when the controller is operating.
      • SM8550 – DMA coherency properties are corrected for SMMU and a few consumers. Missing DWC3 quirks are added and the SNPS PHY parameters are adjusted. Fastrpc banks are marked non-secure as needed.
      • SM8650 – The GPU description is introduced and enabled on the QRD. A missing reserved-memory node is added, as is a few missing fastrpc compute banks, and the non-secure-domain flag for other banks.
      • Nodes describing the PCIe bridge under the host controller is added for a bunch of platforms.
      • The GPIO carrying orientation information for USB Type-C is added across Fairphone 5, Lenovo Flex 5G, Lenovo Thinkpad X13s, SM8350 and SM845 HDKs.
      • A few dtbTool-specific compatibles for msm8916 is dropped from the bindings.
      • A number of DeviceTree binding validation issues are corrected.
      • Corrects the obviously broken compatible of the USB VBUS regulator in PM6150.
      • It clears the odd-looking default address on QCS404 EVB, with the expectation that a proper address is provided by other means.
      • The newly added SM8650 GPU node is corrected with a missing memory region.
      • The third DWC3 instance on SC8280XP is added, and enabled on Lenovo Thinkpad X13s to give working fingerprint sensor.
    • Arm64 defconfig updates for Linux 6.1
      • Ext4 security labels are enabled, as the expectation of setcap being functional is widespread.
      • SC7280 display and GPU clock controllers are enabled, to make available related functionality. The driver for the Novatek display panel found in QCM6490 IDP is enabled. The X1E80100 sound card and reset-gpio drivers are enabled to provide the necessary drivers for this. The regulator driver providing VBUS power on a few different platforms is enabled. ath12k is present on several recent platforms, so this is enabled as well.
      • Enables the SM6115 interconnect provider, to make it possible to boot boards on this SoC.
    • New devices
      • Sony Xperia 1V (SM8550)
      • Sony Xperia Z3
      • Samsung Galaxy S5 China (MSM8974)
      • Motorola Moto G 2013 (MSM8226)
  • MediaTek
    • MediaTek MT7621 PCIe controller driver
      • Add DT binding missing ‘reg’ property for child Root Ports
      • Fix theoretical string truncation in PHY name
    • ASoC – Cleanup MediaTek soundcard machine drivers
    • PHY – Add driver for MediaTek XFI T-PHY found in MT7988 SoC (Filogic 880)
    • Driver updates for Linux 6.10
      • Adds a much needed cleanup for the MediaTek CMDQ helper driver and also some more helper functions which will be used in drivers using the MediaTek Global Command Engine (GCE) HW.
      • Adds support for MT8188’s VPPSYS mutex for MDP3 support, a new SoC in the mtk-socinfo driver and changes the marketing name for the pre existing MT8188 SoC.
    • MediaTek (mt76) WiFi:
      • mt7921 LED control
      • mt7925 EHT radiotap support
      • mt7920e PCI support
    • Bluetooth
      • Add support MediaTek MT7921S SDIO
      • Add support for MediaTek MT7922 device
    • Defconfig updates – N/A
    • Arm Devicetree updates – N/A
    • New devices – N/A
  • Other new Arm hardware platforms and SoCs
    • Broadcom – ASUS RT-AC5300 and RT-AC3200 WiFi 5 routers based on Broadcom BCM4709C0 dual-core @ 1.4 GHz
    • NXP – Various industrial and embedded boards based on NXP i.MX6, i.MX8, Layerscape and s32g3 SoCs including
      • Emcraft Systems i.MX8M Plus NavQ+ Kit (NXP i.MX 8M Plus)
      • Toradex Colibri iMX8DX
      • Seeed Studio NPi baseboard
      • NXP S32G-VNP-RDB3 reference design board (S32G3 octa-core Cortex-A53)
  • Raspberry Pi-related changes
    • pinctrl – Make pin-freeing behavior configurable:
      Until now after a bcm2835 pin was freed its pinmux was set to GPIO_IN. So in case it was configured as GPIO_OUT before the configured output level also get lost. As long as GPIO sysfs was used this wasn’t actually a problem because the pins and their possible output level were kept by sysfs.Since more and more Raspberry Pi users start using libgpiod they are confused about this behavior. So make the pin freeing behavior of GPIO_OUT configurable via module parameter. In case pinctrl-bcm2835.persist_gpio_outputs is set to 1, the output level is kept.
    • dt-bindings – serial: brcm,bcm2835-aux-uart: convert to dtschema
    • Device tree changes for Linux 6.10
      • Converted the Raspberry Pi firmware DT binding to YAML, updated the firmware driver to use the proper ‘struct device’ reference for DMA mappings and dropped unneeded properties from the DT node and
        removed the duplicate firmware-clocks property to bcm2835-rpi.dtsi. Added support for the CAM1 camera interface regulator.
      • Added a pinctrl-based multiplexing description to allow the use of I2C0 pins to allow usage between the 40-pin Raspberry Pi header and the CSI and DSI connectors. Described the PCF85063 RTC device available on the CM4 I/O board making use of that pinctrl-based muxing.
      • Added DT nodes for the CSI Unicam camera interfaces on the Raspberry Pi 4 / BCM2711 SoCs
      • Added support for the Ethernet LEDs on Raspberry Pi 4 B and Raspberry Pi CM4 boards.
    • Arm64 defconfig – build snd_bcm2835 as module

RISC-V architecture updates

There have been a few changes for RISC-V in Linux 6.10 from the usual vendors:

  • The RISC-V architecture has gained support for the Rust language. (Note: Arm was added in Linux 6.9)
  • Add byte/half-word compare-and-exchange, emulated via LR/SC loops
  •  Support for Zihintpause in hwprobe
  • Add PR_RISCV_SET_ICACHE_FLUSH_CTX prctl()
  • Support lockless lockrefs
  • Allwinner – Add Allwinner D1 LDOs driver
  • Microchip – Simple addition of a power-monitor on the Icicle dev board, as the binding for it is now in mainline.
  • SOPHGO:
    • Added sdhci support for cv18xx/duo.
    • Added clock support for cv18xx.
    • Added clock for uart/sdhci.
    • Added spi support for cv18xx.
    • Added i2c support for cv18xx.
    • Added reserved memory node for cv1800b/duo.
  • StarFive
    • Support for the Milk-V Mars. This board is incredibly similar to the VisionFive v2 that is already supported, with only the Ethernet configuration being slightly different. Emil requested that a common dtsi file, so my fixes branch is pulled into for-next to avoid an annoying conflict between moved content and some erroneously added nodes that were removed as fixes this cycle.
    • JH8100
      • Add RISCV support to Cadence I2C Kconfig which is used in platforms such as the StarFive JH8100.
      • Add support for  DMA, dwmac
      • Add compatible string and additional interrupt for StarFive JH8100 crypto engine
  • Alibaba T-Head – Re-ordering of some nodes to match the DTS coding style on the th1520.

MIPS in Linux 6.10

Only one sentence can summarize MIPS updates in Linux: “Just cleanups and fixes”.

Here’s the commit log showing the MT7621 MIPS processor used in routers and gateways, and a few others MIPS chips are still being worked on:

  • MIPS: Take in account load hazards for HI/LO restoring
  • MIPS: SGI-IP27: use WARN_ON() output
  • MIPS: SGI-IP27: fix -Wunused-variable in arch_init_irq()
  • MIPS: SGI-IP27: micro-optimize arch_init_irq()
  • mips: dts: ralink: mt7621: reorder the attributes of the root node
  • mips: dts: ralink: mt7621: reorder pci?_phy attributes
  • mips: dts: ralink: mt7621: reorder pcie node attributes and children
  • mips: dts: ralink: mt7621: reorder ethernet node attributes and kids
  • mips: dts: ralink: mt7621: reorder gic node attributes
  • mips: dts: ralink: mt7621: reorder mmc node attributes
  • mips: dts: ralink: mt7621: move pinctrl and sort its children
  • mips: dts: ralink: mt7621: reorder spi0 node attributes
  • mips: dts: ralink: mt7621: reorder i2c node attributes
  • mips: dts: ralink: mt7621: reorder gpio node attributes
  • mips: dts: ralink: mt7621: reorder sysc node attributes
  • mips: dts: ralink: mt7621: reorder mmc regulator attributes
  • mips: dts: ralink: mt7621: reorder cpuintc node attributes
  • mips: dts: ralink: mt7621: reorder cpu node attributes
  • MIPS: Add prototypes for plat_post_relocation() and relocate_kernel()
  • MIPS: Octeon: Add PCIe link status check

The full Linux 6.10 changelog with commit messages only has been generated using the command git log v6.9..v6.10-rc7 --stat. A longer summary of changes can be found on Kernelnewbies.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
1 Comment
oldest
newest
Emmanuel Seyman
Emmanuel Seyman
1 month ago

Does anyone know if/when we’ll get RK3528 support in the mainline kernel?

Khadas VIM4 SBC