Linux 6.1 LTS release – Main changes, Arm, RISC-V and MIPS architectures

Linus Torvalds announced the release of Linux 6.1, likely to be an LTS kernel, last Sunday:

So here we are, a week late, but last week was nice and slow, and I’m much happier about the state of 6.1 than I was a couple of weeks ago when things didn’t seem to be slowing down.

Of course, that means that now we have the merge window from hell, just before the holidays, with me having some pre-holiday travel coming up too. So while delaying things for a week was the right thing to do, it does make the timing for the 6.2 merge window awkward.

That said, I’m happy to report that people seem to have taken that to heart, and I already have two dozen pull requests pending for tomorrow in my inbox. And hopefully I’ll get another batch overnight, so that I can try to really get as much of the merge window done with early. We all want to have a calm holiday season.

And because of that “we all want to have a calm holiday season”, I want to re-iterate that I’m going to be pretty strict about the merge window rules. The rules are that the pull requests sent to me during the merge window should have been ready _before_ the merge window, and have seen some time in linux-next. No last-minute batch of experimental new development that hasn’t been seen by our test automation.

So to make my life easier, I will just drop any pull requests that come in late, or that look like they haven’t been in linux-next. This time of year, we’re all going to be much happier to deal with the stress of the season _without_ having to deal with the stress of any late development. So if you already realize that work hasn’t been in linux-next, let’s just all agree to not even send me the pull request at all, and we’ll all be happy with the calm end-of-the-year season. Ok?

Anyway, I think I’ve harped on that enough, let’s just enjoy this release and the upcoming festivities. As can be seen from the shortlog below, last week really was very quiet, and it’s mainly a few last-minute fixes mostly dominated by drivers (networking in particular, but there’s some media, HID and GPU noise in there too).

Linus

The earlier Linux 6.0 release improved energy utilization, brought some additions to the OpenRISC and LoongArch architectures with, for instance, PCI buses support, implemented version 2 of the Btrfs “send” protocol and the H.265/HEVC userspace API was declared stable.

Linux 6.1 LTS

Some interesting changes in Linux 6.1 include:

  • Initial support for the Rust programming language. See lwn.net article for details.
  • KMSAN kernel memory sanitizer. It is a dynamic error detector designed to find uninitialized values and is similar to MemorySanitizer userspace tool. It should only be enabled for debugging since it significantly increases the kernel memory footprint and slows the whole system down. Find out more in the documentation and on lwn.net
  • The Multi-gen LRU (MG-LRU) should improve the process of moving programs to the swap file/partition. The multi-gen LRU is an alternative LRU implementation that optimizes page reclaim and improves performance under memory pressure. Page reclaim decides the kernel’s caching policy and ability to overcommit memory. More details can be found in the admin guide and another relevant LWN article.

