Lanzamiento de Linux 5.19: cambios principales, arquitecturas Arm, RISC-V y MIPS

Linus Torvalds acaba de anunciar el lanzamiento de Linux 5.19. Debería ser la última versión 5.xx, con Linux 6.0 para el próximo ciclo:

Así que aquí estamos, con una semana de retraso, y la versión 5.19 está etiquetada y eliminada.

El registro breve completo (solo de rc8, obviamente no todo el 5.19) está a continuación, pero felizmente puedo informar que no hay nada realmente interesante allí. Un montón de cosas pequeñas al azar.

En el diffstat, las actualizaciones de loongarch se destacan, al igual que otro lote de anotaciones READ_ONCE() de sysctl de red para hacer feliz a algunos de los códigos del verificador de carrera de datos.

Aparte de eso, en realidad es solo una mezcla de varias probabilidades y extremos.

En una nota personal, la parte más interesante aquí es que hice el lanzamiento (y estoy escribiendo esto) en una computadora portátil arm64. Es algo que he estado esperando durante _mucho_ tiempo, y finalmente es una realidad, gracias al equipo de Asahi. Hemos tenido hardware arm64 para ejecutar Linux durante mucho tiempo, pero ninguno de ellos ha sido realmente utilizable como plataforma de desarrollo hasta ahora.

Es la tercera vez que uso hardware de Apple para el desarrollo de Linux; lo hice hace muchos años para el desarrollo de powerpc en una máquina ppc970. Y luego, hace más de una década, cuando la Macbook Air era la única realmente delgada y liviana. Y ahora como plataforma arm64.

No es que lo haya usado para ningún trabajo real, literalmente solo he estado haciendo compilaciones y arranques de prueba y ahora el etiquetado de lanzamiento real. Pero estoy tratando de asegurarme de que la próxima vez que viaje, pueda viajar con esto como una computadora portátil y finalmente hacer dogfood en el lado arm64 también.

De todos modos, independientemente de todo eso, esto obviamente significa que la ventana de combinación (*) se abrirá mañana. Pero, por favor, haga una buena prueba antes de entusiasmarse con un nuevo núcleo de desarrollo.

Linus

(*) Probablemente lo llamaré 6.0 ya que estoy empezando a preocuparme por confundirme con números grandes nuevamente.

Publicado hace poco más de dos meses, Linux 5.18 implementó cambios para tiempos de compilación más rápidos, cambió al estándar C11 (2011), mejoró el rendimiento de la programación de procesos en AMD Zen, trajo actualizaciones de Btrfs y muchas otras mejoras y características nuevas.

Linux 5.19: arm risc-v mips

Algunos cambios notables en Linux 5.19 incluyen:

  • Redes: BIG TCP compatible con paquetes de hasta 4 GB para redes de alta velocidad (más de 100 Gbps)
  • Virtualización y contenedores: compatibilidad con Paginación anidada segura y Extensiones de dominio de confianza mecanismos. Consulte la documentación confirmada para esto último.
  • Compatibilidad con Loongson «LoongArch » nueva arquitectura de CPU que se basa en MIPS, y también es «un poco como RISC-V», y fue diseñada inicialmente para procesadores chinos. Se pueden encontrar más detalles en el mensaje de confirmación.
  • Para los nostálgicos: la compatibilidad con el formato ejecutable a.out en x86, que quedó obsoleto en la versión 5.1, ahora se eliminó por completo

