Linux 6.8 release – Notable changes, Arm, RISC-V, and MIPS architectures

Linus Torvalds has just announced the release of Linux 6.8 on the Linux kernel mailing list:

So it took a bit longer for the commit counts to come down this release than I tend to prefer, but a lot of that seemed to be about various selftest updates (networking in particular) rather than any actual real sign of problems. And the last two weeks have been pretty quiet, so I feel there’s no real reason to delay 6.8. We always have some straggling work, and we’ll end up having some of it pushed to stable rather than hold up the new code. Nothing worrisome enough to keep the regular release schedule from happening.

As usual, the shortlog below is just for the last week since rc7, the overall changes in 6.8 are obviously much much bigger. This is not the historically big release that 6.7 was – we seem to be back to a fairly average release size for the last few years. You can see it in the overall diffstats too – this looks like an average release in pretty much all respects, and we don’t have (for example) any obvious big new filesystems or architectures. I think the biggest single new thing in 6.8 is probably the new Xe drm driver, but honestly, the big bulk of changes are just various random updates and fixes all over.

Just as it should be.

In a sea of normality, one thing that stands out is a bit of random git numerology. This is the last mainline kernel to have less than ten million git objects. In fact, we’re at 9.996 million objects, so we got really close to crossing that not-milestone if it hadn’t been for the nice calming down in the last couple of weeks. Other trees – notably linux-next – obviously are already comfortably over that limit.

Of course, there is absolutely nothing special about it apart from a nice round number. Git doesn’t care.

Anyway, this all obviously means that tomorrow the merge window for 6.9 opens, and I already have several pull requests pending. Thanks to everybody who sent in early pull requests, you  know who you are. But before that excitement commences, please do spend a bit of time with the now boring old status quo and give 6.8 a good test, ok?

Linus

Released a little over two months ago, Linux 6.7 introduced the bcachefs filesystem, implemented performance improvement to the fair queuing packet scheduler for faster networking, added various new features and enhancements to the perf profile tool, the LoongArch architecture gained KVM support, and support for the Intel’s Itanium (ia64) architecture was removed, among many other changes.

Linux 6.8 release

Notable changes in Linux 6.8

Some interesting changes for the new Linux 6.8 kernel include:

  • New Intel Xe drm driver that aims to replace the legacy i915 driver for new Intel GPUs. It is still experimental but it can be enabled in Intel Tiger Lake and newer platforms. More details and benchmarks (spoiler: there’s no performance benefit for now) can be found on Phoronix.
  • The zswap subsystem has gained the ability to force cold pages out to (real) swap when memory gets tight, and there is also a new zswap mode that disables writing back to swap entirely. See commits 1 and 2 for details.
  • Rust support has been added for the creation of network PHY drivers. This is the first user-visible Rust code added to the kernel. Note that it duplicates the functionality of the existing C driver and does not add new features.
  • Core networking data structures have been reorganized for better cache efficiency, and as a result, TCP performance with many concurrent connections has been improved by up to 40%.

Linux 6.8 should also end up being the kernel that ships with Ubuntu 24.04 when it is released next month.

Arm updates in Linux 6.8

