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

Linus Torvalds has just released Linux 7.0 on LKML:

The last week of the release continued the same “lots of small fixes” trend, but it all really does seem pretty benign, so I’ve tagged the final 7.0 and pushed it out.

I suspect it’s a lot of AI tool use that will keep finding corner cases for us for a while, so this may be the “new normal” at least for a while. Only time will tell.

Anyway, this last week was a little bit of everything: networking (core and drivers), arch fixes, tooling and selftests, and various random fixes all over the place.

Let’s keep testing, and obviously tomorrow the merge window for 7.1 opens. I already have four dozen pull requests pending – thank you to all the early people.

Linus

This follows the Linux 6.19 release about two months ago, which brought us PCIe link encryption and secure device authentication, BTRFS and EXT-4 file systems improvements, and color pipeline API for HDR support, among various other changes. There’s nothing specific about Linux 7.0, and it’s not a major release, but Linus usually updates the “major” number once we reach 19. So it’s Linux 7.0 instead of Linux 6.20.

Linux 7.0

Notable changes in Linux 7.0

Some newsworthy changes to Linux 7.0 include:

  • AI Coding Assistants documentation – Linux 7.0 introduced documentation regarding AI coding tools. It’s fine to use AI in the Linux kernel, but the human submitter is responsible for reviewing all AI-generated code, compliance, and taking responsibility for the contribution. Only humans can use “Signed-off”, and the AI tools must be reported with the “Assisted-by” tag:
  • Rust support is no longer experimental. Individual subsystem maintainers are still free to keep it out of their subsystems.
  • New generic API for file IO error reporting – So far, each filesystem on Linux has had its own mechanism for reporting metadata corruption and file I/O errors to userspace via fsnotify. Linux 7.0 introduces a generic fserror infrastructure that gives filesystems a standard way to queue metadata and file I/O error reports for delivery to fsnotify.
  • Better swapping performance with swap table, phase II – We had previously reported that Linux 6.18 used the swap table infrastructure as a swap cache backend, leading to 5 to 20% performance. Phase II of the swap table code further cleans up and speeds up the swapping code. See LWN article for details.
  • zram implements compressed data writeback. Previously, the kernel would have to decompress the pages before writing them to the physical device (uncompressed data writeback), unnecessarily wasting CPU cycles and battery, but now page writeback can directly write zram-compressed data. See commit for details.