Arm updates in Linux 6.1

  • Allwinner
    • A100 – DMA
    • H6 – DMIC and GPU Devfreq
    • New boards and devices – None this time around
  • Rockchip
    • Power domain – Added Rockchip RK3588 and RV1126 drivers
    • Pin control – Add driver for Rockchip RV1126
    • MFD
      • Add support for Rockchip RV1126 and RK3588 to Syscon
      • Add support for Rockchip RK817 Battery Charger to RK808
    • PHY – Rockchip rk3568 inno dsidphy, Rockchip rk356x csi-dphya
    • SPI – Added support for Rockchip RK3128 and RK3588
    • Networking – Rockchip RV1126 Gigabit Ethernet support
    • New devices and boards
      • Anberic RG353P and RG503 (Rockchip RK3566) portable game consoles
      • Pine64 Pinephone Pro (Rockchip RK3399S)
      • Open AI Lab EAIDK-610 development kit
      • Radxa ROCK 4C+ SBC (Rockchip RK3399-T)
  • Amlogic
    • ARM64 DT changes for Linux 6.1:
      • Add Bindings & DT for Beelink GT1 Ultimate (Amlogic S912) TV box
      • Remove invalid ‘enable-active-low’ on SM1 & G12A boards
      • Add Bindings & DT for the new JetHub D1p (Amlogic A113X) home automation controller
  • Samsung
    • SoC drivers – Convert Samsung Exynos G-Scaler bindings to DT schema.
    • Pinctrl
      • Minor fix in order of initializing pinctrl driver – GPIOs should be configured before registering gpiolib.
      • Final steps to deprecated bindings headers with register constants.
    • Clock driver
      • Exynos7885: add FSYS, TREX and MFC clock controllers.
      • Exynos850: add IS and AUD (audio) clock controllers with bindings.
      • ExynosAutov9: correct clock IDs in bindings of Peric 0 and 1 clock controllers, due to duplicated entries; add few missing Peric 0/1 gates; correct register offsets of few Peric 0/1 clocks.
      • Minor code improvements
    • DTS ARM changes
      • Fix polarity of pins:
        • enable GPIO of NFC chip in Exynos5433 TM2 boards,
        • vbus GPIO of EHCI in Exynos4412 Origen board.
      • Correct name of pin configuration nodes – redundant “pins” in the name (no functional impact).
    • DTS ARM64 changes for Linux 6.1:
      • Add binding headers for several Exynos850 and ExynosAutov9 clocks.
      • ExynosAutov9: Add FSYS clock controller nodes, Document serial compatible (used in DTS).
      • Exynos850: Add Audio, IS, MFC clock controllers. Add IOMMU nodes.
      • Fix polarity of pins:
        • enable GPIO of NFC chip in Exynos5433 TM2 boards,
        • vbus GPIO of EHCI in Exynos4412 Origen board.
      • Correct name of pin configuration nodes – redundant “pins” in the name (no functional impact).
  • Qualcomm
    • A new driver for Qualcomm LLCC/DDR bandwidth measurement
    • Pinctrl
      • Qualcomm SM8450 and SC8280XP LPASS (low power audio subsystem) pin control support
      • Massive Qualcomm device tree binding cleanup, with more to come
    • PHY – Qualcomm SC8280XP eDP & DP and USB3 UNI phy, Qualcomm SM6375 usb snps-femto-v2 bindings
    • PCIe controller driver
      • Add support for SC8280XP and SA8540P host controllers and SM8450 endpoint controller.
      • Disable Master AXI clock on endpoint controllers to save power when link is idle or in L1.x.
      • Expose link state transition counts via debugfs to help debug issues with low-power states.
      • Add auto-loading module support.
    • Clock driver
      • Added Display clks for Qualcomm SM6115, SM8450
      • Added GPU clks for Qualcomm SC8280XP
      • Added Qualcomm MSM8909 and SM6375 global and SMD RPM clk drivers
      • Qualcomm SM6115 and QCM2260 are moved to reuse PLL configuration
      • Qualcomm SDM660 SDCC1 moved to floor clk ops
      • Support for the APCS PLLs for Qualcomm IPQ8064, IPQ8074 and IPQ6018 was added/fixed
      • The Qualcomm MSM8996 CPU clocks are updated with support for ACD
      • Support for Qualcomm SDM670 GCC and RPMh clks was added
    • Soundwire – Qualcomm driver updates to handle device0 status
    • DMA engine – Added Qualcomm SM6350 GPI dma controller
    • Power supply – Added Qualcomm PMK8350 PON support
    • Added support for Qualcomm IPQ8064-v2.0, IPQ8062 and IPQ8065 are all variants of the IPQ8064 chip, with minimally different features.
    • Arm DTS update:
      • Extends IPQ8064 support with the two variants IPQ8062 and IPQ8065.
      • MSM8974 and APQ8084 gained RPM stats support.
      • The Audio DSP remoteproc was added to MSM8226 and enabled for ASUS ZenWatch 2 and LG G Watch R.
      • MSM8660 gained one I2C and one SPI bus
      • APQ8060 Dragonboard got the TMA340 Touchscreen described.
      • A wide range of improvements is done throughout the DTS files to align with bindings, fix issues, and improve the structure of things.
    • Arm64 DTS updates for Linux 6.1:
      • Samsung Galaxy S4 Mini Value Edition gains magnetometer support.
      • MSM8996-based Xiaomi devices gains descriptions of the LPG-based LEDs.
      • SA8295P – ADP problems arising from regulators being switched into low-power mode is worked around by removing this ability, for now.
      • SC7180 Trogdor – The onboard USB Hub on SC7180  is finally described and a few ADC- related updates are introduced.
      • SC7280 – Support for the CPU and LLC bwmon instances are introduced. Soundwire, audio codecs and sound introduced for a variety of boards. The onboard USB Hub Herobrine is described.
      • SC8280XP – The USB controllers are marked as wakeup-sources, to keep them powered during suspend. The CRD has HID devices marked as wakeup sources to enable resuming the system. The alternative touchpad is introduced on the Lenovo ThinkPad X13s.
      • SDM845 – Gains RPMh stats support and the LLCC BWMON is added.
      • SM6350 – Interconnect providers and GPI DMA is introduced.
      • A description of the PM7280b PMIC is added to Fairphone FP4 on SM7225.
      • Multi-MSI support added in the PCIe controller, meaning SM8250 gets all its MSI interrupts added.
      • UFS ICE and the second SDHCI controller are introduced on SM8450.
      • TCSR mutex syscon is replaced with the MMIO-based binding. TCSR nodes gained proper compatibles and halt syscon nodes are split out from the mutex ranges.
      • Added a range of fixes to align with DT bindings
    • Arm defconfig updates
      • Enables command-db, ocmem, rpmh and rpmhpd drivers in the multi_v7_defconfig, used on SDX55, SDX65 and MSM8974.
      • For qcom_defconfig, rmtfs-mem, rpmpd, socinfo and qcom-stats are enables as they are used across MSM8974, MSM8226, MSM8916 and APQ8084.
    • Arm64 defconfig updates
      • Core providers needed to boot SC8180X
      • Sound drivers for SC7180 and SC7280
      • Qualcomm EDP PHY, last-level cache controller driver, on-chip memory driver and the SPM driver.
    • New devices and boards
      • Sony Xperia 1 IV (Qualcomm Snapdragon 8 Gen 1)
      • 3x Samsung phones based on Snapdragon 410: Galaxy E5, E7, and Grand Max.
      • Google Evoker (SC7280) Chromebook, another revision of Herobrine Villager.
  • MediaTek
    • Clock driver
      • New clock drivers for MediaTek Helio X10 (MT6795)
      • Add resets for MediaTek MT8195 PCIe and USB
      • Changes to support GPU DVFS on MT8183, MT8192, MT8195
      • Shrink MT8192 clock driver by deduplicating clock parent lists
    • MFD – Add support for MediaTek MT6370 subPMIC
    • Add support for MediaTek MT6370 backlight and flashlight
    • Memory controller – Add support for the mt8188 SMI memory controller
    • Mediatek MT8188 SoC pin control support
    • Added Mediatek MT8186 Chromebook/Tablet type SoC with two Cortex-A76 and six Cortex-A55 cores.
    • New devices – None this time.
  • Other new Arm hardware platforms and SoCs
    • Aspeed – Two new servers using AST2600 BMCs: AMD DaytonaX and Ampere Mt. Mitchell
    • Microchip – Two development boards in the Microchip AT91 family: SAMA5D3-EDS and lan966x-pcb8290.
    • NXP
      • NXP i.MX8DXL dual-core Cortex-A35 processor
      • NXP i.MX6/i.MX8 based boards: Kontron SL/BL OSM-S (i.MX8MM), Gateworks GW7904 (i.MX8MM), MSC SM2S-IMX8PLUS SoM and carrier board
    • Renesas – R-Car H3Ne-1.7G (R8A779MB) and R-Car V3H2 (R8A77980A) are minor updates of R8A77951 and R8A77980, respectively.
    • Texas Instruments – Added AM62A Cortex-A53 processor part of the K3 family for Video/Vision processing for industrial and automotive applications, as well as the AM62A StarterKit (SK) board

