Linux 4.17 Release – Main Changes, Arm & MIPS Architectures

Linus Torvalds released Linux 4.17 last Sunday:

So this last week was pretty calm, even if the pattern of most of the stuff coming in on a Friday made it feel less so as the weekend approached.

And while I would have liked even less changes, I really didn’t get the feeling that another week would help the release in any way, so here we are, with 4.17 released.

No, I didn’t call it 5.0, even though all the git object count numerology was in place for that. It will happen in the not _too_distant future, and I’m told all the release scripts on are ready for it, but I didn’t feel there was any real reason for it. I suspect that around 4.20 – which is I run out of fingers and toes to keep track of minor releases, and thus start getting mightily confused – I’ll switch over. That was what happened for 4.0, after all.

As for the actual changes since rc7 – the shortlog is appended – it’s mostly drivers, networking, perf tooling, and a set of nds32 fixes. With some random other stuff thrown in. Again, the shortlog is obviously only the last calm week, the overall changes since 4.16 are much too big to list in that format.

The big 4.17 stuff was mentioned in the rc1 email when the merge window closed, but I guess it’s worth repeating how 4.17 is actually a
slightly smaller kernel than 4.16, thanks to the removal of a number
of effectively dead architectures (blackfin, cris, frv, m32r, metag, mn10300, score, and tile). Obviously all the other changes are much more important, but it’s always nice to see spring cleaning like that.

And with this, the merge window for 4.18 is obviously open. I actually have some travel the second week of the merge window, which is very inconvenient for me, but I do hope that we’ll get all the big stuff
merged the first week and it won’t impact any release scheduling. But
we’ll have to see.


Linux 4.16 added more mitigations for Spectre / Meltdown security bugs including for Arm64, faster performance for SD cards, some file system changes, and more.

Linux 4.17 ChangelogSome notable changes for Linux 4.17 include:

  • Big code cleanup with around 470,000 lines of code removed due to the removal of the blackfin, cris, frv, m32r, metag, mn10300, score, and tile architectures
  • Andes Technologies NDS32 architecture has been added
  • Various file systems changes for BTRFS, XFS, CIFS, and EXT-4