Linux 7.0 changes for the Arm architecture

  • Support for atomic 64-byte loads and stores (FEAT_{LS64, LS64_V}) on Arm CPUs that provide the feature (Armv8.7 and greater).
  • Allwinner
    • Device tree changes for Linux 7.0
      • A523 – Support for SPI controllers.
      • Some cleanup of old ARM device tree files to fix DT binding validation errors.
      • D1 and A100 SoCs gained support for their LED controller.
      • D1 and T113 SoCs gained support for the internal thermal sensor.
    • New devices – N/A
  • Rockchip
    • Pinctrl – Fix configuration of deferred pin in the Rockchip driver
    • MFD – Add support for the Rockchip RK801 PMIC, including core MFD and regulator drivers
    • ASoC  – S/PDIF: cleanups and port features
    • DRM
      • RK3368 HDMI Support
      • Get rid of atomic_check fixups
      • RK3506 support
      • RK3576/RK3588 improved HPD handling
      • Convert Rockchip’s inno HDMI support to a proper bridge
      • Get rid of atomic_check fixups, add Rockchip RK3506 Support
    • VPU – Add H.264/H.265 video decoders for RK3576 and RK3588
    • ARM64 DTS
      • Fix SD card support for RK3576 Nanopi R76s and RK3576 EVB1
      • Add overlay for PCIe slot, enable HDMI and analog sound on RK3576 EVB1
      • Enable HDMI sound on Luckfox Core3576, FriendlyElec NanoPi M5
      • Enable UFS controller on FriendlyElec NanoPi M5
      • Add dma-coherent for pcie and gmac of RK3576
    • New devices
  • Amlogic
    • SPI
      • spifc-a4: unregister ECC engine on probe failure and remove() callback
      • amlogic-spisg: Fix memory leak in aml_spisg_probe()
      • spifc-a4: Remove redundant clock cleanup
      • Fix DMA mapping error handling
    • Pinctrl – Move pretended generic pin control functionality out of the core and into the Amlogic AM4 driver.
    • Clock
      • Add support for Amlogic T7 clock controllers (peripherals, SCMI, PLL)
      • Add video clocks on Amlogic S4 (S805X2/S905Y4)
      • HDMI PLL post divider fixes on Amlogic gx/g12 SoCs
    • Amlogic Drivers for Linux 7.0 – New SoC ID for S905Y4
    • ARM device tree – drop iio-hwmon in favour of generic-adc-thermal
    • ARM64 device tree for Linux 7.0
      • Cleanups:
        • Use lowercase hex
        • Use hyphens in node names
        • Move CPU OPP table and clock assignment to SoC.dtsi
        • Drop useless assigned-clock-parents
      • MMC clock fixup across multiple families
      • Add a Type-C controller on Radxa Zero 2 and enable NPU
    • New device – Khadas VIM1s SBC based on Amlogic S905Y4
  • Samsung
    • Pinctrl – Exynos 9610 (ARM64) pin control support
    • PHY – Update ExynosAuto v920 USB3, combo hsphy and ssphy support
    • Clock driver
      • Add new clock controllers:
        • MFD for ExynosAuto v920 SoC
        • Display Process Unit (DPU) for Google GS101 SoC.
      • Implement automatic clock gating mode (HWACG) for Google GS101 SoC clock controllers (but also used on almost all modern Exynos SoCs), opposed to the currently used mode: manual mode.
    • SoC Drivers
      • Several improvements in Exynos ChipID Socinfo driver and finally adding Google GS101 SoC support.
      • Few cleanups from old code.
      • Documenting Axis Artpec-9 SoC PMU (Power Management Unit).
    • DTS ARM changes – N/A
    • Samsung DTS ARM64 changes for Linux 7.0
      • ExynosAuto v920 – Add MFD clock controller node.
      • Google GS101:
        • Add True Random Number Generator (TRNG) and OTP nvmem nodes.
        • Correct the PMU (Power Management Unit) compatibles by dropping fallback to syscon. The PMU on Samsung devices serves the role of syscon, however on GS101 it cannot be used via standard Linux syscon interface, because register accesses require custom regmap. It was simply never correctly working with “syscon” compatible fallback.
        • Add phandles to System Registers SYSREG blocks in clock controllers, necessary for enabling automatic clock control later.
      • Add DPU clock management unit nodes to Google GS101.
    • Defconfig changes – N/A
    • New Device – N/A
  • Qualcomm
    • New SoCs
      • Qualcomm Milos – Snapdragon 7s Gen 3 (SM7635) mobile phone SoC built around Armv9 Kryo cores of the Arm Cortex-A720 generation. Used in the Fairphone Gen 6
      • Qualcomm Kaanapali – SoC based around eight high-performance Oryon CPU cores.
    • Pinctrl – Qualcomm Mahua TLMM (ARM64) pin control support
    • Audio – USB:  update Qualcomm USB audio Kconfig dependencies and license
    • Soundwire – Support for Qualcomm v2.2.0 controllers
    • DMA engine – Add support for Qualcomm Kaanapali and Glymur GPI DMA engine
    • PHY
      • Add support for Qualcomm Glymur PCIe Gen4 2-lanes PCIe phy, DP and edp phy, USB UNI PHY, and SMB2370 eUSB2 repeater
      • SC8280xp gains QMP UFS PHY
      • Kaanapali gains PCIe phy and QMP PHY,
      • Added support for QCS615 QMP USB3+DP PHY
    • LED – Ensure the Qualcomm LPG driver detects hardware write failures by checking the return value of regmap_bulk_write() during LUT programming
    • Backlight – Extend the Qualcomm WLED driver to support the specific over-voltage protection (OVP) values required for the PMI8994 and PMI8950 variants
    • Clock
      • Qualcomm Kaanapali global, tcsr, rpmh, display, gpu, camera, and video clk controllers
      • Qualcomm SM8750 camera clk controllers
      • Qualcomm MSM8940 and SDM439 global clk controllers
      • Convert clock dividers from round_rate() to determine_rate()
      • Fix the SDCC RCGs to use shared_floor_ops across a variety of platforms
    • remoteproc – Refactor the Qualcomm secure-world helpers and add support in the Qualcomm PAS remoteproc driver for reading a resource-table from the secure world. Use this to configure the IOMMU on newer targets where Linux runs in EL2
    • PCIe controller driver
      • Merge SC8180x DT binding into SM8150
      • Move SDX55, SDM845, QCS404, IPQ5018, IPQ6018, IPQ8074 Gen3, IPQ8074, IPQ4019, IPQ9574, APQ8064, MSM8996, APQ8084 to dedicated
        schema
      • Add DT binding and driver support for SA8255p Endpoint being configured by firmware
      • Parse PERST# from all PCIe bridge nodes for future platforms that will have PERST# in Switch Downstream Ports as well as in Root Ports
    • WiFi drivers:
      • ath11k – support for Channel Frequency Response measurement
      • ath12k
        • Significant driver refactor to support multi-wiphy devices and and pave the way for future device support in the
          same driver (rather than splitting to ath13k)
        • Support for the QCC2072 chipset
    • Arm64 device tree updates
      • QCS6490 – The TC9563 PCIe switch controller is described on RB3 Gen2
      • SA8775P/QCS9075
        • The GPU and crypto blocks are added.
        • IO-regions and clocks are added to interconnect nodes to allow QoS configuration.
        • GPU, TPM and USB support are enabled on the evaluation
          kit (EVK).
      • QCS8300
        • The two PCIe controllers, the camera subsystem, tsens, display subsystem, crypto, CPUfreq, and coresight are added.
        • On the evaluation kit (EVK) the PCIe busses are enabled, together with an AMC6821-based fan controller and the ST33 TPM chip.
      • MSM8939 – The camera subsystem is described. The Asus ZenFone 2 Laser/Selfie gains battery and hall sensor support.
      • Agatti-based RB1 board – PM8008 is described and an overlay for the Vision mezzanine is introduced.
      • SDM630 – The compute DSP remoteproc, FastRPC and related entites are described. The LPASS LPI pinctrl node is described.
      • SDM845
        • The bootloader framebuffer and its resources are described on the OnePlus device
        • Devices from OnePlus, SHIFT, and Xiaomi ath10k calibration variants are specified.
        • The sensor remoteproc is enabled on Xiaomi Pocophone F1.
      • SM7225 –  Fairphone FP4 regulators for the cameras are described, and the camera EEPROM is added.
      • SM8650  – The camera subsystem is described. On the QRD the Samsung S5KJN1 camera sensor is added, and for the HDK an overlay for the “Rear
        Camera Card” is added.
      • SM8750 – CPUfreq, SDCHCI and Iris (video encode/decode) support are added, and missing – required – properties for the BAM DMA is added.
        These are then enabled on the MTP.
      • SM6150/QCS615 – PMU, DisplayPort, and USB/DP combo PHY are added. DisplayPort is enabled on the Talos Ride board.
      • Snapdragon X Elite (Hamoa)
        • Gains crypto engine, missing TCSR reference clocks, and random number generator block.
        • The soc bus address width is corrected to match the hardware.
        • Lenovo Thinkpad T14s HDMI and audio playback over DisplayPort is introduced.
        • HDMI, Iris (video encode/decode) and PS8830 retimers are described for the ASUS Vivobook S 15.
        • The Hamoa evaluation kit (EVK) gains PCIe busses, WiFi, backlight, TPM and RG (red/green) LEDs
      • Enable QSEECOM, and thereby UEFI variable access, on the Medion SPRCHRGD 14 S1.
      • Enable ADSP FastRPC and add missing GPU memory regions on Agatti. Also add the missing GPU regions on SM6115.
      • Describe the application subsystem watchdog on Hamoa and enable this in the EL2 configurations.
      • Add the camera control interface (CCI) I2C controller on MSM8953, and describe the camera regulators and the camera EEPROM on Fairphone FP3.
      • Specify clock frequency for the i2c4 bus on OnePlus 6, to silence the warnings about missing frequency definition.
      • Add FastRPC and associated heap memory, as well as Coresight, on SM8750
      • Switch a variety of platforms to use the generic RPMPD_ constants, instead of target-specific duplicates, to allow us to drop these from the header files.
      • Drop the invalid opp-shared on the QUP OPP table for Talos.
    • Arm32 device tree updates
      • Migrate the MSM8974 remoteproc power supplies to RPM provided power-domains, to match what is done on most other platforms.
      • Give the LG Nexus 5 its more human-friendly model name.
      • MSM8226 is switched to generic RPMPD_ indices, to allow dropping the duplicate platform-specific constants.
      • MSM8960 – Two additional GSBIs and I2C controllers are introduced. Accelerometer, Magnetometer, NFC, and Light/Proximity sensors are then enabled on the Samsung Galaxy Express.
    • Arm64 defconfig updates for Linux 7.0
      • Enable drivers needed to boot the Kaanapali and Milos platforms.
      • Enable EC-drivers found on various Qualcomm-based laptops.
    • New Devices
      • QCS6490-based Rubik Pi 3 board
      • Arduino UNO Q (QRB2210),
      • X Elite-based Medion SPRCHRGD 14 S1 and Surface Pro 11 laptops
      • SDM845-based Pixel 3 and Pixel 3 XL smartphones
      • Initial support for Fairphone Gen 6
  • MediaTek
    • DMA Engine – Mediatek support for Dimensity 6300 and 9200 controller
    • PHY – Nediatek MT8188 HDMI PHY
    • SoC Driver
      • Mediatek MT8196 DVFS power management and mailbox support
      • A socinfo entry for the MT8371 Genio 520 SoC
      • Support for the Dynamic Voltage and Frequency Scaling
      • Resource Controller (DVFSRC) version 4, found in the new MediaTek Kompanio Ultra (MT8196) SoC
      • Initial support for the CMDQ mailbox found in the MT8196.
      • A memory leak fix in the MediaTek SVS driver’s debug ops.
    • Thermal control
      • Support multiple temp to raw conversion functions for the Mediatek LVTS thermal driver and add the MT8196 and MT6991 support
      • Add support for the Mediatek LVTS driver for MT7987
    • Memory Controller – Mediatek SMI: Fix old struct device reference leaks during error paths and device unbinding.
    • DRM
      • mtk_hdmi_v2: Remove unneeded semicolon
      • Move DP training to hotplug thread
      • Convert legacy DRM logging to drm_* helpers in mtk_crtc.c
      • mtk_dsi: Add support for High Speed (HS) mode
      • Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards
    • Mailbox
      • Introduce mtk-vcp-mailbox driver and bindings for MT8196 VCP
        Expand mtk-cmdq for MT8196 with GCE virtualization, mminfra_offset, and instruction generation data
    • Bluetooth – add support for MediaTek MT7920
    • ARM32 updates – N/A
    • ARM64 device tree updates for Linux 7.0
      • MT7981b gains support for PCI-Express, USB, Ethernet and for the “GED” WiFi HW offload
      • OpenWRT One board gains support for the same
      • MT8188/8195/8390/8395 gains support for the DPI1 interface and HDMI output from the SoC’s HDMI Tx controller, along with its HDMI PHY and DDC IPs, usable on a selection of boards that expose an HDMI connector, namely:
        • All MT8390 Genio EVK-based boards
        • All MT8395 Genio EVK-based boards
        • Radxa NIO-12L (MT8395)
      • dtbs_check warning fixes for many of the MTK devicetrees, including MT6795, MT7981, MT7986, MT7988, MT8173, MT8183, MT8186, MT8188, MT8192, and a dts coding style fix for Airoha EN7581-EVB.
      • Fix for the new devicetree overlay warnings, adding dtbs with applied overlays for all of the devices having at least one overlay.
    • Defconfig updates – Enabling the MediaTek HDMIv2 driver to compile as a module.
    • New devices
      • Ezurio Tungsten 510 (MediaTek Genio 510 SoC)
      • Ezurio Tungsten 700 (MediaTek Genio 700 SoC)
  • Other new Arm hardware platforms and SoCs
    • ASpeed – Facebook/Meta Anacapa BMC (AST2600),  ASRock Rack ALTRAD8 BMC (AST2500), and
    • Intel – Carrier board for Intel Agilex 5 SoM (Agilex5 Modular board)
    • Marvel – Carrier board for Armada 7020 (Marvell DB-98CX85x0)
    • Microchip – PCB8385 reference board for 32-bit Microchip LAN9668
    • NXP
      • NXP i.MX8QP and i.MX952, feature-reduced versions of i.MX8QM and i.MX952, with fewer CPU cores and I/O interfaces.
      • Several boards based on NXP LS1028a, i. MX 8M Nano, i.MX 8M Plus, i.MX 91, i.MX 93, and i.MX 95.
      • Carrier board based on NXP i.MX 8Q Plus
    • Realtek – RTD1501s, RTD1861b, and RTD1920s Kent family SoC based on Arm Cortex-A78 cores.
    • Removed SoCs due to no related board – Samsung s3c6400, ST spear320s, ST stm32mp21xc/stm32mp23xc/stm32mp25xc, Renesas r8a779m0/r8a779m2/r8a779m4/r8a779m6/r8a779m7/r8a779m8/r8a779mb/r9a07g044c1/r9a07g044l1/r9a07g054l1/r9a09g047e37, and TI am3703/am3715.
    • Removed Broadcom/Cavium/Marvell ThunderX2 and its only machine
  • Raspberry Pi-specific changes
    • Broadcom BCM2712 – Enable RNG, add watchdog
    • Regulator – Mark the Raspberry Pi 7″ Display 1 ATTINY-based regulator as GPIO controller, because the hardware behaves that way in addition to being a regulator. Add fixed gpio-cells as well.
    • Media – i2c: ov5647
      • Add V4L2_CID_LINK_FREQUENCY and V4L2_CID_HBLANK control
      • Tidy up PIXEL_RATE control and mode registers
      • Use the same PLL config for full, 1080p, and binned modes
      • Separate out the common registers.

