Linux 5.2 Release – Main Changes, Arm, MIPS & RISC-V Architectures

Linus Torvalds announced the release of Linux 5.2 last Sunday:

So I was somewhat pre-disposed towards making an rc8, simply because of my travels and being entirely off the internet for a few days last week, and with spotty internet for a few days before that [*].

But there really doesn’t seem to be any reason for another rc, since it’s been very quiet. Yes, I had a few pull requests since rc7, but they were all small, and I had many more that are for the upcoming merge window. Part of it may be due to the July 4th week, of course, but whatever – I’ll take the quiet week as a good sign.

So despite a fairly late core revert, I don’t see any real reason for another week of rc, and so we have a v5.2 with the normal release timing.

There’s no particular area that stands out there – the changes are sosmall that the appended shortlog really is the best description of last week. A few small random changes all over: drivers, architectures, filesystem, mm, …

So with this, the merge window for 5.2 is open.

Linux 5.1 delivered higher performance asynchronous I/O thanks to io_uring interface, made further change to deal with year 2038, added TEO (Timer Events Oriented) governor for improved performance without additional power consumption, and added an option for adjusting Zstandard compression level for BTRFS file system among many other changes.

Linux 5.2 ChangelogSome notable change brought out by Linux 5.2 release include:

  • Added Sound Open Firmware –  The firmware of audio DSP devices is usually close-source and shipped as binary file, which makes solving bugs more difficult. The Sound Open Firmware (SOF) project has been created to improve this situation by providing a open source platform to create open source firmware for audio DSPs. Linux 5.2 includes the SOF core, plus open source firmware from Intel for Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake and IceLake families.
  • New mount API – Addition of fsopen, fsconfig, fsmount, move_mount, fspick, and open_tree functions to handle more complex situations. Details can be found on LWN.
  • Performance improvements in the BFQ I/O scheduler – Performance tweaks to the BFQ I/O scheduler have have improved the application start-up times under load by up to 80%. See benchmarks and explanations here.
  • Improved Pressure Stall Information – First implemented in Linux 4.20, Pressure stall information exposed the percentage of time the system is stalled on CPU, memory, or IO, respectively under /proc/pressure/. Linux 5.2 now allows users to configure thresholds to be notified when a certain pressure thresold is surpassed within a specific, user-defined time window. This LWN article has more info.

Some changes for Arm architecture include:

  • Two New GPU drivers for ARM Mali devices – Lima for Mali-4xx GPU, and  panfrost for the more recent Mali-T6xx/7xx series.
  • Allwinner
    • A83T – LRADC, USB OTG
    • H6 – Cedrus
    • Multiple SoCs – Lima & Panfrost
    • Broadcom-based (AMPAK modules) Bluetooth support on Banana Pi M2 Zero
    • New boards and devices
  • Rockchip
    • Clock driver – Fixes for Rockchip rk3328 and rk3288 SoCs, New sub-type for an upcoming SoC where mux and divider are not necessarily in the same register anymore
    • RK3399 – Trusted firmware support
    • Code refactoring for Rockchip DFI controller
    • Defconfig – Enable Rockchip SARADC driver & Rockchip eFUSE driver for all rk3288 boards.
    • New boards and devices – Orange Pi RK3399, Nanopi NEO4, Veyron-Mighty Chromebook variant
  • Amlogic
    • Clock drivers
      • Add g12a (S905X2) support in the Amlogic axg audio clock controller
      • Add Video Decoder, PCIe PLL, and CPU Clocks on Amlogic G12A
      • Re-expose SAR_ADC_SEL and CTS_OSCIN on Amlogic G12A AO clock controller
      • VPU and Video Decoder clocks on Amlogic Meson8b
      • Un-expose some Amlogic AXG-Audio input clocks IDs
    • Media – Amlogic Meson AO CEC G12A Controller
    • PHY – Add new driver to support USB2 PHY and shared USB3 + PCIE PHY in Amlogic G12A SoC Family
    • Socinfo updates
    • Device tree 32-bit
      • add GPIO line names for odroid-c1 boards
      • support internal clock measure driver
      • fix GPU interrupts and operating voltage
      • enable RTC on odroid-c1, ec100
      • meson8: add internal clock measurer
    • Arm64 device tree
      • enable more peripherals for S905X2 based boards
      • add display/gfx support for G12a boards
      • enable USB for g12a boards
    • Defconfig – multi_v7_defconfig: enable the Amlogic Meson ADC and eFuse drivers
    • New board – SEI Robotics SEI510 (S905X2 / G12A)
  • Samsung
    • Clock driver – Addition of ADC clock definition for Exynos 5410 SoC (Odroid XU)
    • Add necessary fixes for Suspend to RAM on Exynos5422 boards (tested
      with Odroid XU3/XU4/HC1 family). Finally this brings a working S2R
      on these Odroid boards
    • Require MCPM for Exynos542x boards because otherwise not all of cores
      will come online.
    • GPIO regulator cleanup on S3C6410 Craig
    • DTS:
      • Use proper ADC on Exynos4412.
      • Extend the Exynos5420 Arndale Octa board with: CPU cooling maps,
        unused regulators, ADC and UHS-I SD card support. Beside that adjust
        regulators to proper level and add always-on when needed.
      • Extend the Exynos5260 – high speed I2C and proper external interrupts. Also fix shared external interrupt line and use better PLL for MMC clocks.
      • Fix audio recording (broken around v5.1) and microphone recording
        (since v4.14) on Exynos5422 Odroid XU3 boards.
      • Minor cleanups (stdout-path and bootargs).
    • DTS ARM64:
      • Use proper clock rates for GSCALER module on TM2 boards.
      • Add clocks for local paths on DECON and GSCALER modules of
        Exynos5433.
      • Add Slim SecuritySubSystem to Exynos5433
  • Qualcomm
    • Clock drivers – Added Qualcomm QCS404 CDSP & Turing clocks support
    • Add ADC temp for temp alarm node on PM8998
    • Add ref clks for DSI PHYs on SDM845 and MSM8916
    • Add CPU capacity and topology on SDM845
    • Add display and GPU related nodes on MSM8996
    • Add sound and HDMI display support on DB820C
    • Fixup thermal nodes on MSM8998 platform
    • Add gpio ranges for Qualcomm platforms
    • Fix MSM8998 BLSP2 I2C5 address
    • Add MSM8998 UFS nodes and associated information
    • Add SDM845 interconnect header and usage
    • Add ADSP and CDSP PAS, RMTFS memory, and UFS phy reset on SDM845
    • Update reserved memory map on SDM845
    • Add QCS404 spmi regulators, Ethernet, Bluetooth, and uart3
    • Remove remotely-controlled property as default for BAM on QCS404
    • Add spmi regulators on PMS405
    • Fixup QCS404 l3 voltages and regulator supply names
    • Fixup thermal trip names & thermal sensors on Qualcomm platforms
    •  Remove invalid efficiency property on MSM8998
    • Change QCS404-evb compatible to help distinguish platforms
    • Add rpmhd header file and convert to use definitions on SDM845
    • Add interconnect header file on SDM845
    • Add PMS405 ADC binding
    • Arm based driver updates:
      • Add support for mmap in RMTFS
      • Fixup for QMI to change txn wait to non-interruptible
      • Fixup for error code in probe of cmd-db
      • Fixup for slot number check in RMPH-RSC
    • Defconfig – Enable options for LG Nexus 5 phone
    • Device tree
      • Add gpio ranges for Qualcomm platforms
      • Correct the IPQ4019 PCIe BAR range
      • Add cxo_board as ref clk for DSI phy
  • MediaTek
    • Clock drivers – Added Mediatek MT8183 & MT8516 clock support
    • Pinctrl – Added new driver for Mediatek MT8516, Fix IRQs in the Mediatek driver
    • PMIC wrapper for Mediatek MT8516
    • New ASoC drivers for several Mediatek machines
    • New SPI driver for Mediatek MT7621
  • Other new Arm hardware platforms and SoCs:
    • Intel – Agilex SoC FPGA
    • NVIDIA – Jetson Nano (Tegra T210)
    • NXP – i.MX 8M Mini SoC, Eckelmann ci4x10 (i.MX6DL), i.MX8MM EVK, ZII i.MX7 RPU2 (i.MX7), ZII SPB4 (VF610), Zii Ultra (i.MX8M), TQ TQMa7S (i.MX7Solo), TQ TQMa7D (i.MX7Dual), Kobo Aura (i.MX50), Menlosystems M53 (i.MX53)
    • STMicro – stm32mp157a discovery1 and stm32mp157c discovery2 boards

Summary of MIPS updates for Linux 5.2:

  • A set of memblock initialization improvements thanks to Serge Semin,
    tidying up after our conversion from bootmem to memblock back in
    v4.20.
  • Our eBPF JIT the previously supported only MIPS64r2 through MIPS64r5 is improved to also support MIPS64r6. Support for MIPS32 systems is introduced, with the caveat that it only works for programs that don’t use 64 bit registers or operations – those will bail out & need to be interpreted.
  • Improvements to the allocation & configuration of our exception vector that should fix issues seen on some platforms using recent versions of U-Boot.
  • Some minor improvements to code generated for jump labels, along with enabling them by default for generic kernels

and finally a RISC-V changelog for Linux 5.2:

  • The nosmp and nr_cpus command-line arguments are now supported,
    which work like normal.
  • The SBI console no longer installs itself as a preferred console, we rely on standard mechanisms (/chosen, command-line, hueristics) instead.
  • sfence_remove_sfence_vma{,_asid} now pass their arguments along to the SBI call.
  • Modules now support BUG().
  • A missing sfence.vma during boot has been added. This bug only manifests during boot.
  • The arch/riscv support for SiFive’s L2 cache controller has been merged, which should un-block the EDAC framework work
  • Adds support for the RISCV architecture to the nolibc header file

For even more details, you can read the complete Linux 5.2 changelog with comments generated with git log v5.1..v5.2 --stat. You may also want to checkout Kernelnewbies website.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

Leave a Reply

avatar
  Subscribe  
Notify of