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

Linux 6.4 has just been released by Linus Torvalds on the Linux Kernel Mailing List (LKML):

Hmm. Final week of 6.4 is done, and we’ve mainly got some netfilter fixes, some mm reverts, and a few tracing updates.

There’s random small changes elsewhere: the usual architecture noise, a number of selftest updates, some filesystem fixes (btrfs, ksmb), etc.

Most of the stuff in my mailbox the last week has been about upcoming things for 6.5, and I already have 15 pull requests pending. I appreciate all you proactive people.

But that’s for tomorrow. Today we’re all busy build-testing the newest kernel release, and checking that it’s all good. Right?

Released around two months ago, Linux 6.3 brought us AMD’s “automatic IBRS” Spectre defense mechanism, additional progress on the Rust front with User-mode Linux support (on x86-64 systems only), the NFS filesystem (both the client and server sides) gained support for AES-SHA2-based encryption, the kernel added a built-in Dhrystone benchmark to enable performance testing during SoC bring-up, some new WiFi devices were added including the RealTek RTL8188EU (rtl8xxxu) and Qualcomm Wi-Fi 7 devices (ath12k), among many other changes.

Linux 6.4 release

Linux 6.4 highlights

Some notable changes to Linux 6.4 include:

  • The x86 linear address masking feature is now supported by the kernel. At this time, only the LAM_U57 mode (which allows the storing of six bits of metadata in an address value) is supported, andthe LAM_U48 mode needs further consideration. See LWN article for details.
  • Two new ptrace() operations – PTRACE_GET_SYSCALL_USER_DISPATCH and PTRACE_SET_SYSCALL_USER_DISPATCH – allow one process to manipulate the system-call user dispatch settings of another. The new operating can be used for a checkpoint/restore mechanism in userspace.
  • The io_uring subsystem can perform multiple direct-I/O writes to a file in parallel if the underlying filesystem supports it. Currently, only EXT4 and XFS file systems are supported.
  • Unprivileged processes can now poll for pressure-stall information first introduced in Linux 4.20 with the polling period have to be a multiple of two seconds.
  • The Linux kernel now includes a detailed tutorial explaining how to build a trimmed kernel.

Linux 6.4 Arm changes

