▲ Click the blue text above to follow us and not miss any valuable articles!After much anticipation, Linux 6.14 has finally been released. This update brings extensive hardware support to the Arm and RISC-V ecosystems while continuously enhancing system performance through core subsystem optimizations.Recently, Linux founder Linus Torvalds announced the release of Linux 6.14 on LKML: “On Monday morning (early for me, since I am not an early riser), I was supposed to release version 6.14 according to the usual Sunday afternoon schedule, but clearly did not. I wanted to find some excuses, like a major issue that arose at the last minute causing the delay. But the fact is – it was purely an oversight. There was no urgent matter yesterday; I was just cleaning up some unrelated tasks in preparation for the merge window and completely forgot about the release. Sigh, this delay is entirely unreasonable, and it means the merge window is now open. Bad actors (or incompetent ones) can’t rest.”Interestingly, just before the stable release of Linux 6.14, developers submitted a fix patch that reverted an optimization introduced two years ago, addressing a performance issue in the kernel scheduler.This patch undoes an optimization code introduced two years ago, aimed at resolving the performance degradation of the kernel scheduler. Although the optimization reduced the cost of sched_move_task when using CONFIG_SCHED_AUTOGROUP, it negatively impacted other workloads. For instance, the spawn test performance of UnixBench dropped by about 30% with auto-group enabled, affecting other tasks as well.The latest fix patch restores the original scheduler behavior, submitted by developer Ingo Molnar. He stated that although the fix is late, the performance impact on the relevant workloads is significant, thus it must be implemented as soon as possible. Unless Linus Torvalds raises objections, this patch will soon be merged into the Linux 6.14 Git repository, enhancing the kernel’s stability and efficiency across various tasks.Now, let’s take a look at the main new changes and architectural updates in Linux 6.14!
Important Updates
Using NT Synchronization (NTSYNC) primitives driver to improve Wine performance — The Windows NT operating system provides some synchronization primitives that differ from those in Unix systems. This can lead to performance issues when trying to emulate this behavior for software like Wine. This version adds a driver that allows modeling NT primitives, reducing emulation time, which can significantly improve performance in certain programs (especially games).Added FUSE support for io_uring-based communication — Linux 6.14 adds FUSE support for io-uring communication between the kernel and user space, improving FUSE performance by reducing context switches and other techniques. Check the documentation for more details.amdxdna driver for AMD NPU — The NPU in x86 SoCs is relatively new, and support for Linux (and even Windows) has been inconsistent so far. The latest Linux release adds the amdxdna driver based on the AMD XDNA architecture to accelerate CNN, LLM, and other AI workloads on AMD NPUs (Neural Processing Units).Uncached buffered I/O — This adds support to selectively send buffered I/O, whose pages will be discarded from the page cache after data is read/written. Fast storage devices can fill RAM with excessive page caches that may not be needed; this feature allows reading/writing data and discarding it from the cache without facing the drawbacks and complexities of direct I/O. See more details in the LWN article.Minor changes to enable Microsoft CoPilot keys on some new laptops from Lenovo, HP, and Dell.
Highlights of Arm Architecture Updates
Allwinner
-
Allwinner F1C100s — Added DMA support, ASoC driver
-
ASoC — Added 24-bit support for S/PDIF. Tested on H3, A64, H6, and H313 SoCs, up to 192KHz
-
DTS changes
- Enabled audio codec on Lichee Pi Nano
- Added syscon and SRAM nodes for A100
- Enabled CPU DVFS for Taijie TX1
- Explicitly configure TCON0 based on the display output used
- New devices — None
Rockchip
-
PHY driver
- Added support for Rockchip RK3576 combined phy
-
Rockchip PCIe phy mutual exclusion and register mapping updates
-
PCIe controller driver
- Simplified clock and reset handling using bulk interface
- Pass rockchip_pcie (not void) pointer to rockchip_pcie_disable_clocks()
-
Return -ENOMEM when pci_epc_mem_alloc_addr() fails, instead of success
-
Rockchip DesignWare PCIe controller driver
- Use dll_link_up IRQ to detect link establishment and enumerate devices, so users do not have to manually rescan
-
Tell DWC core not to wait for link establishment, as ‘sys’ interrupt is needed to detect link establishment events
-
Pinctrl — New sub-driver for Rockchip RK3562 SoC
-
IOMMU — Added DT binding for Rockchip RK3576
-
SPI — ACPI support and improved power management for Rockchip SFC controller
-
New devices
- Radxa E52C SBC (RK3582)
- BigTreeTech CB2 module and Pi2 SBC (RK3566)
- H96 Max V58 TV box (RK3588)
- Rockchip RK3576 EVB1 development board
- Firefly ITX-3588J (Core-3588J SoM)
-
Orange Pi 5 Max
Amlogic
-
Driver changes — Document system control registers found on earlier Meson SoCs
-
DT binding — Convert Amlogic Meson6, Meson8, and Meson8b SDIO/MMC controller bindings to dt-schema.
-
ARM64 DT changes for Linux 6.14 — Removed Broadcom wifi compatibility from GX reference board
-
New devices — None
Samsung
-
Added Samsung Exynos 9810
-
Pinctrl driver — Two fixes for very old error handling and some cleanup.
-
Clock — Samsung Exynos 990 SoC clock driver
-
SoC driver
- Added new binding for sysreg in Exynos 8895.
- Slight improvements to Exynos USI binding.
-
Fixed Smatch warnings in Exynos PMU syscon driver.
-
Samsung DTS ARM64 changes
- Exynos 8895 — Added UART node, PMU (performance) for M2 cluster and I2C controller in camera block (HSI2C in CAM0-3).
- Exynos 990 — Added power management unit (Samsung block), PMU (performance) for M5 cluster and two clock controllers.
- Exynos Auto v920 — Added watchdog and DMA controller.
- Google GS101 — Some minor fixes for phy and USB. Added USB Type-C.
-
Exynos850-e850-96 board: Eliminated gaps in memory layout.
-
DTS ARM changes — Some fixes and improvements for audio effects on Galaxy Tab3 (Exynos 4212).
-
Defconfig changes — None
-
New devices (all smartphones)
- Exynos 9810 — Samsung Galaxy S9 (SM-G960F)
- Exynos 990
- Samsung Galaxy S20 FE (SM-G780F)
-
Samsung Galaxy S20 5G (SM-G980F)
Qualcomm
-
New SoCs
- Qualcomm Snapdragon 8 Elite (SM8750) for high-end smartphones
- Qualcomm Snapdragon AR2 (SAR2130P) for augmented reality glasses.
- Qualcomm IQ6 (QCS610) and IQ8 (QCS8300) industrial “DragonWing” IoT platform.
- Snapdragon 425 (MSM8917) mobile SoC (launched in 2016)
-
Qualcomm IPQ5424 Wi-Fi 7 network chip (some drivers added in Linux 6.3)
-
Clock
- Qualcomm clock controller: IPQ CMN PLL, SM6115 LPASS, SM750 global, tcsr, rpmh and display. X Plus GPU and global. QCS615 rpmh and MSM8937 and MSM8940 RPM.
- Qualcomm Pongo and Taycan Alpha PLLs
-
Qualcomm IPQ5424 NoC related interconnect clocks
-
PHY — Added Qualcomm SAR2130P qmp usb, SAR2130P qmp pcie, QCS615 qusb2 and PCIe, IPQ5424 qmp pcie, IPQ5424 QUSB2 and USB3 PH
-
DMA — Added support for Qualcomm QCS615, QCS8300, SM8750, SA8775P GPI dma controller
-
PCIe controller driver
- Added optional ‘global’ interrupt for link events for SM8550 and SM8650
- Added DT ‘compatible’ string for IPQ5424 PCIe controller
-
Inform DWC core not to wait for link establishment if ‘global’ IRQ is supported for detecting link establishment events
-
Pinctrl
- New sub-driver for Qualcomm MSM8917 SoC TLMM
-
Fixed some missing pins in Qualcomm IPQ5424 TLMM
-
IOMMU — SMMUv2:
- Implemented client-based prefetcher configuration on Qualcomm SoCs
-
Supported Adreno SMMU on Qualcomm SDM670 SOC
-
WiFi
- ath10k — Support for QCA6698AQ IP core
-
ath12k — Enabled MLO for QCN9274
-
Driver updates
- SCM driver — Multiple fixes and improvements related to race conditions during initialization. Enabled QSEECOM and EFI variable services for some 8cx Gen 3 and X Elite boards.
- LLCC driver — Enabled configuration for IPQ5424 and WRCACHE, enabled on X Elite.
- BCM_TCS_CMD() macro has been corrected and cleaned up.
- Added support for SM7225 and X 1 Plus for pd-mapper.
- pmic_glink and its related altmode drivers use protection simplification.
-
Added socinfo for QCS9075 and corrected serial number reading on MSM8916 devices.
-
ARM32 DTS updates
- Described interconnect paths for PCIe EP controller on SDX55 and SDX65.
-
Disabled USB U1/U2 entry to improve USB stability.
-
Linux 6.14 Arm64 DTS updates
- IPQ9574 — Received PCIe and TRNG descriptions, along with some other minor improvements.
- IPQ5332 — Enabled TRNG
- MSM8994 — Huawei Nexus 6P received power and volume key support. USB interrupt has been corrected.
- QCM6490 — FairPhone 5 received camera EEPROM support, Rb3 Gen2 development kit received onboard LED description.
- QRB4210 RB2 — Added HDMI audio playback support.
- SA8775P — Received missing clock controller, CPU bound to PSCI power domain, introduced and enabled DisplayPort on Ride board.
- SDM670 — Described and enabled GPU components for Google Pixel 3a, along with camera clock controller and flash LED.
- SM8250 — Xiaomi Mi Pad 5 Pro enabled WiFi and Bluetooth.
- SM8550 and SM8650 — Described ‘global’ IRQ for PCIe RC controller to support hot-plug events.
- Snapdragon X Elite — Received QUP power domain and OPP, another PCIe controller, another UART, and its SDHCI controller. ASUS Vivobook S 15 enabled GPU and lid switch. Microsoft Surface Laptop 7 received audio configuration, SD card reader support, and USB re-timer. Lenovo Yoga Slim 7x described its lid switch. Dell XPS 13 described re-timer. Lenovo Thinkpad T14s enabled additional USB ports, as well as sound and fingerprint sensors.
- Added Coresight support for SM8450, SM8650, X 1 Elite, QCS615, and QCS8300.
-
Disabled USB U1/U2 entry on various platforms to improve USB stability. Reviewed and corrected sleep clock frequencies on various platforms, as well as various remoteproc mmio address ranges.
-
Linux 6.14 Arm64 defconfig updates
- Enabled core drivers for SM8750, QCS8300, SA8775P, and QCS615.
-
Enabled IPQ command PLL driver. The driver has now merged with 8550, so the 8650 display clock option has been removed.
-
New devices
- MTP and QRD boards for Snapdragon 8 Elite platform
- Ride board for QCS615 platform
- Ride board for QCS8300 platform
- RDP466 board (IPQ5424)
- Xiaomi Redmi 5A (MSM8917)
- Snapdragon AR2 Gen1 smart viewer development kit
- HP Omnibook X laptop and Snapdragon development kit (Snapdragon X Elite)
-
Huawei Matebook E Go and Microsoft Windows development kit 2023 (Snapdragon 8cx Gen 3)
MediaTek
-
Pinctrl — New sub-driver for MediaTek MT7988 SoC
-
PCIe Gen3 controller driver
- Use clk_bulk_prepare_enable() instead of separate clk_bulk_prepare() and clk_bulk_enable()
- Rearranged reset assert/deassert to complete them all in *_power_up() callback
- Documented that Airoha EN7581 needs PHY initialization and power-up before PHY reset assert, unlike other MediaTek Gen3 controllers
- Moved post-reset delay for Airoha EN7581 from en7581 clock.enable() method to mtk_pcie_en7581_power_up()
- Sleep during Airoha EN7581 power-up instead of delay, as this is a non-atomic context
- Skipped PERST# assert during detection and suspend/resume for Airoha EN7581 to avoid hardware defects
-
Enabled asynchronous detection to reduce system boot time
-
Driver updates for Linux 6.14 — Fixed iomap leak issue on error paths in MediaTek devapc driver.
-
MediaTek WiFi (mt76)
- Single wiphy multi-band support (preparing for MLO)
- p2p device support
-
Added support for TP-Link TXE50UH USB adapter
-
Defconfig updates
- Enabled building modules for integrated Ethernet controllers on MediaTek SoCs (MediaTek STAR and MediaTek DWMAC Glue layer)
-
Enabled building modules for sound card on MT8188 and DSP on MT8186.
-
ARM32 DTS updates — None
-
ARM64 device tree updates
- Fixes and improvements:
- MT8516 received some fixes for GICv2, watchdog, and I2C, along with support for keyboard controller;
- MT8390 Genio 700 board received basic audio support;
- MT8365 added alias for its integrated Ethernet controller;
- MT8195 received a significant system suspend fix: all machines based on this SoC and its IoT variants can now correctly perform PM suspend to RAM;
- MT8188 received support for its Mali GPU, with DVFS and a fix that corrected the compatible string in the display controller for OVL hardware;
- MT8186 Chromebook can now correctly suspend, thanks to a fix that moved USB wake from XHCI to MTU3 (USB) controller;
- MT8183 Chromebook fixed its DMIC microphone and correctly supported its second source touchscreen;
- MT7988 SoC and BananaPi R4 board received support for Pinctrl, eMMC/SD, thermal management, CPU DVFS, PCI-Express, as well as peripherals like RT5190A PMIC, PCA9545 I2C multiplexer;
- MT7986 BananaPi R3 board received SATA power socket support;
- Cleanup:
- Removed regulator-compatible property from MediaTek DT;
- Aligned thermal node names with bindings on MT8183 Kukui;
- Corrected subnode names for MT6397 PMIC, fixing dt validation;
- All boards and drivers with wakeup-enabled properties have been changed to match their actual meanings (mediatek,mac-wol now enables wol on mac instead of phy);
-
Added compatibility for MediaTek PMIC keyboard, and it can now pass DTS validation smoothly;
-
New devices
- Lenovo Chromebook Duet based on MT8188 (Ciri)
- ASUS Chromebook Enterprise CM30 based on MT8186 (Starmie)
-
ASUS Chromebook CZ12 and CZ12 Flip based on MT8186 (Chinchou)
Other New Arm Hardware Platforms and SoCs
-
Aspeed
- IBM SPB1 AST2600 BMC machine (Sapphire Rapids x86 server)
-
Ampere Mt Jefferson AST2600 BMC Blaize — Blaize BLZP1600 AI chip, using custom GSP (Graphics Stream Processor) core for computation and two small Cortex-A53 cores running the operating system.
-
Microchip — SAMA7D65 32-bit embedded chip with a Cortex-A7 core
-
Renesas
- R-Car V4H ES3.0 (R8A779G3), an updated version of the low-power automotive SoC V4H (R8A779G0)
-
RZ/G3E (R0A09G047) embedded chip, using Cortex-A55 core
Changes Related to Raspberry Pi
-
Added display pipeline DT node on BCM2712 (Raspberry Pi 5)
-
Enabled TRB oversampling fix on VIA VL805
-
Enabled pinctrl-based I2C multiplexer driver, which has been used for Raspberry Pi 4-based systems to represent I2C multiplexer since switching to device tree files
- bcm2835-unicam: Disabled trigger mode operation — This eliminates corruption (missing lines or invalid inline samples) that occurs on imx219/imx708 sensors when the sensor first starts. This only affects the upstream Unicam kernel driver.
RISC-V Changes
-
There are some changes in the RISC-V architecture in Linux 6.14:
-
Removed redundant AQRL barriers from futex cmpxchg implementation
-
Now prints more page table information on die() and systems that cause physical address overflow
-
Alibaba T-Head
- Enabled TH1520 pinctrl and dwmac drivers in defconfig
- Supported T-Head vector extensions, which include exposing them to user space on systems implementing these extensions
-
Added mailbox node for T-Head TH1520 in device tree
-
Microchip
-
PCIe — Allow dma-noncoherent. PolarFire SoC may be configured in a way that requires non-coherent DMA handling. On RISC-V, the bus is coherent by default, and the dma-noncoherent property is needed to indicate a non-coherent bus or device.
-
SpacemIT
- Added SpacemiT K1
-
Pinctrl — Default enabled Spacemit pin controller in SoC configuration. Without it, the SoC cannot boot, so this is necessary
-
StarFive — Device tree: Milk-V Mars and Pine64 Star64 boards changed their usb0 interface from peripheral mode to host mode.
-
New board — Banana Pi BPI-F3
MIPS ArchitectureFor Linux 6.14, the summary of changes is simply “cleanup and fixes”. Here is the complete list for reference:
- MIPS: pci-legacy: Override pci_address_to_pio
- MIPS: Loongson64: env: Use str_on_off() helper function in prom_lefi_init_env()
- MIPS: Migrate to generic rules for built-in DTB
- MIPS: Fix shmctl/semctl/msgctl system calls for o32
- MIPS/math-emu: Fix simulation of prefx instruction
- MIPS: Loongson: Add comments for interface_info
- MIPS: Loongson64: Remove ROM size unit from boardinfo
- MIPS: traps: Use str_enabled_disabled() in parity_protection_init()
- MIPS: ftrace: Declare ftrace_get_parent_ra_addr() as static
- Revert “MIPS: csrc-r4k: Select HAVE_UNSTABLE_SCHED_CLOCK if SMP && 64BIT”
- MIPS: Fix incorrect format specifier
- MIPS: Add an empty line after __HEAD
- MIPS: kernel: Rename read/write_c0_ecc to read/write_c0_errctl
Developers can view the complete changelog via git log v6.13..v6.14-rc7 –stat or check Kernelnewbies for detailed interpretations.
References
https://www.cnx-software.com/2025/03/25/linux-6-14-release-main-changes-arm-risc-v-and-mips-architecture/
· END ·
Follow EEWorld's subscription account: "Robot Development Circle"
Reply "DS" to receive the complete version of "DeepSeek: From Beginner to Expert"

Scan to add the assistant and reply “Robot”
Join the group to exchange experiences face-to-face with electronic engineers