Cambios de Arm en Linux 5.19

  • Arm Scalable Matrix Extension is now supported (in host mode only, not for guest systems).
  • Allwinner
    • Allwinner F1C100s – SD/MMC, SPI, Watchdog
    • Clocks – Updates to Allwinner H6 RTC clock, Allwinner H616 32 kHz clock
    • PHY – Added Allwinner D-PHY Rx mode support for MIPI CSI-2
    • Device tree – Add GPIO port regulators to Olimex TERES-I laptop
  • Rockchip
    • Pinctrl – New driver for RK3588
    • MMC core – sdhci-of-dwcmshc: Add support for the Rockchip rk3588 variant
    • PCIe controller driver
      • Fix bitmap size when searching for free outbound region
      • DesignWare driver:
        • Remove «snps,dw-pcie» from rockchip-dwc DT «compatible» property because it’s not fully compatible with rockchip (Peter Geis)
        • Reset rockchip-dwc controller at probe (Peter Geis)
        • Add rockchip-dwc INTx support (Peter Geis)
    • Clock driver – Conversion from txt to Yaml for a number of Rockchip clock bindings
    • DRM – Add VOP2 driver found on Rockchip SoCs beginning with RK3566/RK3568, tested with HDMI and MIPI-DSI display on an RK3568-EVB
      board.
    • New devices and boards
  • Amlogic
    • ARM DT change  – Align SPI NOR node name with dtschema
    • ARM64 DT changes for Linux 5.19:
      •  DTS makefile alpsa sort
      • Align SPI NOR node name with dtschema
      • Add support for S4 power domain, gpio_intc, pinctrl
      • Updates and fixes for JetHub D1/H1 boards
  • Samsung
    • Added clock driver for Exynos Auto V9 SoC
    • DTS ARM changes for Linux 5.19
      • Several DT schema-related changes to make DTBs passing schema checks: EHCI/OHCI/DMA/Ethernet node names, DMA channels order, USB-like compatibles.
      • Add specific compatibles to Multi Core Timer to allow stricter DT schema matching.
      • Cleanup from deprecated bindings
      • Fix inverted SPI CS (thus blank panel) on S5PV210 Aries boards.
      • Correct Bluetooth interrupt name on S5PV210 Aries boards.
      • Cleanups: unused and undocumented dma-channels and dma-requests.
    • DTS ARM64 changes
      • Add specific compatibles to Multi Core Timer to allow stricter DT schema matching.
      • Cleanups
        • Move aliases of board-related features to board in Exynos 850.
        • Unused and undocumented dma-channels and dma-requests
  • Qualcomm
    • Pinctrl – Support for Qualcomm PMX65 and PM6125, new driver for Qualcomm SC7280 LPASS pin control.
    • Clock driver
      • LPASS clk driver for Qualcomm SC7280 SoC
      • GCC clk driver for Qualcomm SC8280XP SoC
    • Bus driver for the SSC (Snapdragon Sensor Core), support for more chips in the RPMh power domains and the soc-id.
    • IOMMU – ARM SMMU driver: Add new Qualcomm device-tree compatible strings
    • dmaengine – Support for Qualcomm SM8350, SM8450 and SC7280
    • PCIe controller driver – Add SM8150 SoC DT binding and support, fix pipe clock imbalance, and many other small changes
    • PHY – Added Qualcomm UFS PHY support for SM6350 and USB PHY for SDX65
    • Qualcomm 802.11ax WiFi (ath11k):
      • Wake-on-WLAN support for QCA6390 and WCN6855
        Device recovery (firmware restart) support
      • Support setting Specific Absorption Rate (SAR) for WCN6855
      • Read country code from SMBIOS for WCN6855/QCA6390
      • Enable keep-alive during WoWLAN suspend
      • Implement remain-on-channel support
    • ARM64 DT updates:
      • Overhaul of the MSM8974 DeviceTrees: aligning the style, structure and naming with what we’ve learned since the introduction of this platform.
      • The Sony Rhine platform gained I2C masters, NFC and pstore support. The Fairphone 2 gained touchscreen support.
      • SDX65 – Added reserved-memory nodes, rpmpd, SPMI, CPU clocks, SDHCI controller, SMMU and TCSR mutex. Initial DeviceTree for the related PMX65 PMIC.
      • MSM8226  – Gets VADC and RTC support, ASUS ZenWatch 2 added.
    • Arm64 DT updates for Linux 5.19:
      • Adds MDIO bus description on the IPQ6018 platform
      • MSM8916 – BAM-DMUX WWAN network device is added and the Huawei Ascend G7 gains sound card definition and clarified installation instructions.
      • MSM8992 and MSM8994  – Added multimedia clock controller, on-chip memory, watchdog, and various cleanup changes. The Xiaomi Mi 4C gains CPU regulators and fixes to the framebuffer definition, while Huawei Nexus 6P gains eMMC support.
      • MSM8996 – Added modem and sensor remoteprocs, and enabled in the Dragonboard 820c and the Xiaomi devices.
      • MSM8998 – New clocks related to the sensor subsystem bus are marked as protected by default, and the OnePlus devices gains NFC.
      • SC7180 –  limozeen moves to using edp-panel for EDID-based detection, over statically defined panels.
      • SC7280 – Added GPI DMA, WiFi remoteproc and network device, LPASS audio clocks, resets for SDCC controllers and a new CRD revision. The Herobrine board gains eDP support and the IDP gains backlight. USB is marked wakeup capable.
      • SDM845 – Enabled IPA, WLED-based backlight and second WiFi channel enabled for Xiaomi Pocophone F1. On RB3 the CAN bus controller is added and the WiFi calibration variant is defined to allow adding the board’s calibration information into linux-firmware.
      • SM6350  – Added I2C busses, UFS, and WiFi support
      • SM7225 (and the Fairphone 4) – UFS, WiFi, and haptics are enabled.
      • SM8150 – PCIe, Ethernet, and uSD card sadded, and enabled for the SA8155p ADP board. The PDC interrupt controller is also added and described as wakup interrupt parent for TLMM.
      • SM8250 – Camera subsystem and control interface defined. Sony Xperia 1 II DTS enables the audio amplifiers
      • SM8350 – GPI DMA engines are added and linked to the I2C and SPI serial engines. Surface Duo 2 gains battery charger support.
      • SM8450  – The two PCIe controller/PHYs are enabled, GPI DMA and QUP serial engine instances are added. Remoteproc instances are enabled on
        SM8450 HDK.
    • Defconfig updates
      • Qualcomm random number generator and hardware crypto drivers
      • DebugFS support
    • New devices and boards – 8x Qualcomm Snapdragon-based machines, including a smartwatch (ASUS ZenWatch 2), a Chromebook board and some phones such as Xiaomi Poco F1 phone
  • MediaTek
    • Added Mediatek MT8195 (Kompanio 1200) high-end consumer chip for Chromebooks.
    • Clock driver – MediaTek MT8186 SoC clk support
    • Watchdog driver
      • Added MediaTek MT8186 support
      • Added Mediatek MT7986 reset-controller support
    • Pinctrl – New driver for Mediatek MT8195, Mediatek MT6795 Helio X10
    • MFD – Added support for {Power,Home} Keys to MediaTek MT6359
    • PCIe
      • Fix refcount leak in mtk_pcie_subsys_powerup()
      • Gen3 controller driver – Reset PHY and MAC at probe time
    • Audio – ASoC driver for MediaTek MT8186
    • Regulator – Added support for MediaTek MT6358 and MT6366
    • MediaTek WiFi (mt76)
      • Support Wireless Ethernet Dispatch offloading packet movement between the Ethernet switch and WiFi interfaces
      • Non-standard VHT MCS10-11 support
      • MT7921 – Support for AP mode, IPv6 NS offload
  • Other new Arm hardware platforms and SoCs
    • Arm – Corstone1000 generic platform from Arm that is used for designing custom SoCs, the support for now is for the Fixed Virtual Platform emulation for it.
    • Broadcom
      • BCM47622 broadband SoC based on a quad Cortex-A7 and dual Wifi-6.
      • Two wireless routers based on Broadcom BCM4708
    • NXP
      • Added i.MXRT1050 Cortex-M7 microcontroller (MMU-less SoC)
      • 30 new boards based on NXP i.MX6, i.MX7 and i.MX8 families, mostly for the industrial embedded market, and one NXP LS1021A IoT board.
    • Renesas
      • RZ/G2UL (R9A07G043) single-core version of the RZ/G2L general-purpose MPU.
      • RZ/V2M (R9A09G011) smart camera SoC
      • Renesas R-Car V4H (R8A779G0) automotive chip with Cortex-A76 cores and deep learning acceleration.
    • STMicro – 7x STM32MP1 based boards

Actualizaciones de RISC-V

  • Allwinner D1
    • DMA and LRADC drivers
    • Implementation of page-based memory attributes
    • Device tree – Enables display engine 2.0 with two mixers, a TCON TOP (with DSI and HDMI), one TCON LCD, and one TCON TV.
  • Support for the Svpbmt extension, which allows memory attributes to be encoded in pages
  • Support for running rv32 binaries on rv64 systems, via the compat subsystem
  • Support for kexec_file()
  • Support for the new generic ticket-based spinlocks, which allows us to also move to qrwlock. These should have already gone in through the asm-geneic tree as well
  • A handful of cleanups and fixes, including some larger ones around atomics and XIP

MIPS en Linux 5.19

El registro de cambios de MIPS para Linux 5.19 no podría ser más simple:

  • Limpiezas y arreglos

Sin embargo, hay más detalles en las confirmaciones de la lista (38 en total), pero normalmente no necesito mencionarlo aquí:

  • MIPS: RALINK: Define pci_remap_iospace under CONFIG_PCI_DRIVERS_GENERIC
  • MIPS: Use memblock_add_node() in early_parse_mem() under CONFIG_NUMA
  • MIPS: Return -EINVAL if mem parameter is empty in early_parse_mem()
  • MIPS: Kconfig: Fix indentation and add endif comment
  • MIPS: bmips: Fix compiler warning observed on W=1 build
  • MIPS: Rewrite `csum_tcpudp_nofold’ in plain C
  • mips: setup: use strscpy to replace strlcpy
  • MIPS: Octeon: add SNIC10E board
  • MIPS: Ingenic: Refresh defconfig for CU1000-Neo and CU1830-Neo.
  • MIPS: Ingenic: Refresh device tree for Ingenic SoCs and boards.
  • MIPS: Ingenic: Add PWM nodes for X1830.
  • MIPS: Octeon: fix typo in comment
  • MIPS: loongson32: Kconfig: Remove extra space
  • MIPS: Sibyte: remove unnecessary return variable
  • MIPS: Use NOKPROBE_SYMBOL() instead of __kprobes annotation
  • selftests/ftrace: Save kprobe_events to test log
  • MIPS: tools: no need to initialise statics to 0
  • MIPS: Loongson: Use hwmon_device_register_with_groups() to register hwmon
  • MIPS: VR41xx: Drop redundant spinlock initialization
  • MIPS: smp: optimization for flush_tlb_mm when exiting
  • Etc…

Esos parecen ser cambios menores de hecho. Esto fue seguido más tarde con una actualización para corregir la compilación de Loongson-3 (corregir compilar mips cpu_hwmon como error de compilación del módulo).

El registro de cambios completo de Linux 5.19 con mensajes de confirmación solo está disponible y Lo generé con el comando git log v5.18..v5.19-rc8 --stat. Como alternativa, puede consultar un resumen detallado en el sitio web de KernelNewbies.

Traducido del artículo en inglés «Linux 5.19 Release – Main changes, Arm, RISC-V and MIPS architectures«.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
StarFive RISC-V SBC