Here are some of the many changes done to the Arm architecture:

  • Allwinner
  • Rockchip
    • Rockchip RK3588 – Added Watchdog, ASoC
    • Regulator – Added support for Rockchip RK860x
    • irqchip – Workaround for the Rockchip 3588 chip that doesn’t correctly deal with the shareability attributes
    • Clock driver – Reparenting fix for the clock supplying camera modules on the rk3399 and more critical (bus-)clocks on the rk3588.
    • New devices and boards
  • Amlogic
    • SPI driver – Support for Amlogic A1 (A113L) SPI controller
    • PCIe – Convert Amlogic Meson AXG DWC PCIe SoC controller bindings to dt-schema
    • Other drivers changes:
      • convert clk-measure.txt to dt-schema
      • meson-pwrc: Use dev_err_probe()
      • meson_sm: populate platform devices from sm device tree data
      • dt-bindings: Drop unneeded quotes
    • ARM DT changes:
      • Adjust order of some compatibles
      • meson8: add the xtal_32k_out pin
      • meson8: add the SDXC_A pins
      • mxiii-plus: Enable Bluetooth and WiFi support
    • ARM64 DT changes for Linux 6.4:
      • Set of DT bindings check fixes
      • Adjust order of some compatibles to match dt-schema migration
      • Add support for BananaPi M2S variants
      • gxbb-kii-pro: add audio & bluetooth support
      • meson-a1: add gpio_intc node
      • gxl: use gxl mdio multiplexer
      • Add initial support for BPI-CM4 module with BPI-CM4IO baseboard
    • New devices and boards – Banana Pi boards based on the Amlogic g12b (Amlogic A311D/S922X) SoC including Banana Pi BPI-M2S SBC and Banana Pi BPI-CM4 module.
  • Samsung
    • MFD – Remove support for Samsung 5M8751 and S5M8763 PMIC devices
    • DTS ARM changes for Linux 6.4:
      • Several cleanups and improvements as a result of dtbs_checks: align node names with bindings, drop incorrect properties, fix clock-names, add missing “ports” node.
      • Move DP and MIPI phys to PMU node (DTS with binding change).
      • Drop old MSHC aliases (while adding proper mmc-ddr-1_8v which was selected by the driver based on the MSHC alias) and add generic MMC aliases in each board. The aliases match known numbering in the schematics.
    • Samsung DTS ARM64 changes:
      • Exynos850: add headers with AUD, G3D and HSI clock controller clock IDs. Add G3D (GPU) clock controller node.
      • Exynos5433: fixes for dtbs_check: move MIPI phy to PMU node.
      • Drop old MSHC aliases (while adding proper mmc-ddr-1_8v which was selected by the driver based on the MSHC alias) and add generic MMC aliases in each board. The aliases match known numbering in the schematics.
    • New Devices – N/A
  • Qualcomm
    • Added Qualcomm IPQ5332 Cortex-A53 and IPQ9574 Cortex-A73 Wi-Fi 7 networking SoCs
    • Added Qualcomm sa8775p automotive SoC derived from the Snapdragon family.
    • UFS – Added support for Qualcomm SA8775p, SM7150
    • Pinctrl – Subdrivers for the Qualcomm SM7150 and IPQ9574 SoCs
    • Clock – Global clock controller drivers for Qualcomm SM7150, IPQ9574, MSM8917 and IPQ5332 SoCs
    • PCIe controller
      • Add SM8550 and SDX5 DT bindings and driver support
      • Use bulk APIs for clocks of IP 1.0.0, 2.3.2, 2.3.3
      • Use bulk APIs for reset of IP 2.1.0, 2.3.3, 2.4.0
      • Add DT “mhi” register region for supported SoCs
      • Expose link transition counts via debugfs to help debug low power issues
      • Support system suspend and resume; reduce interconnect bandwidth and turn off clock and PHY if there are no active devices
      • Enable async probe by default to reduce boot time
    • Networking
      • Added Qualcomm EMAC3 DWMAC ethernet
      • Qualcomm 802.11ax WiFi (ath11k) – MU-MIMO parameters support, ack signal support for management packets
    • Regulators – Support for Qualcomm PMC8180 and PMM8654au
    • ARM64 updates:
      • PCI I/O and MEM ranges are corrected across all targets with PCIe enabled. Likewise, is CPU clocks defined to be provided from CPUfreq for a wide range of platforms, to satisfy the OPP definitions, and LLCC bank information is corrected for all relevant platforms.
      • IPQ5332 gains SMEM, CPUfreq and support for triggering download mode. The MI01.2 board is introduced.
      • XO clock is defined and fed to RPMCC on MSM8953 and MSM8976, to ensure clock trees are properly rooted. DSI clocks feeding into gcc are described on MSM8953.
      • On MSM8996 the external audio components are moved from the SoC dtsi. A few DWC3 quirks are added.
      • On MSM8998 GPIO names are introduced for Sony Xperia XZ Premium, XZ1 and XZ1 Compact. A number of boards have GPIO keys properly marked as wakeup-source.
      • The SA8775P platform is extended with CPUfreq, UARTs, I2C controllers, SPI controllers, SPMI and PMICs, PDC support. The associated PMICs gains reset and power key support, as well as thermal zones defined. Nodes are sorted. On top of this, the SA8775P Ride board/platform is introduced.
      • On SC7180 and SC7280 a range of fixes coming from DeviceTree validation are introduced, some clearing up unused properties, others correcting errors. A number of Google rev0 boards on SC7180 are dropped, as these are not considered to be in use by anyone anymore.
      • On SC8280XP RTC support is introduced and enabled for the CRD and Lenovo Thinkpad X13s. It gains another UART, upon which Bluetooth is enabled on the Lenovo ThinkPad X13s. The touchpad definition is altered to attempt to probe both devices seen in the wild. A number of bug fixes are also introduced, and the regulator definitions on X13s are corrected.
      • On SDM845 dynamic power coefficients are improved. BWMON compatible is corrected. Xiaomi Pocophone F1 gains notification LED. Sony Xperia XZ2, XZ2 Compact and XZ3 gains display, touchscreen, gpu and remoteproc support. OnePlus 6 and 6T gains hall sensor.
      • GPU clock controller and remoteproc nodes are added for SM6115. CPU clock are defined to come from CPUfreq. Board-specific USB-properties are moved out of the SoC dtsi.
      • On SM6375 L3 scaling, IMEM, RMTFS, RPM sleep stats, Tsens, modem remoteproc and WiFi nodes are added. Tsens thermal zones are defined and additional low power states
        are defined. Sony Xperia 10 IV gains volume down key support.
      • On SM8150 another UART is introduced, to be used by GNSS on the SA8155 ADP. Support for the Flash LED block in PM8150L is added.
      • On SM8250 TPDM MM and PRNG is defined, MHI region is added to PCIe node. A few bug fixes are introduced after Devicetree validation.
      • The DisplayPort controller on both SM8350 and SM8450 is defined and the related QMP instance is transitioned to the USB3/DP combo variant. IMEM and PIL info is introduced, for post mortem debugging of remoteprocs. On the HDK PMIC GLINK is enabled and role switch is enabled. Some audio resources are corrected.
      • A typo in the USB role property of the Microsoft Surface is corrected, thanks to DeviceTree validation.
      • PCIe controllers and PHYs descriptions are corrected, and pinctrl state definitions are moved from the soc to the board definition. BWMON compatibles are corrected. PM8550B gains the definition of the eUSB2 repeater and this is enabled on the MTP. PMIC GLINK is also defined for the MTP and connected to DWC3, for role switching support.
      • In addition to this, a range of cleanups based on Devicetree validation is introduced.
      • A few clock bindings are introduced, from topic-branches shared with the clock tree, to aid introduction of references to these.
    • ARM32 DTS updates:
      • Add IPA definition to the sdx65 platform, and bring a few stylistic changes to sdx55 and sdx65.
      • Compatibles for the two new Qualcomm Robotics Platform boards, RB1 and RB2, are defined, as is Xiaomi Mi A3 and the MI01.6 development board on IPQ5332. These are all ARM64 boards, despite being introduced through the ARM32 pull request…
      • stdout-path is defined for the ALFA Network AP120C-AC, to avoid the need to pass this information on the kernel commandline. Ath10k is wired up to read calibration data from the “ART” partition.
      • PCI I/O port ranges are fixed on IPQ4019 and IPQ8064.
      • Supply clocks are defined for KPSS L2CC and ACC clock controllers.
      • Supply clocks for the global clock controller are being specified on IPQ4019, MSM8974 and MSM8226.
      • PCIe RC support is enabled on the SDX55 T55 development board, IPA is defined for the SDX55 and a number of cleanup patches are introduced.
    • Arm64 DTS updates for Linux 6.4
      • Devicetree for the QCM2210/QCM2290 is introduced.
      • Support for the output-enable/disable flag is introduced in the pinctrl-msm driver, and the non-standard “input-enable” is dropped from a range of platforms.
      • A wide range of smaller fixes are introduced, based on Devicetree validation.
      • MSM8953 gains LPASS, MPSS and Wireless subsystem support.
      • The iommus property is removed from PCIe nodes in all platforms, as the only the child devices should be associated with iommu groups, through the existing iommu-map property.
      • The reserved-memory map on Huawei Nexus 6P is updated with the addition of splash screen framebuffer memory and adjustment to the reserved memory region overlapping the smem region.
      • Regulators are introduced for the SA8775P Ride platform.
      • A regulator is marked always-on, for correctness, on Trogdor. Pinconf fixes are introduced to both sc7180 and sc7280 devices. A dedicated reviewers list is added for boards relevant to the Chromebook engineers.
      • A set of pinconf fixes is introduced for sc8280xp, labels are introduced for Soundwire nodes.
      • The sensor core remoteproc and FastRPC thereon, are introduced in SDM845 and enabled for OnePlus 6/6T and Shift Shift6mq.
      • RMTFS, remoteprocs, ath10k and ramoops are introduced for the Lenovo Tab P11.
      • UFS support is introduced on SM6125.
      • SM8150 no longer defines the GPU to be in headless mode by default, GPU speedbins are introduced.
      • GPU speedbins are introduced for SM8250 as well, as is support for display on Xiaomi Mi Pad 5 Pro, with two different panels supported.
      • Soundwire controllers, ADSP audio codec macros and the Inline Crypto Engine support is added to the SM8550 platform.
    • Arm defconfig updates – N/A
    • Arm64 defconfig updates
      • Enable a range of TLMM pinctrl drivers, needed to boot related platforms. Multimedia clock drivers for MSM8994 and MSM8998 are enabled and the MSM8996 is flagged as a module instead of builtin.
      • The PMIC_GLINK drivers are enabled, providing USB Type-C and battery support on various platforms, and eUSB2 drivers found on SM8550 are enabled.
      • Base drivers for IPQ5332 and IPQ9574 are enabled.
    • New devices and boards
      • WiFi 7 boards – AL02 board based on IPQ9574, MI01.6 board powered by IPQ5332
      • WiFi/LTE dongle based on Qualcomm MSM8916 (Yiming UZ801 4G modem stick)
      • Two robotics boards based on Qualcomm QRB chips: RB1 board with QRB2210, RB2 with QRB4210
      • Three Snapdragon-based phones made by Xiaomi including Xiaomi Mi A3 (SM6125)
  • MediaTek
    • LED driver – Add support for MediaTek MT6370 LED Indicator and flashlight
    • Clock
      • Add Frequency Hopping (FHCTL) on MediaTek MT6795, MT8173, MT8192 and MT8195 SoCs
      • Add Mediatek MT8188 SoC clk drivers
    • Networking
      • Add Ethernet for MediaTek MT7981 and MT7988 SoCs
      • MediaTek WiFi (mt76):
        • P2P support
        • mesh A-MSDU support
        • EHT (Wi-Fi 7) support
        • coredump support
    • DRM – Add MediaTek SoC DRM (vdosys1) support for mt8195
    • New device – N/A
  • Other new Arm hardware platforms and SoCs
    • Apple – M2 used in current Macbook Air/Pro and Mac Mini gets added, with comparable support as its M1 predecessor.
    • Marvell – GL.iNet MV1000 router based on Marvell Armada 3720
    • NXP – 19 industrial embedded boards based on the NXP i.MX6 (32-bit) and i.MX8 (64-bit) families.
    • UNISOC – UMS512 (Tiger T610) midrange smartphone SoC
    • Texas Instruments – AM625-based BeaglePlay industrial SBC