RISC-V updates in Linux 7.0

There were a good number of changes and updates related to the RISC-V architecture, too:

  • Add support for control flow integrity for userspace processes. The kernel gains support for the RISC-V Zicfiss and Zicfilp extensions, used to provide hardware-assisted control-flow-integrity tracking in user space.
  • Improve ptrace behavior regarding vector registers, and add some selftests
  • Optimize strlen() assembly
  • Enable the ISO-8859-1 code page as built-in, similar to ARM64, for EFI volume mounting
  • Clean up some code slightly, including defining copy_user_page() as copy_page() rather than memcpy(), aligning us with other architectures; and using max3() to slightly simplify an expression in riscv_iommu_init_check()
  • Alibaba T-Head – Support for CPU frequency scaling on the T-HEAD TH1520 by allowing the PLL rate used for the CPU cluster to be reconfigured.
  • Allwinner – D1 gains LED controller and thermal sensor support
  • Microchip
    • Pinctrl – Microchip Polarfire MSSIO (RISC-V) pin control support
    • GPIO – The GPIO controller on PolarFire SoC supports more than one type of interrupt and needs two interrupt cells.
    • CAN Bus – Add CAN resets to MPFS
    • Clock – Adjust the PolarFire driver Kconfig section as the driver is now used by non-PolarFire devices
  • SiFive – IRQ – – Fix frozen interrupt bug in the sifive-plic driver
  • Sophgo
    • PCIe controller driver – Disable ASPM L0s and L1 on Sophgo 2044 PCIe Root Ports
    • Device tree
      • CV18xx – Update RX/TX FIFO size to fix the USB transfer issue.
      • SG2042
        • Optimize the DTS file format, including moving PLIC/CLINT nodes into cpu dtsi and sorting peripheral nodes by address.
        • Enable RTC for Pioneerbox.
      • SG2044 – Add “b” ISA extension to fix dtbs_check warnings.
  • SpacemiT
    • Added K3 8-core (16-core) RISC-V chip supporting RVA23 profile
    • Pinctrl – Spacemit K3 (RISC-V) pin control support
    • Clock – K3 clock drivers
      • APBC – UART, GPIO, PWM, SPI, TIMER, I2S, IR, DR, TSEN, IPC, CAN
      • APBS – Various PPL clocks control
      • APMU – CCI, CPU, CSI, ISP, LCD, USB, QSPI, DMA, VPU, GPU, DSI, PCIe, EMAC…
      • DCIU – SRAM, DMA, TCM
      • MPMU – Various PLL1-derived clocks, UART, WATCHDOG, I2S
  • StarFive
    • Cache – fix device node leak in starlink_cache_init()
    • Watchdog – Fix PM reference leak in probe error path

