Linux 6.13 Release – Main changes, Arm, RISC-V, and MIPS architectures

Linus Torvalds has just announced the release of Linux 6.13 on the Linux Kernel Mailing List:

So nothing horrible or unexpected happened last week, so I’ve tagged and pushed out the final 6.13 release.

It’s mostly some final driver fixes (gpu and networking dominating – normal), with some doc updates too. And various little stuff all over. The shortlog is appended for people who want to see the details (and, as always, it’s just the shortlog for the last week, the full 6.13 log is obviously much too big).

With this, the merge window for 6.14 will obviously open tomorrow. I already have two dozen pull requests pending – thank you, you know who you are.

Linus

Release about two months ago, Linux 6.12 – the new LTS version – brought us real-time “PREEMPT_RT” support that had always required out-of-tree patchsets until now, the completion of the EEVDF (Earliest Eligible Virtual Deadline First) task scheduler fir introduced with Linux 6.6, the implementation of sched_ext (new BPF based task scheduling algorithms), optional QR codes on panic screens for easier problem solving, and various other changed.

Linux 6.13 Changelog

Linux 6.13 notable changes

Some newsworthy changes in Linux 6.13 include:

  • Lazy Preemption (CONFIG_PREEMPT_LAZY) – The Linux kernel supports four different preemption modes up to “full preemption”. But since this mode usually negatively impacts performance, most Linux kernels default to using the “voluntary preemption” mode, which provides some preemption opportunities, but it’s not full preemption. Linux 6.13 adds a “lazy preemption” mode that aims to be a bridge between the voluntary and the full preemption mode. It optimizes fair-class preemption by delaying preemption requests to the tick boundary while working as full preemption for RR/FIFO/DEADLINE classes.
  • Support for atomic writes – Linux 6.13 release adds support for atomic writes in XFS, Ext4’s Direct I/O, and some md RAID modes.
  • Various file system improvements/changes
    • BTRFS: add io_uring command for encoded reads (ENCODED_READ ioctl), new BTRFS_IOC_SUBVOL_SYNC_WAIT ioctl() to allow the “btrfs subvolume sync” command to work without privilege.
    • F2FS: introduce device aliasing file commit and add a sysfs node to limit max read extent count per-inode
    • EXT4: Critical bug fixes and cleanups.
    • Removal of ReiserFS
  • Build system gains optimizations with AutoFDO (automatic feedback-directed optimization) and Propeller

Arm architecture changes

As usual, there were plenty of changes for Arm processors:

  • Arm64
  • Allwinner
    • Allwinner A100 – Added USB driver (Compatible with D1 and A33)
    • Allwinner A523 – Added I2C driver, USB driver, RTC driver (basically extra things since IP blocks are shared with T527 and D1)
    • Allwinner H616 – Added ASoC driver
    • Clock driver
      • Add sigma-delta modulation settings for audio PLL on the H616 SoC, crucial for accurate audio reproduction
      • Constify |struct ccu_reset_map| throughout the sunxi-ng clk drivers
      • Fix the audio PLL divider preset on the D1 SoC
      • Switch to of_property_present() for checking DT property presence
    • DTS changes
      • Add second source magnetometer for Pine Phone
      • Add orientation (mount matrix) for Pine Phone’s accelerometer and magnetometer
      • Enable eMMC and MMC on A100 Perf1
      • Add disable-wp for boards with micro SD card
      • H313/H616/H618/H700: Enable audio codec for all supported boards
    • New Devices – RerVision A33-Vstar board (Allwinner A33)
  • Rockchip
    • Added Rockchip RK3528 and RK3576 TV box SoCs
    • Added Rockchip RK3566T and RK3399-S low-cost version of RK3566 and RK3399
    • Rockchip PCIe controller driver:
      • Define ROCKCHIP_PCIE_AT_SIZE_ALIGN to replace magic 256 endpoint .align value
      • When unmapping an endpoint window, compute the region index instead of searching for it, and verify that the address was mapped
      • When mapping an endpoint window, verify that the address hasn’t been mapped already
      • Implement pci_epc_ops.align_addr() for rockchip-ep
      • Fix MSI IRQ data mapping to observe the alignment constraint, which fixes intermittent page faults in memcpy_toio() and memcpy_fromio()
      • Rename rockchip_pcie_parse_ep_dt() to rockchip_pcie_ep_get_resources() for consistency with similar DT interfaces
      • Skip the unnecessary link train in rockchip_pcie_ep_probe() and do it only in the endpoint start operation
      • Implement pci_epc_ops.stop_link() to disable link training and controller configuration
      • Attempt link training at 5 GT/s when both partners support it
      • Add a handler for PERST# signal so we can detect host-initiated resets and start link training after PERST# is deasserted
    • SPI driver – Cleanups and new logging helper in the driver core for warnings during probe.
    • DRM driver – 4Kp60 support for HDMI 2.1 (No audio, no CEC, or other HDMI 2.1-specific features yet)
    • New devices
  • Amlogic
    • Added RTC driver for Amlogic A4 and A5
    • Reset controller
      • Split the Amlogic reset-meson driver into platform and auxiliary bus drivers.
      • Add support for the reset controller in the G12 and SM1 audio clock controllers.
    • Clock driver
      • Fix hifi_pll rate calculation on Amlogic s4 and c3
      • Move audio reset implementation from the Amlogic axg-audio clock controller driver to the reset directory, using the auxiliary device bus
      • Remove the unnecessary spinlock in the Amlogic MPLL driver
      • Fix Amlogic meson8 clock controller DT bindings
    • ARM DT changes:
      • DT fixes to pass bindings chedk, including:
        • Fixing nodes names
        • Dropping meson6 ATV1200 board
        • Add missing properties
    • Amlogic ARM64 DT changes for Linux 6.13:
      • Add PWM nodes for Amlogic A1 & C3
      • Add missing power-domains properties
      • Fix G12 UART node name
    • New devices – N/A
  • Samsung
    • Added support for Samsung Exynos 8895 (Mongoose M2 cores) and Exynos 990 (Mongoose M5 cores)
    • Pin control driver
      • Added Samsung Exynos 8895, Exynos 9810, and Exymos 990 pin control drivers
      • Correct the condition when applying further interrupt constraints on certain Samsung pin controllers. The condition was simply not effective.
    • Clock drivers
      • Samsung ExynosAutov920 clk drivers for PERIC1, MISC, HSI0 and HSI1
      • Samsung Exynos8895 clk drivers for FSYS0/1, PERIC0/1, PERIS and TOP
      • Tesla FSD: Move number of clocks from DT binding headers to driver, because these are not an ABI and might change while finishing support for the hardware.
      • Google GS101: Do not disable UFS host controller clocks, ever, because gating them does not work well with UFS sleep/power savings. Downstream does not gate them via OS, but uses hardware feature – Automatic Clock Gating – which is not yet supported in upstream
    • Arm64 perf – Support for Samsung’s ‘Mongoose’ CPU PMU
    • Samsung DTS ARM64 changes
      • Add new SoC Samsung Exynos8895 and new board using it: Samsung Galaxy S8. Only small support so far: CPUs (Samsung Mongoose M2), main clock controllers (FSYS, PERIC,
        TOP), pin controllers, SPI for cameras, timers.
      • Add new SoC Samsung Exynos990 and new board using it: Samsung Galaxy Note20 5G (c1s/SM-N981B). Only minimal support so far: CPUs (Samsung Mongoose M5), pin controllers, timers.
      • Prepare for adding new SoC Samsung Exynos9810 – add bindings. The SoC DTSI was not yet ready, but it is posted on the mailing lists so should come soon.
      • ExynosAutov920: Add several clock controllers.
    • Defconfig changes – N/A
    • New Devices
      • Samsung Galaxy S8 (SM-G950F) smartphone.
      • Samsung Galaxy Note20 5G smartphone
  • Qualcomm
    • Added support for Qualcomm Snapdragon 778G (SM7325) phone SoC closely related to the Snapdragon 7c+ Gen 3 (SC7280) used in low-end laptops.
    • PHY – Qualcomm SAR2130P eusb2 support, QCS8300 USB DW3 and QMP USB2 support, X1E80100 QMP PCIe PHY Gen4 support, QCS615 and QCS8300 QMP UFS PHY support and SA8775P eDP PHY support
    • DMA engine – Qualcomm SAR2130P GPI DMA support
    • Pin control
      • New drivers for Qualcomm SM8750, IPQ5424, QCS8300, SAR2130P and QCS615 SoCs
      • Qualcomm SM8750 LPASS (low power audio subsystem) pin control driver
      • Qualcomm PM8937 mixsig IC pin control support, GPIO and MPP (multi-purpose-pin)
    • Clock drivers
      • Global clock controllers for Qualcomm QCS8300 and IPQ5424 SoCs
      • Camera, display, and video clock controllers for Qualcomm SA8775P SoCs
      • Global, display, GPU, TCSR, and RPMh clock controllers for Qualcomm SAR2130P
      • Global, camera, display, GPU, and video clock controllers for Qualcomm SM8475 SoCs
      • Qualcomm IPQ9574 alpha PLLs
    • Qualcomm PCIe controller driver:
      • Add qcom SAR2130P DT binding with an additional clock
      • Enable MSI interrupts if ‘global’ IRQ is supported, since a previous commit unintentionally masked them
      • Move endpoint controller cleanups that depend on refclk from the host to the notifier that tells us the host has deasserted PERST#, when refclk should be valid
      • Add DT binding and driver support for IPQ9574, with Synopsys IP v5.80a and Qcom IP 1.27.0
      • Move the OPP “operating-points-v2” table from the qcom,pcie-sm8450.yaml DT binding to qcom,pcie-common.yaml, where it can be used by other Qcom platforms
      • Add ‘global’ SPI interrupt for events like link-up, link-down to qcom,pcie-x1e80100 DT binding so we can start enumeration when the link comes up
      • Disable ASPM L0s for qcom,pcie-x1e80100 since the PHY is not tuned to support this
      • Add ops_1_21_0 for SC8280X family SoC, which doesn’t use the ‘iommu-map’ DT property and doesn’t need BDF-to-SID translation
    • ASoC – Driver for Qualcomm SM8750
    • WiFi
      • Qualcomm (ath12k):
        • Firmware coredump collection support
        • Add debugfs support for a multitude of statistics
      • Qualcomm (ath5k) – Arcadyan ARV45XX AR2417 & Gigaset SX76[23] AR241[34]A support
    • Qualcomm driver updates summary:
      • Enable QSEECOM, and thereby access to EFI variables, for Lenovo Yoga Slim 7x, Dell XPS 13, Microsoft Surface Pro 9.
      • Last Level Cache Controller (LLCC) driver code is shuffled, to improve readability of the tables.
      • The Qualcomm socinfo driver gains support for QCS615, QCS9100, SAR1130P, SAR2130P, and SA8255P.
      • A few drivers are simplified using dev_err_probe() and guard(), and a few kernel-doc issues are corrected.
    • ARM32 DTS updates
      • IPQ4019 flash partition scheme is moved to nvmem-layout. SDX55 and SDX65 PCIe EP controllers gain missing linux,pci-domain properties.
      • Stylistic improvements across a range of platforms and devices.
    • Arm64 DTS updates for Linux 6.13
      • MSM8998  – Gains support for HDMI. The Lenovo Miix 630 gains support for volume keys, audio and sensor DSPs, touchscreen, and its specific WiFi calibration variant.
      • QCM6490 – Fairphone FP5 gains a thermistor adjacent to UFS/RAM, while the IDP gains UFS and WiFi support
      • QCS6490 – Changes to Rb3Gen2 enable WiFi, Venus, PCIe, SD-card, and volume keys. Adreno speedbins are adjusted and PMU nodes’ compatibles for the two clusters are corrected.
      • DB845C/RB3 and QRB5165 RB5 vision mezzanines are converted to DeviceTree overlays, and both gains CMA heap for libcamera to use.
      • SA8775P – Gains GPI DMA support, support for controlling download mode (bootloader-assisted ramdump support), additional UARTs, and qcrypto support. The “Ride” development board gains WiFi and Bluetooth support.
      • SC8280XP (Snapdragon 8cx Gen3)  – Another UART is described, used in the Microsoft Surface 9 5G. The WiFi/BT combo chip’s power management unit is described on the CRD and Lenovo ThinkPad X13s.
      • SDM630/660 – The GPU SMMU and clock controller is added, as is the A2Noc and LPASS SMMU, and the DSP-based WiFi device. GPU, modem DSP and WiFi is then enabled on the Inforce 6560 development board.
      • SM8450 – On the Hardware Development Kit, the WCN6855 is modelled to enable WiFi and Bluetooth. A “global” interrupt is defined on SM8450 PCIe RC controller, to enable hotplug.
      • Snapdragon X Elite –  USB Type-C controllers are marked as usb-role-switch capable, the GICv3 ITS is enabled for PCIe. TCSR region is described and wired up to allow setting and cleaning the download mode (bootloader-assisted ramdump) flag, and residency numbers for C4/C5 are updated.
      • USB role switch is enabled on Lenovo ThinkPad T14s and the ASUS Vivobook S15. The T14s also gains support for a second source trackpad. The Microsoft Surface Laptop gains LID switch and the USB Type-A connector attached to the multiport controller is enabled. The CRD has its HID device power supplies described.
      • Application SMMU is flagged as DMA coherent across QDU1000, SC7180, SC8180X, SC8280XP, SDM670, SDM845, SM8150, SM8350, SM8450, and X1E80100.
      • The effort to improve style and binding compliance continued.
    • Arm64 defconfig updates for Linux 6.13 – Enable multimedia clock controllers used by SC7280-based devices, such as the QCS6490 RB3Gen2
    • New devices
      • Qualcomm QCS9100/SC8280XP/X1E80100 devices
      • Snapdragon 8cx Gen3-based Microsoft Surface Pro 9 5G,
      • Snapdragon X Elite (X1E80100)-based Dell XPS 13 9345
      • Qualcomm QCS9100 platform
      • SA8775P-based “Ride” development board
      • SM7325 platform
      • Nothing Phone 1
  • MediaTek
    • IOMMU – Enable 35-bit physical address support for mt8186
    • Thermal control – Add static annotation to arrays describing platform sensors in the LVTS Mediatek driver
    • DRM
      • Add support for OF graphs
      • Fix child node ref count handling and use scoped
    • Clock driver
      • MediaTek MT6735 SoC clks
      • MediaTek MT7620, MT7628 and MT7688 MMC clks
    • PCIe Gen3 controller driver:
      • Update mediatek-gen3 DT binding to require the exact number of clocks for each SoC
      • Add support for DT ‘max-link-speed’ and ‘num-lanes’ properties to restrict the link speed and width
    • USB Bluetooth – Additional HWIDS for MediaTek MT7925:
      • VID 0x0489, PID 0xe14f
      • VID 0x0489, PID 0xe150
      • VID 0x0489, PID 0xe151
    • Driver updates for Linux 6.13
    • Defconfig updates – N/A
    • ARM32 DTS updates – N/A
    • ARM64 Devicetree updates
      • MT8195 (also called MT8395)
        • Enabled GPU support on Genio 1200 EVK
        • Added sound-dai-cells for audio codec on MT8195 Cherry Chromebooks
      • MT8192 – Added support Asurada Chromebook variants with Synaptics trackpad
      • MT8188 (also called MT8390):
        • Added support for CPU DVFS, IOMMU, PWM hardware, SPMI bus, Audio, socinfo, PCI-Express, DisplayPort, MIPI DSI, Ethernet, Video HW Encoders (Stateful) and HW Decoders (Stateless), JPEG HW Encoder/Decoder.
        • Enabled GPU support on Genio 700 EVK
      • MT8183:
        • Added support for Video HW Encoders (Stateful)
        • Added HDMI support on MT8183 Pumpkin board
        • Fixed some regulators to provide the actual description of the power rails in MT8183 Kukui Chromebooks
        • Disabled DPI display interface on MT8183 Kukui Chromebooks to fix internal display probing
        • Fixed address of EEPROM found on MT8183 Kakadu/Kodama Chromebooks
        • Added SCL internal delay on I2C2 bus for improved I2C-HID devices reliability on MT8183 Jacuzzi Chromebooks
      • MT7988 – Added support for eFuses and UART controllers
      • Addition of OF Graph support in MediaTek MMSYS and some cleanups and dtbs_check fixes for MT8195 and for all machines using the MT6358 PMIC.
    • New devices – N/A
  • Other new Arm hardware platforms and SoCs
    • Apple – Devices tree for A-Series SoCs (for phones and tablets) and devices: iPhone 6s, iPhone 6s Plus, iPhone SE (2016), iPad 5
    • Microchip – SAM9x7 Armv5 device tree added
    • NVIDIA – AGX Orin industrial module (based on Tegra 234) and AGX Orin Developer Kit
    • NXP
      • Kobo Clara 2E eBook reade eBook Reader (i.MX 6SLL)
      • Comvetia LXR board
      • i.MX6DL DHCOM SoM on PDK2 carrier
      • IOTA2 Lumpy board is based on the i.MX8MPlus EVK
      • Toradex Verdin Ivy carrier board
      • Kontron i.MX8MP SMARC module and eval carrier
      • Kontron OSM-S i.MX8MP SoM and BL carrier board
      • Emtop i.MX8M Mini Baseboard
    • Texas Instruments
      • Added J742S2 SoC, a feature-reduced version of the J784s4 industrial/automotive SoC with fewer CPU cores.
      • PHYTEC phyBOARD-Lyra AM625 board
  • Raspberry Pi-related changes
    • DRM
      • V3D graphics driver – Enable Performance Counters before clearing them
      • VC4 graphics driver – Use video aperture helpers
    • USB –
      • dwc2: Fix HCD port connection race. Raspberry Pis without onboard USB hub frequent device reconnects can trigger an interrupt storm after DWC2 entered host clock gating.
        This is caused by a race between _dwc2_hcd_suspend() and the port interrupt, which sets port_connect_status. The issue occurs if port_connect_status is still 1, but there is no connection anymore.
      • dwc2: Fix HCD resume.  The Raspberry Pi can suffer on interrupt storms on HCD resume. The dwc2 driver sometimes misses to enable HCD_FLAG_HW_ACCESSIBLE before re-enabling the interrupts. This causes a situation where both handler ignore a incoming port interrupt and force the upper layers to disable the dwc2 interrupt line. This leaves the USB interface in an unusable state
    • crypto: arm64/crct10dif – Use faster 16×64 bit polynomial multiply; CNXSoft: note exactly Raspberry Pi-specific, but the commit message notes that these improvements result in a speedup of 3.3x on low-end platforms such as Raspberry Pi 4 (Cortex-A72).
    • Add driver for Raspberry Pi CFE (RP1-CFE) hardware block that includes:

