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

Linus Torvalds has just announced the release of Linux 5.19. It should be the last 5.xx version, with Linux 6.0 coming for the next cycle:

So here we are, one week late, and 5.19 is tagged and pushed out.

The full shortlog (just from rc8, obviously not all of 5.19) is below, but I can happily report that there is nothing really interesting in there. A lot of random small stuff.

In the diffstat, the loongarch updates stand out, as does another batch of the networking sysctl READ_ONCE() annotations to make some of the data race checker code happy.

Other than that it’s really just a mixed bag of various odds and ends.

On a personal note, the most interesting part here is that I did the release (and am writing this) on an arm64 laptop. It’s something I’ve been waiting for for a _loong_ time, and it’s finally reality, thanks to the Asahi team. We’ve had arm64 hardware around running Linux for a long time, but none of it has really been usable as a development platform until now.

It’s the third time I’m using Apple hardware for Linux development – I did it many years ago for powerpc development on a ppc970 machine. And then a decade+ ago when the Macbook Air was the only real thin-and-lite around. And now as an arm64 platform.

Not that I’ve used it for any real work, I literally have only been doing test builds and boots and now the actual release tagging. But I’m trying to make sure that the next time I travel, I can travel with this as a laptop and finally dogfooding the arm64 side too.

Anyway, regardless of all that, this obviously means that the merge window (*) will open tomorrow. But please give this a good test run before you get all excited about a new development kernel.

Linus

(*) I’ll likely call it 6.0 since I’m starting to worry about getting confused by big numbers again.

Released a little over two months ago, Linux 5.18 implemented changes for faster compilation times, switched to the C11 standard (2011), improved process scheduling performance on AMD Zen, brought Btrfs updates, and many other improvements and new features.

Linux 5.19 release arm risc-v mips

Some notable changes to Linux 5.19 include:

  • Networking: BIG TCP support with packet sizes up to 4GB for high-speed networks (100Gbps+)
  • Virtualization and containers: support for AMD’s Secure Nested Paging and Intel’s Trusted Domain Extensions mechanisms. See documentation commit for the latter.
  • Support for the Loongson “LoongArch” new CPU architecture that builds on MIPS, and is also “a bit like RISC-V”, and was initially designed for Chinese processors. More details can be found in the commit message.
  • For the nostalgics: support for the a.out executable format on x86, which was deprecated in the 5.1 release, has now been completely removed