RISC-V architecture updates

RISC-V keeps on progressing nicely:

  • The RISC-V architecture has gained support for the Svnapot extension with the “napot”  part standing for “naturally aligned power of two”. It allows groups of 4K base pages to be tied together to create larger (“huge”) pages.
  • The RISC-V kernel can now be built as a PIE relocatable binary.
  • RISC-V has also added a new system call – riscv_hwprobe() - to provide information about the hardware available on the running system. Check out this commit for documentation.
  • RISC-V adds support for hibernation.
  • Support for Zicboz when clearing pages
  • Support for !MMU on rv32 systems
  • The linear region is now mapped via huge pages
  • Moved to GENERIC_ENTRY
  • Various fixes and cleanups throughout the tree
  • StarFive
    • Added StarFive JH7110, a RISC-V SoC based on the Sifive U74 core like its JH7100 predecessor, but with additional CPU cores and a GPU.
    • New JH7110 drivers – Watchdog (also added to JH7100), DMA controller, QuadSPI, Ethernet, temperature sensor, reset, clock
  • RISC-V Devicetrees for Linux 6.4
    • Microchip – A “fix” for the system controller’s regs on PolarFire SoC, adding a missing reg property.
    • StarFive – Basic support for the JH7110 & the associated first-party dev board, the VisionFive v2 (in two forms).