Some of the changes related to the Arm architecture in Linux 4.17:

  • Allwinner
    • Driver changes
      • A80 – SMP support
      • A83T – HDMI support; PMIC ADC and Battery power supply support
      • H3 / H5 – HDMI support
      • H6 – Basic support; PIO pinctrl support (R_PIO not supported); CCU clock/reset support (R_CCU/PRCM not supported)
    • Device tree changes
      • A64 – SimpleFB, I2S, S/PDIF, Watchdog
      • SPI enabled for Orange Pi R1
      • SDIO WiFi enabled for NanoPi NEO Air
      • eMMC enabled for NanoPi M1 Plus, NanoPi NEO Air
      • HDMI video output enabled for MK802, MK808C, Mele I7, Banana Pi M3, Banana Pi, Orange Pi Mini, Banana Pi M2+, Beelink X2, Libre Computer ALL-H3-CC, NanoPi M1, Orange Pi 2, Orange Pi Lite, Orange Pi One, Orange Pi PC, Orange Pi PC 2, Orange Pi Prime, Orange Pi Zero Plus 2
      • VGA output enabled for Cubieboard 4
      • LEDs enabled for Banana Pi M3
      • Audio codec enabled for Olimex A33-OlinuXino
      • Power supplies enabled for Olimex A33-OlinuXino, A23/A33 reference tablet design, TBS A711 (battery only)
    • New devices – Olimex TERES-I laptop, Orange Pi Zero Plus, Olimex A20-SOM204 EVB, Pine H64
  • Rockchip
    • Clock driver – Rockchip phase handling fixes and a memory leak plugged, RK3328 display clocks, RK3399 1.6GHz PLL clock
    • IOMMU – OF_IOMMU support for the Rockchip iommu driver so that it can use generic DT bindings
    • DTS32 changes
      • RK322x SocC got their correct grf compatible set.
      • Radxa Rock2 – USB OTG port, recovery and power keys
      • VYASA Board – emmc node
      • phyCORE boards –  UHS speeds in SD card,  and fixed SD Card power supply.
      • Veyron boards – Dropped a nonstandard and unused property
    • DTS64 changes
      • RK3399 – Support for Cadence displayport controller and some
        minor additions for I2S and clocks
      • RK3328 – UART DMAs fix
    • Added support for Libre Computer ROC-RK3328-CC board, Theobroma Systems Haiku development board with Lion Qseven module (RK3368), and standalone variant of the Sapphire board.
  • Amlogic
    • USB – Add / enable USB host support for GX boards
    • Clock driver – Amlogic clk driver underwent some major surgery to use regmap APIs
    • Added support for gwmac on Meson8m2 SoC
    • Add support for DMT modes on HDMI
    • 32-bit DT updates
      • ODROID-C1 –  add microSD,  Ethernet, USB reset
      • Add reset controller
      • Fix requesting GPIOs greater than GPIOZ_3
    • 64-bit DT updates
      • AXG – add/enable UART_A, I2C, RMII, system controller, HW RNG
      • Accept MAC from u-boot environment
      • misc. fixes
  • Samsung
    • Audio – Fixes / cleanups for Samsung Odroid systems
    • Samsung mach/soc changes
      • Add few remaining SPDX license identifiers.
      • Add cpuidle support to all Midas-based boards (including new
      • Fix coupled CPU idle freeze on Exynos4210.
      • Simplify hot-path in coupled CPU idle.
    • SoC drivers changes
      • Add SPDX license identifiers.
      • Populate children syscon nodes in PMU driver to properly model HW in
    • DTS ARM changes
      • Add WiFi to Artik 5 board.
      • Remove unused samsung_k3pe0e000b memory DTSI.
      • Add few remaining SPDX license identifiers.
      • Refactor Exynos4 by using labels for overriding/extending nodes and
        moving respective nodes under the ‘soc’ node.
      • Add three new Exynos4412-based boards: GT-I9300 (Samsung Galaxy S3), GT-I9305 (Samsung Galaxy S3 LTE) and GT-N7100/N7105 (Samsung Note 2).
      • Fix PMIC interrupts on Trats board.
      • Fix IOMMU for GScaler devices on Exynos5250.
      • Fix audio on Exynos5250 Chromebook Snow.
      • Enable HDMI audio Chromebook Snow, Peach Pit and Peach Pi.
      • Fix debounce of “OK” key on Midas (Trats2, Galaxy S3) boards.
      • Minor fixes in unit addresses pointed by DTC.
      • Minor cleanups from unused properties and duplicated code.
    • DTS ARM64 hanges
      • Add support for HDMI audio on Exynos 5433 TM2/TM2E boards.
      • Add support for USB-MHL connector on Exynos 5433 TM2/TM2E boards.
    • New devices – Samsung Exynos4 based Galaxy S3
  • Qualcomm
    • Clock driver – Qualcomm PM8921 PMIC XO buffers update
    • pinctrl driver –  Added support for Qualcomm SDM845
    • Regulator driver – New driver for Qualcomm PM8998 and PMI8998
    • irqchip driver – New Qualcomm PDC irqchip
    • Added Qualcomm Centriq 2400 REP BMC
    • ARM driver updates
      • Fix NV upload increment in wcnss_ctrl
      • Add support in rmtfs-mem driver for assigning memory
    • ARM64 Updates
      • Fix GIC_CPU_MASK_SIMPLE and SPI5 config on MSM8996
      • Add SDM845 and kryo385 documentation
      • Add MSM8916 cooling maps, cpu frequency scaling, APCS, and A53 PLL
      • Switch APCS to use mailbox on MSM8916
      • Add rmtfs-mem on MSM8996
    • Device Tree Changes
      • Add initial DTS file for Samsung Galaxy S5
      • Fixups for castor touchscreen node
      • Fixup QS600 at23 manufacturer
      • Add XOADC and IIO to APQ8064
    • ARM64 Based defconfig updates – Enable cpufreq governors, QCOM TSENS, and QCOM APCS driver
    • New devices –  Qualcomm msm8974 based Galaxy S5
  • Mediatek
    • Clock driver – Mediatek MT2701 and MT7622 audsys support and MT2712 updates
    • Support for Mediatek MT7623A SoC
    • Pinctrl driver for Mediatek MT2712 SoC
  • 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
  • Other new ARM hardware platforms and SoCs:
    • Nuvoton – npcm750 BMC chip
    • NVIDIA – Tegra194 aka “Xavier”, and corresponding p2972
      development board and p2888 CPU module
    • NXP – Toradex Collibri i.MX6ULL SoM, Advantec DMS-BA16 Qseven i.MX6 module, four new Phytec phyBOARD Mira industrial boards based on i.MX6
    • Renesas – H2 based “Stout” and the H3 based Salvator-X evaluation boards, r8a77980 (V3H) based “Condor”
    • STmicro – STM32MP157C MCU and and two evaluation boards
    • Texas Instruments – AM335x based PDU-001 industrial embedded machine used for traffic monitoring
    • Xilinx – Zynq and ZynqMP platforms have gained DTS files for Xilinx own boards, as well as the Digilent Zybo Z7

The main MIPS changes for 4.17 have been to add support  for Microsemi Ocelot SoCs, adding CRC32 and CRC32C HW acceleration module, and various cleanups and misc improvements. But as usual the MIPS maintainer (James Hogan) provides a fairly details summary of the changes in his commit message:

  • Miscellaneous:
    • hang more efficiently on halt/powerdown/restart
    • pm-cps: Block system suspend when a JTAG probe is present
    • expand make help text for generic defconfigs
    • refactor handling of legacy defconfigs
    • determine the entry point from the ELF file header to fix microMIPS
      for certain toolchains
    •  introduce isa-rev.h for MIPS_ISA_REV and use to simplify other code
    •  io: Add barriers to read*() & write*()
    •  memset: Several corner case fixes (one 3.10, others longer)
    • ptrace: Fix PEEKUSR/POKEUSR to o32 FGRs (3.14); expose FIR register through FP regset (3.13); PTRACE_PEEKUSR: Fix 64-bit FGRs (3.15)
  • Minor cleanups:
    • DTS: boston/ci20: Unit name cleanups and correction
    • kdump: Make the default for PHYSICAL_START always 64-bit
    • constify gpio_led in Alchemy, AR7, and TXX9
    • silence a couple of W=1 warnings
    • remove duplicate includes
  • Platform support:
    • Generic platform:
      • add support for Microsemi Ocelot
      • dt-bindings: Add vendor prefix for Microsemi Corporation, add bindings for Microsemi SoCs
      • add ocelot SoC & PCB123 board DTS files
      • MAINTAINERS: Add entry for Microsemi MIPS SoCs
      • enable crc32-mips on r6 configs
    • ath79 – fix AR724X_PLL_REG_PCIE_CONFIG offset
    • BCM47xx
      • firmware: Use mac_pton() for MAC address parsing
      • add Luxul XAP1500/XWR1750 WiFi LEDs
      • use standard reset button for Luxul XWR-1750
    • BMIPS – enable CONFIG_BRCMSTB_PM in bmips_stb_defconfig for build coverage; add STB PM, wake-up timer, watchdog DT nodes
    • Octeon – drop ‘.’ after newlines in printk calls
    • ralink – pci-mt7621: Enable PCIe on MT7688

You may consider reading  Linux 4.17 changelog  generated with git log v4.16..v4.17 --statfor display commit comments only.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard

3 Replies to “Linux 4.17 Release – Main Changes, Arm & MIPS Architectures”

  1. My google FU is keeping me dry. Can anybody find more information on STM32MP157C The only thing I can find is that’s something based on Cortex A

    1. I think there’s no public info just yet. So I had to look inside the changelog. STM32MP157C looks pretty interesting, as it’s the first STM32 with Cortex A7 cores that I know of.

      Some tidbits

      ARM: dts: stm32: add stm32mp157c initial support

      Add stm32mp157c initial support with:
      -Dual Cortex-A7
      -Arm psci, timer, gic

      development boards:

      ARM: dts: stm32: add initial support of stm32mp157c eval board

      Add support of stm32mp157c evaluation board (part number: STM32MP157C-EV1)
      split in 2 elements:
      -Daughter board (part number: STM32MP157C-ED1)
      which includes CPU, memory and power supply
      -Mother board (part number: STM32MP157C-EM1)
      which includes external peripherals (like display, camera,…)
      and extension connectors.

      The daughter board can run alone, this is why the device tree files
      are split in two layers, for the complete evaluation board (ev1)
      and for the daughter board alone (ed1).

      Kernel documentation:

Leave a Reply

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

Khadas VIM4 SBC
Khadas VIM4 SBC