MIPS changelog

As is often the case, the changes for the MIPS architecture can simply be summarized as “cleanups and fixes”. Here are some of the commits:

  • Revert “clk: microchip: core: allow driver to be compiled with COMPILE_TEST”
  • Revert “clk: microchip: fix typo in reference to a config option”
  • MIPS: Implement ARCH_HAS_CC_CAN_LINK
  • MIPS: rb532: Fix MMIO UART resource registration
  • MIPS: Work around LLVM bug when gp is used as global register variable
  • MIPS: Loongson64: env: Fixup serial clock-frequency when using LEFI
  • MIPS: Loongson2ef: Use pcibios_align_resource() to block io range
  • MIPS: Loongson2ef: Register PCI controller in early stage
  • clk: microchip: fix typo in reference to a config option
  • MIPS: Loongson64: dts: fix phy-related definition of LS7A GMAC
  • clk: microchip: core: allow driver to be compiled with COMPILE_TEST
  • MIPS: drop unused pic32.h header
  • watchdog: pic32-wdt: update include to use pic32.h from platform_data
  • watchdog: pic32-dmt: update include to use pic32.h from platform_data
  • serial: pic32_uart: update include to use pic32.h from platform_data
  • rtc: pic32: update include to use pic32.h from platform_data
  • pinctrl: pic32: update include to use pic32.h from platform_data
  • mmc: sdhci-pic32: update include to use pic32.h from platform_data
  • irqchip/irq-pic32-evic: update include to use pic32.h from platform_data
  • clk: microchip: core: update include to use pic32.h from platform_data

You can check out the full Linux 7.0 changelog for the full list of changes, generated with the command git log v6.19..v7.0-rc7 --stat to show commit messages only. You can also read Kernelnewbies’ summary for another look at the latest Linux 7.0 changes.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

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.
6 Comments
oldest
newest
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC