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

Linus Torvalds has just announced the release of Linux 5.1:

So it’s a bit later in the day than I usually do this, just because I was waffling about the release. Partly because I got some small pull requests today, but mostly just because I wasn’t looking forward to the timing of this upcoming 5.2 merge window.

But the last-minute pull requests really weren’t big enough to justify delaying things over, and hopefully the merge window timing won’t be all that painful either. I just happen to have the college graduation of my oldest happen right smack dab in the middle of the upcoming merge window, so I might be effectively offline for a few days there. If worst comes to worst, I’ll extend it to make it all work, but I don’t think it will be needed.

Anyway, on to 5.1 itself. The past week has been pretty calm, and the final patch from rc6 is not all that big. The shortlog is appended, but it’s small changes all over. Networking, filesystem code, drivers, tooling, arch updates. Nothing particularly odd stands out.

Of course, the shortlog below is just for that final calm week. On the whole, 5.1 looks very normal with just over 13k commits (plus another 1k+ if you count merges). Which is pretty much our normal size these days. No way to boil that down to a sane shortlog, with work all over.

Go out and test,

Linus

Linux 5.0 release brought us Adiantum file system encryption for fscrypt, support for AMDGPU FreeSync, Btrfs swap file support, Energy-aware Scheduling for Arm big.LITTLE, and many other changes. It was also the first release where I started to cover RISC-V changelog.

Linux 5.1 ChangelogSome newsworthy changes to Linux 5.1 include:

  • Higher performance asynchronous I/O – io_uring is a new asynchronous interface  adding fast, scalable asynchronous I/O to Linux, both buffered and unbuffered. More details can be found in that 16-page PDF file.
  • Getting “readier” for year 2038 – Linux 5.1 includes syscalls for 32 bits architecture with a 64-bit time_t structure. This means we now have system calls with 64-bit time_t on all architectures.
  • BTRFS gets configurable zstd (Zstandard) compression levelLinux 4.14 added support for zstd in BTRFS, but you were not able to adjust the compression level. This can now be done with the mount option: -o compress=zstd:level
  • TEO, the Timer Events Oriented Governor – The cpuidle subsystem decide which CPU deep idle state should be used when the CPU has nothing to do. If the given system is tickless, it will use the “menu” governor by default and if it is not tickless, the default CPUIdle governor on it will be “ladder”. TEO is an alternative to “menu” which offers improved performance with no extra power consumption cost. The selected idle governor can be checked in /sys/devices/system/cpu/cpuidle/current_governor_ro, and you could change at boot time with cpuidle.governor=teo boot parameter.

Some of Linux 5.1 changes related to Arm architecture:

  • Allwinner
    • A10 – Cedrus video decoding/encoding driver, PMU
    • A13 – LCD enabled on A13 Q8 tablets
    • A20 – Audio Codec improvements
    • A23 – Display pipeline;  LCD enabled on Q8 A23 tablets
    • A64- ARM Architectural Timer errata workaround, PMU, CSI
    • A80 – GMAC support
    • CSI in general – RGR565 support;  JPEG pass-through support
    • Broadcom-based (AMPAK modules) Bluetooth support on Banana Pi M2+ & Banana Pi M2 Ultra
  • Rockchip
    • RK3328 – Add audio CODEC core driver
    • HDMI driver – Overflow workaround for Rockchip
    • Clock drv – Fix RK3328 PLL rate calculation
    • New hardware – FriendlyELEC NanoPC-T4 and NanoPi M4, Radxa RockPi 4
  • Amlogic
    • Clock driver
      • Added Amlogic G12A Always-On Clock Controller
      • Added 32k clock generation for Amlogic AXG
      • Added Mali GPU clocks on Amlogic Meson8
      • Added Amlogic G12A EE clock controller driver
      • Various fixes for the VPU clocks
    • Added Meson RTC driver
    • Add support for Amlogic (raw) NAND flash controller
    • Kconfig updates for v5.1 –  arm64: meson: enable g12a clock controller;  drop unneeded COMMON_CLK_AMLOGIC
    • Device tree updates
      • More features for Endless EC100 board
      • Chip temperature sensor support
      • Fix ethernet pins
      • Add Mali-450 GPU
    • ARM64 device tree updates
      • S400: fix SD/eMMC max rate issues;  audio: add sp/dif in support
      • GX: support simplefb
    • New hardware – X96 Max (S905X2 / G12a) TV box, Elgin RV1108 R1 development board based on Rockchip RV1108
  • Samsung
    • Sound drivers – “big refresh and cleanup of the Samsung drivers”
    • Fixes for handling timeout while booting secondary CPU of Exynos and for S3C24xx DVS notifier
    • defconfig changes for  Linux 5.1 – Enable more drivers in s5pv210 defconfig for Aries family of mobile devices (e.g. Samsung Galaxy S)
    • DTS ARM changes
      • Extend support for Aries family of mobile devices (e.g. Samsung
        Galaxy S) based on S5Pv210 SoC: DRM Rotator, FIMD, PWM vibrator,
        power off, touchscreen, Broadcom BCM4329 Bluetooth and cpufreq.
      • Remove hardcoded bootargs on Galaxy S family (proper support in
        U-Boot).
      • Fix minor DTC warnings.
      • Fix Exynos4412 Odroid X2/U3 conflicting eMMC GPIO settings and regulator properties.
      • Fix the eMMC RTSN pin breaking proper reboot on X2.
      • Enable ADC on Odroid HC1 board.
      • Fix clkout register failure on Exynos3250.
      • Allow using earlycon on Arndale board.
      • Disable ARM PMU on Odroid XU3 Lite because it is locked by Trusted Firmware.
      • Add support for secondary DAI to Odroid XU3 and XU4 boards.
  • Qualcomm
    • Clock driver – Add Qualcomm MSM8998 RPM managed clks, IPA clk support on Qualcomm RPMh clk controllers, updates for Qualcomm MSM8998 GCC clks
    • Sound driver – Added Qualcomm WCD9335 audio codec
    • Power domain drivers for Qualcomm Snapdragon phone chips
    • ARM64 Updates
      • Add MSM8998 RPMCC, I2C, and USB related nodes
      • Add MSM8996 rpmpd node
      • Disable MSM8996 VFE smmu to fix security violation
      • Add I2C, SPI, rpmcc, uart, and WCN3990 wlan nodes on QCS404
      • Enable SDCC1 HS400 support on QCS404
      • Add a multitude of nodes on SDM845 – SD, UFS, USB, LPASS, SCM, QSPI, PDC, DPU, videocc, GPU, RPMh bus interconnect, WCN3990 WLAN
      • Add gpio ranges to SDM845 TLMM
      • Add thermal trip points to cpufreq
      • Add SDM845 IOMMU info for SDHC, USB, and WLAN
      • Fix MSM8916 clock cell argument
    • Device tree changes for Linux 5.1:
      • Fixup GIC IRQ flags and GSBI state on MSM8660
      • Add USB OTG, gpio ranges, and Wifi support on MSM8974 Hammerhead
      • Remove skeleton.dtsi on IPQ4019
  • Mediatek
    • Audio driver – Added MediaTek BTCVSD, MT8183 and MT6358  driver
    • dt-binding documentation of uart for Mediatek MT8183 SoC
      Platform
    • DRM – Add Mediatek framebuffer device
    • Clock – 3rd ECO fix for Mediatek MT2712 SoCs
    • Support for MT7629 new wireless router platform following MT7623
    • GNSS update – new driver for Mediatek-based receivers
  • Other new Arm hardware platforms and SoCs:
    • Bitmain – Bitmain BM1880 SoC with 2x Arm Cortex-A53, RISC-V core, and Tensor processor
    • Broadcom – Raspberry Pi Model 3 A+ supported both in 32-bit
      and 64-bit mode; Phicomm K3 WiFi router (BCM47094)
    • Intel – Chameleon96 96Boards with Cyclone V SoC with FPGA + dual Arm Cortex-A9
    • NVIDIA – NVIDIA Shield TV (Darcy) based on Tegra210
    • NXP
      • SoC – NXP i.MX8QuadXPlus 64-bit Cortex-A35
      • SoM – Logic PD i.MX6QD SoM and evaluation baseboard, Y Soft IOTA Draco/Hydra/Ursa family boards based on i.MX6DL, Phytec phyCORE i.MX6 UltraLite SoM and evaluation module
      • SBC – MYIR Tech MYD-LPC4357 development based on the NXP LPC4357 Arm Cortex-M4/M0 microcontroller, Oxalis Evalkit V100 based on NXP Layerscape LS1012A in 96Boards
        enterprise form factor
    • Renesas – RZ/A2M (R7S9210) 32-bit Cortex-A9 Real-time imaging
      processor, RZ/G2E (r8a774c0) 64-bit Cortex-A53 SoC “for Rich Graphics
      Applications”
    • Texas Instruments – Bosch Guardian (AM335x), Winterland IceBoard for telescopes (AM3874)

Summary of MIPS changelog for Linux 5.1:

  • Support for the MIPSr6 MemoryMapID register & Global INValidate TLB
    (GINVT) instructions, allowing for more efficient TLB maintenance
    when running on a CPU such as the I6500 that supports these.
  • Enable huge page support for MIPS64r6.
  • Optimize post-DMA cache sync by removing that code entirely for kernel configurations in which we know it won’t be needed.
  • The number of pages allocated for interrupt stacks is now calculated correctly, where before we would wastefully allocate too much memory in some configurations.
  • The ath79 platform migrates to device tree.
  • The bcm47xx platform sees fixes for the Buffalo WHR-G54S board.
  • The ingenic/jz4740 platform gains support for appended device trees.
  • The cavium_octeon, lantiq, loongson32 & sgi-ip27 platforms all see cleanups as do various pieces of core architecture code.

RISC-V updates for Linux 5.1:

  • A handful of cleanups to our kernel prints, most of which are things I should have caught the first time.
  • We now provide an HWCAP that contains the ISA extensions that all enabled processors support, as supposed to just looking at the first enabled processor.
  • We no longer spin forever waiting for all harts to boot.
  • A fixmap implementation, which is coupled to some cleanups in our MM code.

You can read a complete Linux 5.1 changelog with comments only here. It has been generated with git log v5.0..v5.1-rc7 --stat. For an easier to read more broad changelog, head over to KernelNewbies.

2
Leave a Reply

avatar
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Jean-Luc Aufranc (CNXSoft)David Willmore Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
David Willmore
Guest
David Willmore

Those RISC-V changelog entries…. who’s writing them?