Linux 4.18 Release – Main Changes, Arm and MIPS Architecture

Orange Pi Development Boards

Linus Torvalds has just announced the release of Linux 4.18:

One week late(r) and here we are – 4.18 is out there.

It was a very calm week, and arguably I could just have released on schedule last week, but we did have some minor updates. Mostly networking, but some vfs race fixes (mentioned in the rc8 announment as “pending”) and a couple of driver fixes (scsi, networking, i2c). Some other minor random things (arm crypto fix, parisc memory ordering fix). Shortlog appended for the (few) details.

Some of these I was almost ready to just delay to until the next merge window, but they were marked for stable anyway, so it would just have caused more backporting. The vfs fixes are for old races that  are really hard to hit (which is obviously why they are old and weren’t noticed earlier). Some of them _have_ been seen in real life, some of them probably need explicit help to ever trigger (ie artificial delays just to show that “yes, this can actually happen in theory”).

Anyway, with this, the merge window for 4.19 is obviously open, and I’ll start pulling tomorrow. I already have a couple of dozen pull requests pending due to the one-week delay of 4.18, but keep them coming.

Released roughly two months ago, Linux 4.17 went through a big code clean-up removing unused architectures, file systems changes for BTRFS, XFS, CIFS, and EXT-4, the addition of Andes Technologies NDS32 architecture, and more.

Linux 4.18 ChangelogSome of interesting changes for Linux 4.18 include:

  • Unprivileged file system mounts with FUSE file systems now mountable by unprivileged users
  • New kernel polling interface for asynchronous I/O
  • Restartable sequences, a “mechanism for lockless concurrency control in user space”
  • A TCP zero-copy receive API and support for high-performance AF_XDP sockets
  • Initial Snapdragon 845 SoC support (more details below)

Arm specific changes for Linux 4.18:

  • Allwinner
    • Driver Changes
      • A33 – MIPI DSI
      • A83t – SMP Support
      • H6 – R_CCU / PRCM; R_PIO
      • R40 – EMAC support
    • Device Tree Changes
      • A33 – MIPI DSI
      • A83t -SMP Support;SID
      • H3 / H5 – R_I2C; CPUFreq
      • H6 – R_CCU / PRCM; R_PIO; R_INTC; R_I2C (PCF8563 RTC for PineH64)
      • R40 – EMAC support with Ethernet enabled for Banana Pi M2 Ultra
    • New Devices Supported – Nintendo NES Classic EditionLibre Computer Board ALL-H3-CC‎ ver. H2+ / H5, and Olimex A20-SOM-EVB-eMMC
  • Rockchip
    • Rockchip power domain bindings and hardware descriptions for
      several SoCs
    • Clock – Deprecated Rockchip clk-gate driver
    • Pinctrl – Added Rockchip PX30 support
    • Rockchip RK3399 – USB3 OTG support
    • Defconfig – update config for Rockchip PCIe, enablement for efuse , Bluetooth USB. Marve ll WiFi-Ex PCIe driver, Atmel maxtouch driver, HID over I2C drivers, ChromeOS EC drivers, Rockchip io-domain driver, and typec-phy and extcon-usbc-cros-ec for RK3399
  • Amlogic
    • Improvements for I2C, UFS, TDM, GPIO external interrupts, MMC resets
    • Clock – Meson audio divider fix and CPU clk critical marking; added Amlogic axg AO clock controller; SPDX tagging
    • 64-bit DT changes
      • AXG: Add new clock driver, WiFi, eMMC support; I2C fixes
      • GX: add/enable USB host support
    • 32-bit DT changes – add support for meson8m2 SoC, Tronsmart MXIII Plus, odroid-c1 IR
    • 32-bit defconfig – Enable PWM controller, I2C driver
    • New devices – 8M2 SoC (Amlogic S812) quad Cortex-A9 SoC; Tronsmart MXIII Plus (Amlogic S812)
  • Samsung
    • Added support for Audio-over-HDMI on Odroid X/X2/U3
    • Removed support for Exynos5440 SoC
    • Pinctrl drivers – Various fixed and Exynos5440 removal
    • Mach/SoC- Minor changes and cleanups
    • DTS Arm changes:
      • Add support for audio over HDMI for Odroid X/X2/U3
      • Add support for USB OTG port on Origen board.
      • Allow earlycon on Rinato board.
      • Cleanup from obsolete properties.
      • Fix DTC warnings
      • Remove Exynos5440 entirely.
      • Add mem-2-mem Scaler devices
    • DTA ARM64 changes – Fix DTC warning, add mem-2-mem Scaler devices
    • Defconfig changes – Enable Samsung S6E63J0X03 DSI panel.
  • Qualcomm
    • IPQ8074 – Added PCIe support
    • MSM8996 – UFS support
    • Clock driver
      • New: Qualcomm SDM845 GCC and Video clk controllers, Qualcomm MSM8998 GCC
      • Updated Qualcomm GDSC, RCG, and PLL
    • Audio – New Qualcomm DSP support
    • Device tree changes
      • Numerous updates for IPQ8074 and IPQ4019 based devices
      • Add support for Sony Xperia Z1 Compact
      • APQ8064 fixes for irq translations and pci address translation
      • Fix RPM clock controller compatible on MSM8660
      • Add TZ and SMEM reserved regions on IPQ4019
      • Add vadc nodes for PM8941
      • Disable i2c by default at top level APQ8064 dtsi
    • ARM 64 defconfig updates – Enable UFS and PCIe for Qualcomm msm8996/db820c
    • ARM64 updates
      • Fix UFS GDSC on msm8996
      • Remove unused BT node regulator
      • Correct WLAN PCIe regulator endpoint name
      • Add support for SDM845 and associated peripherals
      • Fix gic_irq_domain_translation warnings on Qualcomm platforms
      • Add binding for GENI SE, Qualcomm bluetooth, and Command DB
      • Add support for SDHCI and ramoops on MSM8992
      • Fixup qcom,pcie devices to pcie
      • Add wlan, bluetooth, and micro SD supplies on db820c
      • Add UFS related nodes on MSM8996
    • ARM driver updates
      • Various SMEM updates/fixes
      • Add qcom_smem_virt_to_phys SMEM API
      • Update MAINTAINERS to include qcom_scm pattern
      • Add Qualcomm Command DB driver
      • Add Qualcomm SCM compatible for IPQ4019
      • Add MSM8998 to smd-rpm compatible list
      • Add Qualcomm GENI based QUP wrapper
      • Fix Qualcomm QMI buffer sizing bug
    • New devices –  Qualcomm 845 (SDM845) octa-core Kryo 385 processor; MSM8974 based Sony Xperia Z1 Compact smartphone; Qualcomm SDM845 MTP development board
  • Mediatek
    • Pinctrl – Driver fixes for MT7622
    • Clock – Updated Mediatek Mali clocks
    • Audio – New drivers for Mediatek MT6351, MT6797 and MT7622
    • Add USB3 PHY driver for Mediatek XS-PHY
    • Mediatek MT7623 – Added Highspeed DMA, audio support
    • New devices – Mediatek MT7623A SoC with on-chip Ethernet options; Mediatek MT7623N and MT7623A reference boards
  • ARM64 updates
    • Removal of Qualcomm-specific Spectre-v2 mitigation in favour of the
      generic SMCCC-based firmware call
    • Fix EL2 hardening capability checking, which was bodged to reduce
      conflicts with the KVM tree
    • Add some currently unused assembler macros for managing SIMD
      registers which will be used by some crypto code in the next merge
      window”
  • Other new ARM hardware platforms and SoCs:
    • Aspeed –  S2600WF, Inventec Lanyang BMC, Portwell Neptune
    • Berlin2CD – Valve Steam Link
    • Broadcom – BCM5301X: Luxul XAP-1610 and XWR-3150 V1; Raspberry Pi 3 B+
    • NXP i.MX – Engicam i.CoreM6, DHCOM iMX6 SOM, BTicino i.MX6DL Mamoj
    • Renesas – R8A77990 (R-Car E3) automotive entertainment-targeted SoC; Ebisu R8A77990 board;   R8A77470 (RZ/G1C)  dual Cortex-A7 SoC with PowerVR GPU; iWave G235-SDB board
    • STMicroelectronics – STM32F469, very similar to STM32F429 but with display support
    • Texas Instrument – am335x PocketBeagle support

Support for the recently released Qualcomm 845 processor is only basic however, as noted in the log:

So far, you can’t do much with it, since a lot of peripherals are not yet in the DTs but driver support for USB, GPU and other pieces are starting to trickle in. This might end up being a well-supported SoC
upstream if the momentum keeps up.

Some of the main changes for MIPS architecture include generic compiler intrinsics, Y2038 improvements, Perf+MT fixesGeneric compiler intrinsics, Y2038 improvements, Perf+MT fixes, some new platforms such as Netgear WNR1000 V3, Microsemi Ocelot integratedswitch, Ingenic watchdog cleanups. Paul Burton has added as MIPS co-maintainer.

A longer summary of MIPS changes:

  • Miscellaneous
    • Use generic GCC library routines from lib/
      • Add notrace to generic ucmpdi2 implementation
      • Rename compiler intrinsic selects to GENERIC_LIB_*
      • vmlinuz: Use generic ashldi3
    • y2038: Convert update/read_persistent_clock() to *_clock64(); sni: Remove read_persistent_clock()
    • perf: Fix perf with MT counting other threads; probe for per-TC perf counters in cpu-probe.c;use correct VPE ID for VPE tracing
  • Minor cleanups:
    • Avoid unneeded built-in.a in DTS dirs
    • sc-debugfs: Re-use kstrtobool_from_user
    • memset.S: Reinstate delay slot indentation
    • VPE: Fix spelling “uneeded” -> “Unneeded”
  • Platform support:
    • BCM47xx:
      • Add support for Netgear WNR1000 V3
      • firmware: Support small NVRAM partitions
      • Use __initdata for LEDs platform data
    • Ingenic:
      • Watchdog driver & platform code improvements:
      • Disable clock after stopping counter
      • Use devm_* functions
      • Drop module remove function
      • Move platform reset code to restart handler in driver
      • JZ4740: Convert watchdog instantiation to DT
      • JZ4780: Fix watchdog DT node
      • qi_lb60_defconfig: Enable watchdog driver
    • Microsemi:
      • Ocelot: Add support for integrated switch
      • pcb123: Connect phys to ports”

For more details, you can check the full Linux 4.18 changelog generated with git log v4.17..v4.18 --stat, or read a summary of changes on KernelNewbies.

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

2
Leave a Reply

avatar
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
blu Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
blu
Guest
blu

Interesting Samsung entirely dropped exynos5440. Thanks as always, JL!