Arm changes in Linux 5.19

  • Arm Scalable Matrix Extension is now supported (in host mode only, not for guest systems).
  • Allwinner
    • Allwinner F1C100s – SD/MMC, SPI, Watchdog
    • Clocks – Updates to Allwinner H6 RTC clock, Allwinner H616 32 kHz clock
    • PHY – Added Allwinner D-PHY Rx mode support for MIPI CSI-2
    • Device tree – Add GPIO port regulators to Olimex TERES-I laptop
  • Rockchip
    • Pinctrl – New driver for RK3588
    • MMC core – sdhci-of-dwcmshc: Add support for the Rockchip rk3588 variant
    • PCIe controller driver
      • Fix bitmap size when searching for free outbound region
      • DesignWare driver:
        • Remove “snps,dw-pcie” from rockchip-dwc DT “compatible” property because it’s not fully compatible with rockchip (Peter Geis)
        • Reset rockchip-dwc controller at probe (Peter Geis)
        • Add rockchip-dwc INTx support (Peter Geis)
    • Clock driver – Conversion from txt to Yaml for a number of Rockchip clock bindings
    • DRM – Add VOP2 driver found on Rockchip SoCs beginning with RK3566/RK3568, tested with HDMI and MIPI-DSI display on an RK3568-EVB
      board.
    • New devices and boards
  • Amlogic
    • ARM DT change  – Align SPI NOR node name with dtschema
    • ARM64 DT changes for Linux 5.19:
      •  DTS makefile alpsa sort
      • Align SPI NOR node name with dtschema
      • Add support for S4 power domain, gpio_intc, pinctrl
      • Updates and fixes for JetHub D1/H1 boards
  • Samsung
    • Added clock driver for Exynos Auto V9 SoC
    • DTS ARM changes for Linux 5.19
      • Several DT schema-related changes to make DTBs passing schema checks: EHCI/OHCI/DMA/Ethernet node names, DMA channels order, USB-like compatibles.
      • Add specific compatibles to Multi Core Timer to allow stricter DT schema matching.
      • Cleanup from deprecated bindings
      • Fix inverted SPI CS (thus blank panel) on S5PV210 Aries boards.
      • Correct Bluetooth interrupt name on S5PV210 Aries boards.
      • Cleanups: unused and undocumented dma-channels and dma-requests.
    • DTS ARM64 changes
      • Add specific compatibles to Multi Core Timer to allow stricter DT schema matching.
      • Cleanups
        • Move aliases of board-related features to board in Exynos 850.
        • Unused and undocumented dma-channels and dma-requests
  • Qualcomm
    • Pinctrl – Support for Qualcomm PMX65 and PM6125, new driver for Qualcomm SC7280 LPASS pin control.
    • Clock driver
      • LPASS clk driver for Qualcomm SC7280 SoC
      • GCC clk driver for Qualcomm SC8280XP SoC
    • Bus driver for the SSC (Snapdragon Sensor Core), support for more chips in the RPMh power domains and the soc-id.
    • IOMMU – ARM SMMU driver: Add new Qualcomm device-tree compatible strings
    • dmaengine – Support for Qualcomm SM8350, SM8450 and SC7280
    • PCIe controller driver – Add SM8150 SoC DT binding and support, fix pipe clock imbalance, and many other small changes
    • PHY – Added Qualcomm UFS PHY support for SM6350 and USB PHY for SDX65
    • Qualcomm 802.11ax WiFi (ath11k):
      • Wake-on-WLAN support for QCA6390 and WCN6855
        Device recovery (firmware restart) support
      • Support setting Specific Absorption Rate (SAR) for WCN6855
      • Read country code from SMBIOS for WCN6855/QCA6390
      • Enable keep-alive during WoWLAN suspend
      • Implement remain-on-channel support
    • ARM64 DT updates:
      • Overhaul of the MSM8974 DeviceTrees: aligning the style, structure and naming with what we’ve learned since the introduction of this platform.
      • The Sony Rhine platform gained I2C masters, NFC and pstore support. The Fairphone 2 gained touchscreen support.
      • SDX65 – Added reserved-memory nodes, rpmpd, SPMI, CPU clocks, SDHCI controller, SMMU and TCSR mutex. Initial DeviceTree for the related PMX65 PMIC.
      • MSM8226  – Gets VADC and RTC support, ASUS ZenWatch 2 added.
    • Arm64 DT updates for Linux 5.19:
      • Adds MDIO bus description on the IPQ6018 platform
      • MSM8916 – BAM-DMUX WWAN network device is added and the Huawei Ascend G7 gains sound card definition and clarified installation instructions.
      • MSM8992 and MSM8994  – Added multimedia clock controller, on-chip memory, watchdog, and various cleanup changes. The Xiaomi Mi 4C gains CPU regulators and fixes to the framebuffer definition, while Huawei Nexus 6P gains eMMC support.
      • MSM8996 – Added modem and sensor remoteprocs, and enabled in the Dragonboard 820c and the Xiaomi devices.
      • MSM8998 – New clocks related to the sensor subsystem bus are marked as protected by default, and the OnePlus devices gains NFC.
      • SC7180 –  limozeen moves to using edp-panel for EDID-based detection, over statically defined panels.
      • SC7280 – Added GPI DMA, WiFi remoteproc and network device, LPASS audio clocks, resets for SDCC controllers and a new CRD revision. The Herobrine board gains eDP support and the IDP gains backlight. USB is marked wakeup capable.
      • SDM845 – Enabled IPA, WLED-based backlight and second WiFi channel enabled for Xiaomi Pocophone F1. On RB3 the CAN bus controller is added and the WiFi calibration variant is defined to allow adding the board’s calibration information into linux-firmware.
      • SM6350  – Added I2C busses, UFS, and WiFi support
      • SM7225 (and the Fairphone 4) – UFS, WiFi, and haptics are enabled.
      • SM8150 – PCIe, Ethernet, and uSD card sadded, and enabled for the SA8155p ADP board. The PDC interrupt controller is also added and described as wakup interrupt parent for TLMM.
      • SM8250 – Camera subsystem and control interface defined. Sony Xperia 1 II DTS enables the audio amplifiers
      • SM8350 – GPI DMA engines are added and linked to the I2C and SPI serial engines. Surface Duo 2 gains battery charger support.
      • SM8450  – The two PCIe controller/PHYs are enabled, GPI DMA and QUP serial engine instances are added. Remoteproc instances are enabled on
        SM8450 HDK.
    • Defconfig updates
      • Qualcomm random number generator and hardware crypto drivers
      • DebugFS support
    • New devices and boards – 8x Qualcomm Snapdragon-based machines, including a smartwatch (ASUS ZenWatch 2), a Chromebook board and some phones such as Xiaomi Poco F1 phone
  • MediaTek
    • Added Mediatek MT8195 (Kompanio 1200) high-end consumer chip for Chromebooks.
    • Clock driver – MediaTek MT8186 SoC clk support
    • Watchdog driver
      • Added MediaTek MT8186 support
      • Added Mediatek MT7986 reset-controller support
    • Pinctrl – New driver for Mediatek MT8195, Mediatek MT6795 Helio X10
    • MFD – Added support for {Power,Home} Keys to MediaTek MT6359
    • PCIe
      • Fix refcount leak in mtk_pcie_subsys_powerup()
      • Gen3 controller driver – Reset PHY and MAC at probe time
    • Audio – ASoC driver for MediaTek MT8186
    • Regulator – Added support for MediaTek MT6358 and MT6366
    • MediaTek WiFi (mt76)
      • Support Wireless Ethernet Dispatch offloading packet movement between the Ethernet switch and WiFi interfaces
      • Non-standard VHT MCS10-11 support
      • MT7921 – Support for AP mode, IPv6 NS offload
  • Other new Arm hardware platforms and SoCs
    • Arm – Corstone1000 generic platform from Arm that is used for designing custom SoCs, the support for now is for the Fixed Virtual Platform emulation for it.
    • Broadcom
      • BCM47622 broadband SoC based on a quad Cortex-A7 and dual Wifi-6.
      • Two wireless routers based on Broadcom BCM4708
    • NXP
      • Added i.MXRT1050 Cortex-M7 microcontroller (MMU-less SoC)
      • 30 new boards based on NXP i.MX6, i.MX7 and i.MX8 families, mostly for the industrial embedded market, and one NXP LS1021A IoT board.
    • Renesas
      • RZ/G2UL (R9A07G043) single-core version of the RZ/G2L general-purpose MPU.
      • RZ/V2M (R9A09G011) smart camera SoC
      • Renesas R-Car V4H (R8A779G0) automotive chip with Cortex-A76 cores and deep learning acceleration.
    • STMicro – 7x STM32MP1 based boards

RISC-V updates

  • Allwinner D1
    • DMA and LRADC drivers
    • Implementation of page-based memory attributes
    • Device tree – Enables display engine 2.0 with two mixers, a TCON TOP (with DSI and HDMI), one TCON LCD, and one TCON TV.
  • Support for the Svpbmt extension, which allows memory attributes to be encoded in pages
  • Support for running rv32 binaries on rv64 systems, via the compat subsystem
  • Support for kexec_file()
  • Support for the new generic ticket-based spinlocks, which allows us to also move to qrwlock. These should have already gone in through the asm-geneic tree as well
  • A handful of cleanups and fixes, including some larger ones around atomics and XIP

MIPS in Linux 5.19

The MIPS changelog for Linux 5.19 could not be simpler:

  • Cleanups and fixes

There are more details in the list commits (38 in total) though, but I don’t normally need to mention it here:

  • MIPS: RALINK: Define pci_remap_iospace under CONFIG_PCI_DRIVERS_GENERIC
  • MIPS: Use memblock_add_node() in early_parse_mem() under CONFIG_NUMA
  • MIPS: Return -EINVAL if mem parameter is empty in early_parse_mem()
  • MIPS: Kconfig: Fix indentation and add endif comment
  • MIPS: bmips: Fix compiler warning observed on W=1 build
  • MIPS: Rewrite `csum_tcpudp_nofold’ in plain C
  • mips: setup: use strscpy to replace strlcpy
  • MIPS: Octeon: add SNIC10E board
  • MIPS: Ingenic: Refresh defconfig for CU1000-Neo and CU1830-Neo.
  • MIPS: Ingenic: Refresh device tree for Ingenic SoCs and boards.
  • MIPS: Ingenic: Add PWM nodes for X1830.
  • MIPS: Octeon: fix typo in comment
  • MIPS: loongson32: Kconfig: Remove extra space
  • MIPS: Sibyte: remove unnecessary return variable
  • MIPS: Use NOKPROBE_SYMBOL() instead of __kprobes annotation
  • selftests/ftrace: Save kprobe_events to test log
  • MIPS: tools: no need to initialise statics to 0
  • MIPS: Loongson: Use hwmon_device_register_with_groups() to register hwmon
  • MIPS: VR41xx: Drop redundant spinlock initialization
  • MIPS: smp: optimization for flush_tlb_mm when exiting
  • Etc…

Those look to be minor changes indeed. This was followed later with an update to build fix for Loongson-3 (fix compile mips cpu_hwmon as module build error).

The full Linux 5.19 changelog with commit messages only is available, and I generated it with the command git log v5.18..v5.19-rc8 --stat. Alternatively, you could check out a detailed summary on KernelNewbies website.

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

14 Replies to “Linux 5.19 Release – Main changes, Arm, RISC-V and MIPS architectures”

    1. Interesting indeed. I wonder how the product managers at Intel and AMD feel about this.

      As you’re in that github issue: are you running Linux on a M1 hardware? How is it? Usable for daily use?

      1. > As you’re in that github issue: are you running Linux on a M1 hardware?

        Nope, since then I could’ve generated MacBook Pro sbc-bench results on my own. BTW: Linus uses an M2 MacBook Air…

        As for daily use better look somewhere else since my use cases are somewhat special anyway and I’ve no idea about status of graphics/video acceleration with Linux on Apple Silicon.

  1. Has anyone figured out what the MediaTek MT8186 is? Phoronix thinks it’s 2x Cortex-A78 + 6x Cortex-A55. Which would be much better than the 4x A73 + 4x A53 in the MT8183, and possibly even the 4x A76 + 4x A55 in the MT8192.

    1. RK3588 machines currently run an older Linux kernel maintained by Rockchip (aka the vendor tree or vendor BSP).

      If code gets into the latest Linux kernel, that means eventually people would be able to download the kernel from kernel.org and run it on hardware with Rockchip RK3588 processor.

      This ensures systems run the latest code with security updates and new features but that will take a long time before it becomes usable. So basically, it does not change anything in the short term, but in the long term, people may be able to run the latest Linux kernel.

      1. Ah I see, thx for your reply!

        Does that mean, that currently available linux distro images from vendors(like for example debian 11 and ubuntu images from mekotroniks r58x) are build with old kernel versions which have been modified to run on rk3588? So rk3588 machines won’t run any other kernels but the modified ones?

  2. One of my pet projects also landed in this release: you can finally build a single kernel for all Armv4T/v5 machines like we have been able to for all Armv6/v7 ones for a while:

    https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/tag/?h=arm-multiplatform-5.19-1

    The practical application of this is of course not to run a kernel that includes all of them since that would be a waste of memory resources, but to remove all kinds of special cases that we had for some of the oldest platforms. It is also still common for distros to support two or three Armv5 targets, so those can now move to a single kernel image for whichever subset they need.

    Working on removing most of the pre-DT board support now, which is almost completely unused and is blocking a number of other cleanups.

    1. [ maybe that’s a boring question, but what’s a strategy for data and storage energy (compatibility)(2030^), thx ? ]

      1. [ considering Kernel development, storing (decompressed) header files like for AMD gpu’s on client side is a trade off between (open source) information and energy (storage), similarly for (increasing) firmware directory
        this, it’s not only about servers energy (~2030 ~2.x% of global electricity consumption for data centers and network), btw
        since growth is not fully compensated with efficiency gains, limits “of Moore’s law results in about [~]658 TWh for 2030” on “data center energy needs”
        e.g. Kernel ‘make’ might benefit from a “clean arrange compress” flag with development on hold? ]

        1. [ some numbers tell 2025 might enable 13-14 zettabytes of stored data, what might get towards a <=35ZB ~2030 (e.g. 2021’s yearly HDDs capacity shipped ~1.3ZB =~ global IP traffic 2016 [1.2ZB, Cisco]), and on a yearly 0.05kWh/TB stored data (average? for ~2030) that might get into a ~1-2TWh/year, what then would be some ~0.x% of data center and network related energy consumption, expected data volume getting towards 300-500ZB(created, processed, transferred/consumed)/year ~2030.
          Seems i overestimate energy consumption for storage, but data volume increases ~25% a year?
          (interesting, but different numbers for HDD’s shipped) ]

Leave a Reply

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

Khadas VIM4 SBC
Khadas VIM4 SBC