As usual, there were a lot of changes to the Arm architecture:

  • Allwinner
    • Allwinner A100 – RGB LED controller
    • Allwinner H616 – ASoC driver adds SPDIF hardware block
    • Allwinner T113-S3 – Thermal controller
    • New devices
  • Rockchip
    • Added support for RV1109 processor (dual-core version of the RV1126)
    • Rockchip RK3128 – USB2 support
    • Rockchip RK3568 – Update to clock driver: add PLL rate for 115.2 and 126.4 MHz; mark pclk_usb as critical
    • Convert Rockchip HDMI device tree bindings to schemas
    • Arm64 device tree updates
      • Remove ethernetX aliases from the SoC dtsi for RK3328, RK3399 (and add those to appropriate board dts(i))
      • Add gpio alias for gpio dt nodes
      • Add rk3588 spi, i2c, serial, and gpio aliases to soc dtsi
      • Move uart, i2c, and gpio aliases to SoC dtsi for RK3128
    • New devices
  • Amlogic
    • Clock driver – Add DSI clocks on Amlogic g12/sm1; add CSI and ISP clocks on Amlogic g12/sm1
    • Amlogic C3 – Add support for reset controller
    • Amlogic ARM64 DT changes for Linux 6.8:
      • DT cleanups
      • Amlogic S4 uart node
      • drop redundant status=okay
      • minor whitespace cleanup around ‘=’
      • Watchdog nodes for S4 & C4 SoCs
      • Clock, I2C, SPICC, NAND, Ethernet nodes for S4 And the AQ222 dev board
      • Add EEPROM on the jethub-jxx boards
      • Update of the amlogic,meson-gx-hhi-sysctrl bindings
    • New boards – N/A
  • Samsung
    • Added Samsung ExynosAuto v920 automotive chip based on Arm Cortex-A78AE cores with lockstep mode.
    • Added Google gs101 (Tensor G1) chip used in a number of Pixel phones (It is grouped with Samsung Exynos since it is based on the same SoC design, sharing most of its IP blocks with that series).
    • Pinctrl driver
      • New subdriver for the Samsung Exynos Auto V920 pin controller
      • New subdriver for the Samsung “GS101” SoC pin controller. This is the Google “Tensor” SoC used in the Google Pixel 6.
      • Samsung driver now supports irq_set_affinity() in its IRQ chip giving support for non-wake-up external gpio interrupts
    • Clock driver – Documentation fixes
    • DTS ARM changes for Linux 6.8
      • Exynos4212 and Exynos4412 – Final fixes for dtbs_check warnings.
      • Exynos4210, Exynos4212, Exynos4412, S5PV210 –  Correct FIMC IS camera ranges and IO addresses to silence dtc W=1 warnings. No functional impact is expected.
      • Galaxy I9100 – Fix 12-second hang during boot by enabling regulator (real cause not really known), add touch keys and accelerometer.
    • Samsung DTS ARM64 changes
      • Add specific compatibles to all Samsung Exynos and Tesla FSD blocks, because that’s what guidelines expect and is generally recommended practice. Existing compatibles are left untouched, thus no driver changes are needed. The work only cleans things up, so any future contributions will use the recommended style: specific and fallback compatibles.
      • Add ExynosAutov920 SoC and SADK board (Samsung Automotive Development Kit) with minimal support so far: serial console, GPIO-based keys and PWM fan.
      • Tesla FSD – Add Multi Format Codec (MFC) device nodes, for accelerated video de/encoding.
      • Add initial Google Tensor GS101 SoC support. The GS101 SoC can be found on Google Pixel 6 phones. Currently, the DTS brings only basic support: core clock controllers, pin controllers, serial, watchdog, and ARM core blocks.
    • Defconfig changes – N/A
    • New Device – ExynosAutov920 SADK – Exynos Auto v920 SoC-based SADK (Samsung Automotive Development Kit) board with 16GB (8GB + 8GB) LPDDR5 RAM and 256GB
      (128GB + 128GB) UFS.  Minimal support for serial console, GPIO ley, PWM FAN
  • Qualcomm
    • Added Qualcomm SM8650 (Snapdragon 8 Gen 3) phone SoC with Arm Cortex-X4, Cortex-A720 and Cortex-A520.
    • Added Qualcomm X1E80100 (Snapdragon X Elite) in turn is the latest Laptop chip using the custom Oryon cores.
    • DMA Engine – Qualcomm X1E80100 GPI DMA controller support
    • PHY driver
      • Added Qualcomm SM8650 UFS, PCIe and USB/DP Combo PHY, eUSB2 PHY, SDX75 USB3, X1E80100 USB3 support
      • Qualcomm v7 register offsets updates
    • IOMMU driver – SMMUv2 – Ensure Secure context is restored following suspend of Qualcomm SMMU implementation
    • PCI controller drive
      • Increase qcom iommu-map maxItems to accommodate SDX55 (five entries) and SDM845 (sixteen entries)
      • Describe qcom,pcie-sc8180x and qcom,pcie-sm8150 clocks and resets accurately
      • Correct the qcom “reset-name” property, previously incorrectly called “reset-names
      • Document qcom,pcie-sm8650, based on qcom,pcie-sm8550
    • Pintrl
      • New subdriver for the Qualcomm SM8650, top level (TLMM) and LPASS pin controllers.
      • New subdrivers for the Qualcomm X1E80100 and Qualcomm SM4450  top level (TLMM) pin controllers.
    • MFD – Add support for Qualcomm PM8937 PMIC to QCOM SPMI PMIC
    • Remoteproc – Support for the Qualcomm SC7280 audio, compute and WiFi co-processors are added to the Qualcomm TrustZone-based remoteproc driver
    • Clock driver
      • Added global, display, gpu, tcsr, and rpmh clocks on Qualcomm SM8650
      • Global and RPMh clock support for the Qualcomm X1E80100 SoC
      • Support for the Stromer APCS PLL found in Qualcomm IPQ5018
      • Add a new type of branch clock, with support for controlling separate memory control bits, to the Qualcomm clk driver
      • Use above new branch type in Qualcomm ECPRI clk driver for QDU1000 and QRU1000
      • Add a number of missing clocks related to CSI2 on Qualcomm MSM8939
      • Add support for the camera clock controller on Qualcomm SC8280XP
      • Correct PLL configuration in GPU and video clock controllers for Qualcomm SM8150
      • Add runtime PM support and a few missing resets to Qualcomm SM8150 video clock controller
      • Fix configuration of various GCC GDSCs on Qualcomm SM8550
      • Mark shared RCGs appropriately in the Qualcomm SM8550 GCC driver
      • Fix up GPU and display clock controllers PLL configuration settings on Qualcomm SM8550
    • ASoC – Add support for Qualcomm SM8250, SM8550, SM8650 and X1E80100
    • Networking
      • Qualcomm SM8550 SoC Ethernet driver
      • Qualcomm (ath12k) – Add support for a single MSI vector, WCN7850: support for AP mode
    • ARM32 DTS updates
      • The recently introduced changes to the SDX55 USB controller interrupt flags prevents the USB controller from probing. These patches correct the PDC’s interrupt-cells so that an appropriate interrupt controller (which supports both-edge interrupts) can be used instead, which resolves the issue.
      • The SDX55 PCIe PHY base address is also adjusted, from a mistake when the node recently was transitioned to the modernized DeviceTree binding.
      • The GPU in MSM8226 is described, and MSM8974 gains watchdog support.
      • The PMICs are transitioned to use interrupts-extended to properly reference the PMIC interrupt controller, in accordance with the DeviceTree specification.
      • A variety of stylistic and DeviceTree validation issues are corrected.
    • Arm64 DTS updates for Linux 6.8
      • IPQ5018 and IPQ6018 – Support for CPUfreq, USB, and one additional QUP SPI controller is added.
      • IPQ5332 and IPQ6018 – CPU OPP tables are selectively enabled based on fuses, IPQ6018 also gains description of a few more SPI and UART nodes.
      • IPQ9574 – Common elements of the RDP boards are refactored into a common include file. IPQ9574 also gains description of its LEDs and WPS busttons.
      • MSM8916 – DSP-based audio described and enabled for a variety of boards. Acer Iconia Talk S and Loncheer L8910 gains notification LED, battery and charger support is added to Loncheer L8150, and GPU is enabled for Samsung Galaxy Tab A.
      • MSM8939 – DSP-based audio is added on MSM8939, the BAM-DMUX support is enabled as well. The Longcheer L9100 gains RGB notification LED support, and the wireless subsystem is enabled.
      • MSM8953 – Missing SPI controllers are described
      • MSM8996 – The MPM is enabled to allow using wakeup interrupts.
      • QCM2290 –  Interconnect providers, MPM and display are added
      • Fairphone – UFS, remoteprocs and WiFi is enabled for Fairphone FP5. On Fairphone FP3 audio, WiFi and Bluetooth are enabled.
      • Robotics boards
        • Robotics RB1 HDMI and the CAN bus controller are added.
        • Robotics RB2 – Bluetooth, the modem remoteproc, and WiFi are enabled.
        • Robotics RB5 – Bluetooth is enabled
      • SA8775P  – Tsens and thermal are added, as well as the random number generator.
      • Acer Aspire 1. – Sound and RTC support is added
      • SC7280 – DeviceTree is refactored, in order to allow non-Chrome devices to inherit the base dtsi. Support for UFS, crypto, TrustZone-based remoteprocs, the Camera Control Interface (CCI) and random number generator support are added. Additionally a variety of smaller fixes are introduced.
      • SC8180X – Variety of fixes in particular missing power-domains and interconnects.
      • SC8280XP  – Added camera clock controller and introduced a number of smaller fixes
      • SDM670 – Display subsystem described.
      • SDX75 – Interconnect providers are added, as is USB3 and the related PHY, which is then enabled on the IDP device.
      • SM6115 – Interconnect providers are added and existing clients are wired up. A UART controller is added as well.
      • SM6375 – The MPM is added to provide wakeup interrupts. The modem subsystem, and WiFi are enabled on Sony Xperia 10 IV,  a few regulator supplies are corrected.
      • SM8150 – DisplayPort controller added for USB Type-C output which together with the addition of HDMI is described on the HDK board.
      • SM8450 – GPU and random number generator support are added and enabled on the HDK board.
      • SM8550 – GPU, IPA, random number generator, missing SoundWire ports are added, and enabled on both MTP and QRD devices.
    • Arm64 defconfig updates
      • The GPU clock controller for SM8450/SM8550 is enabled and the SC8280XP camera clock controller is enabled, to enable respective functionality on these platforms.
      • Core platform-specific drivers for SM8650, SM4450, and SDX75 are enabled.
      • The sound drivers for SC8280XP and SM8650 are enabled.
      • The UEFI Secure App driver, providing EFI variable access on some platforms, is enabled.
    • New devices and boards
      • Smartphones – Five old Microsoft Lumia phones (Nokia Lumia 630, Microsoft Lumia 640, Microsoft Lumia 640 XL, Nokia Lumia 735, Nokia Lumia 830), HTC One Mini 2, Motorola MotoG 4G, Huawei Honor 5X/GR5, Xiaomi Pad 6
      • Snapdragon 8 Gen 3 mobile platform-based MTP and QRD development devices
      • Snapdragon X Elite compute platform-based QCP and CRD development/references devices.
      • QCS6590/QCM6490 platform’s IDP development device
      • Robotics RB3 gen2 board
  • MediaTek
    • Added MediaTek MT8188 processor used for mid-range tablets and Chromebooks, using two Cortex-A78 cores where the older MT8195 had four of them.
    • PCIe controller driver
      • Clear MSI interrupt status before handler to avoid missing MSIs that occur after the handler
      • Update mediatek-gen3 translation window setup to handle MMIO space that is not a power of two in size
    • MediaTek WiFi (mt76):
      • NVMEM EEPROM improvements
      • mt7996 Extremely High Throughput (EHT) improvements (MT7996 is a WiFi 7 tri-band BE19000 SoC notably found in the WiFi 7 module used with Banana Pi BPI-R4)
      • mt7996 Wireless Ethernet Dispatcher (WED) support
      • mt7996 36-bit DMA support
    • Refactoring of the MediaTek Smart Voltage Scaling (SVS) driver and the addition of support for MT8186 and MT8195. Added support for the MT8188 VDOSYS and resets in the MMSYS driver.
    • Defconfig updates – Those defconfig changes enable booting the MT8173 Chromebooks with the enablement of the DA9211 regulator driver and adds modules for sound, AudioDSP, DisplayPort and LVTS Thermal for MT8192/MT8195, and module for the ChromeOS Keyboard LED backlight which is present on various Google Chromebooks.
    • Arm Devicetree updates for Linux 6.8
      • Media Data Path 3 (MDP3) bindings and enablement on MT8195
      • Smart Voltage Scaling (SVS) on MT8195
      • LVTS SoC thermal on MT8192
      • MT8188 SoC along with its resets, display bindings, and more
      • MT8183 hardware video decoder (mtk-vcodec-dec)
      • Cleanups for various MediaTek SoCs and PMICs, and also includes some spare fixes.
    • New devices
      • Mediatek MT8183-based Chromebooks from Lenovo, Asus, and Acer (Kukui-Katsu, Jacuzzi-Makomo, Pico, Pico6)
      • MT8188 Evaluation Board (EVB)
  • Other new Arm hardware platforms and SoCs
    • Marvell – Some ComXpress boards based on Marvell CN913x, which is the follow-up to Armada 7xxx/8xxx.
    • NXP – Six new industrial/embedded boards based on NXP i.MX8 and i.MX9
    • Unisoc – UMS9620 (Tanggula 7 series) is a 5G phone SoC based on Cortex-A76 and Cortex-A55
    • Texas Instruments – Toradex Verdin AM62 Mallow carrier for TI AM62
  • Raspberry Pi-related changes – Add V3D driver support for Broadcom BCM2712’s VideoCore VI GPU found in the Raspberry Pi 5