RISC-V modifications for Linux 6.1

Some of the changes for the RISC-V architecture include:

  • Improvements to the CPU topology subsystem, which fix some issues where RISC-V would report bad topology information.
  • The default NR_CPUS has increased to XLEN, and the maximum configurable value is 512.
  • The CD-ROM filesystems have been enabled in the defconfig.
  • Support for THP_SWAP has been added for rv64 systems.
  • A fix to correct the handling of write-only mappings
  • m{vetndor,arcd,imp}id is now in /proc/cpuinfo
  • Handful of cleanups and fixes throughout the tree
  • Allwinner – Added SRAM support to the D1 processor
  • Microchip – DT updates for the PolarFire SOC
  • SiFive
    • A fix to add the missing PWM LEDs into the SiFive HiFive Unleashed device tree
    • L2 cache controller support has been refactored to also support L3 caches
  • StarFive – Pinctrl – Create a subdirectory for StarFive drivers, rename “pinctrl-starfive” to “pinctrl-starfive-jh7100”

MIPS changes

There was still some limited activity for the MIPS architecture on Linux 6.1:

  • Mainly cleanups
  • Fix enabling interrupts on second VPE for Lantiq platform
  • Switch to use gpiod API
  • Allow firmware passing RND seed

A complete Linux 6.1 changelog with commit messages only is also available, generated with the command git log v6.0..v6.1 --stat. A thorough changelog can also be found on KernelNewbies website.

Share this:

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

ROCK Pi 4C Plus
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.
6 Comments
oldest
newest
Nugu
Nugu
1 year ago

In February 2023, StarFive will start delivering the VisionFive2 SBC(~100$) from the KickStarter campaign. An afffordable device that will allow more people to test/to improve the Risc-V support in Linux.

sbv
1 year ago

“holiday season” lmao. For ages it was ok to call it Christmas and now suddenly ain’t politically correct. This world is coming to an end 🤣

CampGareth
CampGareth
1 year ago

I don’t see specific call outs for Microsoft’s windows on arm dev kit aka Volterra 🙁

CampGareth
CampGareth
1 year ago

I wasn’t tracking any specific commits so this isn’t an error on your part. The more successful attempts to run Linux on volterra need kernel customisations, I hope those make it upstream one day so my lazy self can use them.

Khadas VIM4 SBC