MIPS in Linux 6.4

The MIPS architecture seems to have had a few more changes than last time around:

  • Added support for Huawei B593u-12
  • Added support for virt board aligned to QEMU MIPS virt board
  • Added support for doing DMA coherence on a per device base
  • Reworked handling of RALINK SoCs
  • Cleanup for Loongon64 barriers
  • Removed deprecated support for MIPS_CMP SMP handling method
  • Removed support Sibyte CARMEL and CHRINE boards
  • Cleanups and fixes

I’ve generated a more detailed Linux 6.4 changelog with commit messages only using the command git log v6.3..v6.4-rc7 --stat. You can also check out the Linux 6.4 changelog 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.
5 Comments
oldest
newest
udif
udif
10 months ago

Does this means we can run mainline Kernels on RK3588(S) boards, or are there still missing pieces?
What about the NanoPi R5C/S (RK3568) mentioned? are they full supported, or also work in progress?

Dan
Dan
10 months ago

Keep an eye on this page. Long story short it’s pretty unusable even for headless duties due to missing PCIE support.

https://gitlab.collabora.com/hardware-enablement/rockchip-3588/notes-for-rockchip-3588/-/blob/main/mainline-status.md

Willy
Willy
10 months ago

Thanks for letting us know, this will save me a rebuild 🙂

udif
udif
10 months ago

Thanks!
At least we have a link to track the progress.

Khadas VIM4 SBC