RISC-V changelog in Linux 6.8

  • Support for many new extensions in hwprobe, along with a handful of cleanups
  • RISC-V can also now suspend to RAM if the SUSP SBI extension is present.
  • Various cleanups to our page table handling code, so we always use {READ,WRITE}_ONCE
  • Support for the which-cpus flavor of hwprobe
  • Support for XIP kernels has been resurrected
  • Allwinner D1 – Thermal (THS) controller
  • Microchip – The flash used by Auto Update support and the corresponding QSPI controller are added. On publicly available Icicle kits this flash is not usable (engineering sample silicon issues) but in the future Icicle kits will be available that have production silicon.
  • Sophgo
    • Added support for Sopgho CV1812H
    • Huashan Pi board based on the SophGo CV1812H RISC-V chip
  • StarFive – Key peripheral support for the jh7100 that depended on the non-standard non-coherent DMA operations, namely mmc, sdcard and sdio wifi. This platform has long been supported out of tree by Emil (Renner) and Ubuntu etc ship images for it, so having mainline support for a wider range of peripherals (at last) is great.
  • Alibaba T-head – The Lichee Pi platforms and BeagleV both grow eMMC and uSD support.

MIPS architecture

The MIPS summary for this cycle was “just cleanups and fixes”:

  • MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
  • MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup()
  • MIPS: Fix typos
  • MIPS: Remove unused shadow GPR support from vector irq setup
  • MIPS: Allow vectored interrupt handler to reside everywhere for 64bit
  • mips: Set dump-stack arch description
  • mips: mm: add slab availability checking in ioremap_prot
  • mips: Optimize max_mapnr init procedure
  • mips: Fix max_mapnr being uninitialized on early stages
  • mips: Fix incorrect max_low_pfn adjustment
  • mips: dmi: Fix early remap on MIPS32
  • MIPS: compressed: Use correct instruction for 64 bit code
  • MIPS: SGI-IP27: hubio: fix nasid kernel-doc warning
  • MAINTAINERS: Add myself (Thomas Bogendoerfer) as maintainer of the Ralink architecture

You can download the complete Linux 6.8 changelog with commit messages generated with the command git log v6.7..v6.8 --stat for more details. You’ll also additional information in two posts on LWN.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

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

ROCK Pi 4C Plus

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC