Linux 5.12 – Main Changes, Arm, MIPS and RISC-V Architectures

Linux 5.12 release was expected last Sunday, but Linus Torvalds decided to release one more release candidate, namely Linux 5.12-RC8, to “make sure things are all settled down“, so the latest Linux kernel is now expected this weekend.  Tihs should not yield any significant changes, so we can check what’s new in Linux 5.12, notably with regards to Arm, MIPS, and RISC-V architectures often used in SoC’s found in embedded systems.

Around two months ago, the release of Linux 5.11 added support for Intel’s software guard extensions (SGX) and Platform Monitoring Technology (PMT), AMD “Van Gogh” and “Dimgrey cavefish” graphics processors, MIPI I3C host controller interfaces, and much more.

Linux 5.12

Some interesting changes in Linux 5.12 include:

  • Added support for ACRN hypervisor designed for IoT & embedded devices
  • Added support for Playstation DualSense & Nintendo 64 game controllers, as well as Nintendo 64 data cartridges
  • Dynamic thermal power management via a subsystem that allows the power usage of groups of devices to be capped to meet thermal constraints. See documentation.
  • Bye-bye O-profile – I remember many years ago, I used to optimize software with the help of o-profile, but it has since then be supplanted by perf events, and Linux 5.12 removes support completely.

Arm updates in Linux 5.12

  • Removal of several obsolete 32-bit Arm platforms – efm32, picoxcell, prima2, tango, u300, zx, and c6x, as well as associated device drivers.
  • Allwinner
    • Allwinner H616 and H616-R – Initial support including pin controllers, clocks
    • Allwinner/sunxi power management
    • Various DTS changes
    • New platforms – L631 Action Camera (Allwinner V3) aka SJCAM SJ4000 Air, PineTab Early Adopter tablet (Allwinner A64)
  • Rockchip
    • PCIe controller driver – NanoPi M4B DT binding, make ‘ep-gpios’ DT property optional
    • Clocks – New Rockchip rk3368 clock ids related to camera input, documentation fixes
    • New boards – NanoPi M4B Single-board computer (RK3399), Radxa Rock Pi E router SBC (RK3328)
  • Amlogic
    • Clocks – PLL driver fix, meson8b clock controller DT support clean up, remove MIPI clk from the AXG clock controller
    • New devices – Hardkernel ODROID-HC4 development board (S905X3), Beelink GS-King-X TV Box (S922X)
  • Samsung
    • Fixes for S3C24xx: one for building with clang and two for
      warnings.
    • SoC drivers changes for v5.12
      • Adjust deferred probe and handle regmap_read() errors in Exynos ASV
        driver.
      •  Convert the ChipID code into a driver (from an early initcall) and
        merge it into the Exynos ASV.
      • Convert the PM domains code into a driver. This is necessary for
        upcoming code enabling fw_devlinks.
    • DTS ARM changes for Linux 5.12
      • Use new compatile to properly configure Exynos5420 USB2 PHY, fixing
        its suspend/resume cycle.
      • Correct Samsung PMIC interrupt trigger levels on multiple boards.
      • Correct the voltages of Samsung GT-I9100 charger and add top-off
        charger.
    • DTS ARM64 changes – Correct Samsung PMIC and S3FWRN5 NFC interrupts trigger levels on TM2/TM2E and Espresso boards.
  • Qualcomm
    • Added support for Snapdragon 888 / SM8350 high-end phone SoC
    • Added support for Qualcomm SDX55 5G modem as standalone SoC
    • Qualcomm socinfo driver support for PMIC
    • Qualcomm SoC identification for many more products
    • Qualcomm SM8350 and SC8180x pin controllers
    • PCIe controller driver – Use PHY_REFCLK_USE_PAD only for ipq8064, add support for ddrss_sf_tbu clock for sm8250
    • iommu – New Qualcomm compatible strings
    • Clocks – GCC and RPMh clks for Qualcomm SC8180x and SC7280 SoCs,
      GPU clks for Qualcomm SDM660/SDM630
    • LLCC driver gains SM8250 support
    • AOSS QMP gains SM8350 support
    • RPMPD driver gains support for MSM8994 power domains.
    • ARM dts updates for Linux 5.12
      • Introduces the Qualcomm SDX55 platform and the platform’s MTP device, with support for NAND, SDHCI and USB.
      • USB is enabled for IPQ4019 and the Alfa Network AP120C-AC and 8devices Jalapeno boards are added.
      • Samsung Galaxy S5 gains display and GPU support.
    • ARM64 DT updates
      • It adds PCIe, audio, display, GPU, HDMI watchdog, LLCC and PMIC ADC
        support to the SM8250 platform and RB5 in particular, as well as improve the definition of CPUs, thermal zones and fixes a few smaller issues.
      • Overhaul of the existing MSM8992 and MSM8994 platform
        files and introduces RPM power domains and SMP2P nodes.
      • Adds touchscreen, additional regulators, microSD card support and adds the Sony Mobile Ivy, Karin, Suzuran and Satsuki devices. It joins the common parts of the Lumia 950 and 950XL and extend these with support for sensors, NFC, Bluetooth, audio, microSD and Type-C mux pins.
      • Adds the missing higher frequencies for the SDM850 laptops, adds CPU cluster idle support on SM8150 and a few tweaks to the SC7180 platform.
    • ARM64 defconfig updates – Enables HID multitouch and TMPFS Posix ACL, for off-the-shelf distro support on the Snapdragon laptops. It also enables display clocks, audio configs and the LT9611UXC HDMI bridge for used on the SM8250 and specifically RB5 board.
    • New devices & boards
      • Snapdragon MTP reference board (SM8350)
      • Snapdragon MTP reference board (SDX55)
      • Sony Kitakami phones: Xperia Z3+/Z4/Z5 (APQ8094)
      • Alcatel Idol 3 phone (MSM8916)
      • ASUS Zenfone 2 Laser phone (MSM8916)
      • BQ Aquaris X5 aka Longcheer L8910 phone (MSM8916)
      • OnePlus6 phone (SDM845)
      • OnePlus6T phone (SDM845)
      • Alfa Network AP120C-AC access point (IPQ4018)
  • MediaTek
    • iommu driver – – Support for MT8192 IOMMU from Mediatek, Arm v7s io-pgtable extensions for MT8192
    • DRM Next for Linux 5.12
      • Decouple Mediatek DRM sub driver
      • Share mtk mutex driver for both DRM and MDP
      • Add support for SoC MT8183
    • Mediatek MT8167 power domain support
  • Other new Arm hardware platforms and SoCs
    • ASpeed:
      • Ampere Mt. Jade, a BMC for an x86 server (AST2500)
      • IBM Everest, a BMC for a Power10 server (AST2600)
      • Supermicro x11spi, a BMC for an ARM server (AST2500)
    • Broadcom – BCM4906 networking chip, Netgear R8000P router (BCM4906)
    • Intel – eASIC N5X board (N5X SoCFPGA)
    • NXP
      • i.MX6 (32-bit):
        • Plymovent BAS base system controller for filter systems (imx6dl)
        • Protonic MVT industrial touchscreen terminals (imx6dl)
        • Protonic PRTI6G reference board (imx6ul)
        • Kverneland UT1, UT1Q, UT1P, TGO agricultural terminals (imx6q/dl/qp)
      • NXP i.MX8 (64-bit)
        • Beacon i.MX8M Nano development kit (imx8mn)
        • Boundary Devices i.MX8MM Nitrogen SBC (imx8mm)
        • Gateworks Venice i.MX 8M Mini Development Kits (imx8mm)
        • phyBOARD-Pollux-i.MX8MP (imx8mp)
        • Purism Librem5 Evergreen phone (imx8mp)
        • Kontron SMARC-sAL28 system-on-module(imx8mp)
    • Renesas – Two Beacon EmbeddedWorks boards (RZ/G2H and RZ/G2N based)
    • ST-Ericsson Ux500 – Samsung GT-I9070 (Janice) phone (u8500)
    • Texas Instruments – MYIR Tech Limited development board (AM335X)
    • Xilinx – Ebang EBAZ4205, FPGA board (Zynq-7000), ZynqMP zcu104 revC reference platform (ZynqMP)

Linux 5.12 changelog for the MIPS architecture

There have a few updates to Linux MIPS notably support for the Nintendo N64 video game console.

  • Added support for Nintendo N64
  • Added support for Realtek RTL83XX SoCs
  • kaslr support for Loongson64
  • first steps to get rid of set_fs()
  • DMA runtime coherent/non-coherent selection cleanup
  • cleanups and fixes

RISC-V Linux 5.12 updates

The last few Linux kernel releases were relatively boring for the RISC-V architecture, but Linux 5.12 is much more interesting with:

  • Support for non-uniform memory access (NUMA) systems. This architecture also now supports kprobes, uprobes, and per-task stack canaries.
  • A check to ensure drivers are properly using uaccess. This isn’t
    manifesting with any of the drivers I’m currently using, but may
    catch errors in new drivers.
  • Some preliminary support for the SiFive FU740, along with the HiFive Unleashed it will appear on.
  • Support for kasan on the vmalloc region.
  • A handful of new drivers for the Kendryte K210, along with the DT
    plumbing required to boot on a handful of K210-based boards.
  • Support for allocating ASIDs.
  • Preliminary support for kernels larger than 128MiB.
  • Various other improvements to our KASAN support, including the
    utilization of huge pages when allocating the KASAN regions.

The full Linux 5.12 changelog can be found here. It was generated with the command git log v5.11..v5.12-rc8 --stat. The KernelNewbies website should also have a detailed rundown of Linux 5.12 changes.

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

Subscribe
Notify of
guest
4 Comments
oldest
newest
Ray Knight
Ray Knight
19 days ago

The “Added support for Realtek RTL83XX SoCs” is leading to support for many Gigabit PoE switches to OpenWrt. Some D-Link DGS-1210 rev F models a few recent Netgear models and some ZyXEL switches. I’m currently working on adding support for extending the support to TRENDnet switches using this SOC.

dgp
dgp
18 days ago

I wonder if 5.12 will now be delayed because of this:

https://lore.kernel.org/lkml/[email protected]/

willy
willy
18 days ago

I’ve been wondering the same. It would have been more professional from them to get back at the end of their “experiment” and kindly provide a list of commits that were part of the experience and that had to be reverted. In the end some of their possibly valid fixes dated before the experiment are reverted as well and we may possibly wake up previously fixed bugs. And overall it casts the light on the “quality” of their work, as a huge number of these fixes were finally useless or even plain non-sense, so it’s a disservice to themselves and… Read more »

Advertisements