RISC-V updates in Linux 6.13

The RISC-V architecture also had a few changes of its own:

  • Support for pointer masking in userspace with “Smmpm”, “Smnpm”, and “Ssnpm” RISC-V pointer-masking extensions. See commit for details.
  • Support for probing vector misaligned access performance
  • Support for qspinlock on systems with Zacas and Zabha
  • KVM
    • RISC-V Svade and Svadu (accessed and dirty bit) extension support for host and guest
    • Accelerate KVM RISC-V when running as a guest
    • Perf support to collect KVM guest statistics from host sid
  • New IOMMU driver for RISC-V
  • Microchip – PIC64GX – PDMA support, I2C hardware ID, MMC host driver, RTC driver, and USB driver
  • SOPHGO
    • SG2002 – Support for RISC-V C906 core (it also comes with an Arm Cortex-A53 core) on the LicheeRV Nano board.
    • Device Tree changes for Linux 6.13
      • Add pinctrl support for CV1800B & CV1812H.
      • Add SARADC support for CV1800B.
      • Add initial LicheeRV-Nano/SG2002.
      • Add emmc/sdio support for Huashan-Pi/CV1812H.
      • Add power-key support for PioneerBox/SG2042.
  • SpacemiT – K1 SoC gets pin control driver
  • StarFive – Support for DeepComputing FML13V01 Framework laptop with a Starfive JH7110 motherboard
  • T-Head
    • TH1520 RISC-V SoC gets pin control driver
    • Adds support for dwmac gigabit ethernet in the T-Head TH1520 RISC-V SoC used on boards like BeagleV Ahead and the LicheePi 4A

MIPS updates

It was pretty quiet on the MIPS front as usual with the following changes reported in the Linux 6.13 log:

  • Support for MIPS multi-cluster interrupt controllers. See commit for details.
  • Fix for loongson64 device tree (Really fix PCIe port nodes for ls7a)
  • Add SPI NAND to RealTek device tree
  • Change clock tree for MobilEye Q6H and Q5

I’ve also uploaded the full Linux 6.13 changelog with commit messages only. It was generated with the command git log v6.12..v6.13-rc7 --stat. You can also check out a detailed Linux 6.13 Changelog on Kernelnewbies.

Share this:

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

Radxa Orion O6 Armv9 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.
0 Comments
oldest
newest
Boardcon EM3562 Rockchip RK3562 SBC with 8 analog camera inputs