เปิดตัว Linux 6.10 พร้อมเปลี่ยนแปลงที่สำคัญของสถาปัตยกรรม Arm, RISC-V และ MIPS

Linux Torvalds ได้ประกาศเปิดตัว Linux 6.10 บน LKML (Linux kernel mailing list), เมื่อประมาณ 2 เดือนทีผ่านมาได้เปิดตัว Linux 6.9 โดยเพิ่มการรองรับ Intel Flexible Return and Event Delivery (FRED), การรองรับการรัน AMD Secure Nested Paging (SNP) guests, การแก้ไขปัญหา “Register File Data Sampling” (RFDS) ซึ่งเป็นช่องโหว่ทางฮาร์ดแวร์ที่มีผลกระทบกับ Intel Atom CPUs, ฟีเจอร์ named address spaces ของ GCC เพื่อเพิ่มประสิทธิภาพในการเข้าถึงข้อมูล per-CPU, และการรองรับเบื้องต้นสำหรับ FUSE passthrough รวมถึงการเปลี่ยนแปลงอื่น ๆ

Linux 6.10 Release Changelog

การเปลี่ยนแปลงที่สำคัญใน Linux 6.10

การเปลี่ยนแปลงที่สำคัญบางส่วนใน Linux 6.10:

  • การปรับปรุงประสิทธิภาพการทำงานของเครือข่าย – เพิ่มประสิทธิภาพการส่งแบบ zero-copy โดยใช้ io_uring และการรวมหลายบัฟเฟอร์สำหรับการส่งและรับข้อมูล
  • system call mseal() ถูกผสานเข้ากับ Linux 6.10 เพื่ออนุญาตให้กระบวนการห้ามการเปลี่ยนแปลงในส่วนของ address space โดยเฉพาะเบราว์เซอร์ Chrome จะใช้การเรียกใช้ระบบนี้เพื่อเสริมความปลอดภัยภายในของ sandbox
  • Bluetooth เพิ่ม USB HW IDs สำหรับ MT7921/MT7922/MT7925 และรองรับ Intel BlazarI และ Filmore Peak2 (BE201) นี่เป็นสิ่งสำคัญอย่างมากสำหรับผู้ที่ใช้มินิพีซีที่มีโมดูลไร้สาย MediaTek MT7922 เช่นเดียวกับมินิพีซีรุ่นล่าสุด อย่าง GEEKOM A8 ที่ Bluetooth ไม่ทำงานใน Linux จนถึงตอนนี้ การทำงานของ Bluetooth  สามารถทำงานได้กับโมดูล WiFi 7 ของ Intel BE201 อีกด้วย
  • การเปลี่ยนแปลงในระบบไฟล์: เพิ่มโปรโตคอลใหม่สำหรับการควบคุม NFS server ใน kernel, การปรับปรุง XFS filesystem, การรองรับ fs-verity ใน FUSE subsystem และการสร้างไฟล์ชั่วคราวใน overlayfs filesystem โดยใช้ O_TMPFILE

บันทึกการเปลี่ยนแปลง Linux 6.10 สำหรับ Arm

  • Rockchip
    • Add support for RK816 PMIC
    • PHY – Added USBDP combo phy driver
    • Clock driver
      • Add new PLL rate and missing mux on Rockchip RK3568
      • Add missing reset line on Rockchip RK3588
      • Removal of an unused field in struct rockchip_mmc_clock
    • PCIe controller driver
      • Configure endpoint BARs to be 64-bit based on the BAR type, not the BAR value
      • Add DT binding missing maxItems to ep-gpios
      • Set the Subsystem Vendor ID, which was previously zero because it was masked incorrectly
    • Rockchip RK3308 – Added ASoC audio driver
    • New devices
      • Radxa ROCK 3C (RK3566-T)
      • ArmSom Sige7 board (RK3588)
      • GameForce Chi handheld gaming console (RK3326)
      • Forlinx FET3588-C system-on-module (RK3588) and OK3588-C carrier board
      • RR-Mechatronics MECSBC single board computer (RK3568) for blood analysis machines
      • WolfVision PF5 mainboard (RK3568)
  • Amlogic
    • Clock driver
      • Amlogic s4/a1: add regmap maximum register for proper debugfs dump
      • Amlogic s4: add MODULE_DEVICE_TABLE() on PLL and periph controllers
      • Amlogic pll driver: print clock name on lock error to help debug
      • Amlogic vclk: finish dsi clock path support
      • Amlogic license: fix occurence “GPL v2” as reported by checkpatch
    • Thermal driver – Amlogic A1 thermal sensor
    • Amlogic ARM64 DT changes for Linux 6.10:
      • Initial Amlogic A4 & A5 support – Both are application processors designed for smart audio and IoT applications.
      • MIPI DSI support for G12A, G12B & SM1 SoCs
      • Overlay for Khadas TS050 panel for the Khadas VIM3/VIM3L
      • Amlogic T7 reset controller
    • New devices
      • MNT Reform 2 CM4 adapter with a BPI-CM4 Module
      • AV400 (Amlogic A5)
      • BA400 (Amlogic A4)
  • Samsung
    • Clock driver
      • Allow choice of manual or firmware-driven control over PLLs, needed to fully implement CPU clock controllers on Exynos850
      •  Correct PLL clock IDs on ExynosAutov9
      • Propagate certain clock rates to allow setting proper SPI clock rates on Google GS101
      • Add HSI0 and HSI2 clock controllers for Google GS101
      • Mark certain Google GS101 clocks critical
      • Convert old S3C64xx clock controller bindings to DT schema
    • Pinctrl driver
      • Add support for toggling bus clock (PCLK) for any pin controller register accesses. This looks needed on newer Samsung chips, like Google GS101 and probably Exynos850.
      • Drop old, deprecated in v6.1 bindings header with register constants. The constants were moved to DTS headers.
    • DTS Arm changes for Linux 6.10
      • Few cleanups of deprecated properties and node names pointed out by bindings newly converted to DT schema.
      • Fix S5PV210 NAND node size-cells, pointed out by DT schema.
      • Add FIFO depth to each SPI node so we can avoid matching this through DTS alias. Difference SPI instances on given SoC have different FIFO depths.
      • Fix Exynos4212 Galaxy Tab3 usable memory, because stock bootloader is not telling us the truth.
    • Samsung DTS ARM64 changes
      • Add FIFO depth to each SPI node so we can avoid matching this through DTS alias. Difference SPI instances on given SoC have different FIFO depths.
      • Exynos850: add clock controllers providing clocks to CPUs.
      • A few changes exclusively for Google GS101 found in Google Pixel 6:
        • Few cleanups and add missing serial engine (USI) interface nodes.
        • Add HSI0 and HSI2 clock controllers (CMUs).
        • Add USB 3.1 Dual Role Device (DRD) support.
        • Add UFS (Universal Flash Storage) support.
        • Document bus clocks in pin controllers necessary for accessing registers.
    • Defconfig changes – N/A
    • New Devices – N/A
  • Qualcomm
    • LED driver – Add support for Qualcomm PMI8950 PWM to LPG Core
    • Clock driver
      • Add support in qcom RCG and RCG2 for multiple configurations for the same frequency
      • Use above support for IPQ8074 NSS port 5 and 6 clocks to resolve issues
      • Fix the Qualcomm APSS IPQ5018 PLL to fix boot failures of some boards
      • Cleanups and fixes for Qualcomm Stromer PLLs
      • Reduce max CPU frequency on Qualcomm APSS IPQ5018
      • Fix Kconfig dependencies of Qualcomm SM8650 GPU and SC8280XP camera clk drivers
      • Make Qualcomm MSM8998 Venus clocks functional
      • Cleanup downstream remnants related to DisplayPort across Qualcomm SM8450, SM6350, SM8550, and SM8650
      • Reuse the Huayra APSS register map on Qualcomm MSM8996 CBF PLL
      • Use a specific Qualcomm QCS404 compatible for the otherwise generic HFPLL
      • Remove Qualcomm SM8150 CPUSS AHB clk as it is unused
      • Remove an unused field in the Qualcomm RPM clk driver
      • Add missing MODULE_DEVICE_TABLE to Qualcomm MSM8917 and MSM8953 global clock controller drivers
    • Pinctrl driver – New drivers for Qualcomm PMIH0108, PMD8028, PMXR2230 and PM6450
    • IOMMU – ARM-SMMUv2 – Support for fault debugging hardware on Qualcomm implementations
    • PHY driver
      • Added support for Embedded DisplayPort and DisplayPort submodes and driver support on Qualcomm X1E80100 EDP driver
      • Added Qualcomm QMP UFS PHY for SM8475, QMP USB phy for QDU1000/QRU1000 and eusb2-repeater for SMB2360
      • Qualcomm x4 lane EP support for sa8775p, v4 ad v6 support for X1E80100, SM8650 tables for UFS Gear 4 & 5 and correct voltage swing tables
    • I2C driver – Added documentation for the Qualcomm SC8280XP.
    • WiFi
      • Qualcomm (ath11k):
        • P2P support for QCA6390, WCN6855 and QCA2066
        • Support hibernation
        • ieee80211-freq-limit Device Tree property support
      • Qualcomm (ath12k)
        • Refactoring in preparation of multi-link support
        • Suspend and hibernation support
        • ACPI support
        • debugfs support, including dfs_simulate_radar support
    • Driver updates
      • The Qualcomm SCM driver initialization order is improved, to avoid any potential for a client to find a half-initialized SCM instance.
      • The QSEECOM allow list is marked __maybe_unused to avoid build warnings when built with !OF. The error handling related to the interconnect API is cleaned up to avoid handling the impossible IS_ERR() condition.
      • initcall level is bumped to “core” for cmd-db and rpmh-rsc, as dependent drivers like regulators, interconnects and clocks are registered at this level.
      • Another attempt is made to remove the strncpy() usage in cmd-db, this time with strtomem_pad() which has the correct characteristics.
      • The bwmon regmap cache is changed to maple tree.
      • After an attempt to add missing MODULE_DEVICE_TABLEs to debug drivers, the intention of not having them automatically load is documented.
      • Operations on the pmic_glink client list is put under mutual exclusion, to avoid races when clients are being registered. pmic_glink client registered after the firmware notification arrived was not informed that the firmware was up, this is resolved.
      • More DSPs and the apss subsystem is added to the Qualcomm sleep stats driver.
    • ARM32 DTS updates
      • The QCA8074 PHY package found in IPQ4019 is properly described.
      • The Sony Xperia Z2 Tablet is cleaned up and improved, vibrator support is added
      • Nodes representing the PCIe bridges under existing controllers are added for APQ8064, IPQ4019, IPQ8064, and SDX55.
      • A number of fixes throughout to improve compliance with DeviceTree bindings.
    • Arm64 DTS updates for Linux 6.10
      • Snapdragon X Elite – SPMI support is added, together with PMIC definitions. The link properties for DP3 are corrected, and audio-related resets are  introduced. SoundWire properties are corrected.
      • IPQ8074 – UART6 is described and unused gpios from QPIC are removed.
      • Backlight and touchscreen are described on Samsung Grand Prime devices.
      • RGB LED is added to Sony Xperia “Yoshino” devices, on which the volume-up key definition is corrected as well.
      • Light Pulse Generator node is added to PM6150L PMIC, and blocks related to USB Type-C on PM6150 are added.
      • QCS6490 – Enabled Rb3Gen2 UFS storage, USB Type-C management, a couple of remoteprocs and both USB Type-C and native DisplayPort. For the related IDP display is enabled, and the PMIC volume and power
        buttons are described.
      • SC7280 – The inline crypto engine is added and an additional turbo frequency is added to the MDP.
      • USB Type-C port management is introduced for the QRB2210 RB1. WiFi firmware-name qualifier is added to both RB1 and RB2 boards.
      • QCM2290 – The LMH node is added to configure the thresholds as well as provide thermal pressure input.
      • The regulator range is adjusted for SD-card IO on SA8155P ADP, to allow UHS modes.
      • The unused DCC is disabled on SC7180, and unused PMIC gpio block is disabled on Trogdor.
      • For Lenovo Flex 5G, on SC8180X, the GPU firmware path is aligned with agreed upon firmware structure. The frequency of the I2C bus for touchpad is brought up to mitigate missing events. A number of additional cleanups are introduced.
      • SC8280XP – GICv3 ITS is wired up for PCIe. EAS properties ad introduced. A PS_HOLD-based restart node is introduced and acts as a fallback if other mechanisms are unavailable to restart the board. QFPROM is described, missing LMH interrupts for thermal pressure are added. The TCSR download mode register is added, to allow configuring if download mode should be entered on a crash.
      • USB Type-C handling is introduced for Fairphone FP3 as well.
      • SM6350 – Crypto engine and DisplayPort controllers are introduced.
      • WiFi is enabled on the SM8150 Hardware Development Kit (HDK)
      • USB PD properties are added on Xiaomi Mi Pad 5 Pro devices.
      • SM8350 – Interconnect paths are added for UFS to ensure the bus is voted for when the controller is operating.
      • SM8550 – DMA coherency properties are corrected for SMMU and a few consumers. Missing DWC3 quirks are added and the SNPS PHY parameters are adjusted. Fastrpc banks are marked non-secure as needed.
      • SM8650 – The GPU description is introduced and enabled on the QRD. A missing reserved-memory node is added, as is a few missing fastrpc compute banks, and the non-secure-domain flag for other banks.
      • Nodes describing the PCIe bridge under the host controller is added for a bunch of platforms.
      • The GPIO carrying orientation information for USB Type-C is added across Fairphone 5, Lenovo Flex 5G, Lenovo Thinkpad X13s, SM8350 and SM845 HDKs.
      • A few dtbTool-specific compatibles for msm8916 is dropped from the bindings.
      • A number of DeviceTree binding validation issues are corrected.
      • Corrects the obviously broken compatible of the USB VBUS regulator in PM6150.
      • It clears the odd-looking default address on QCS404 EVB, with the expectation that a proper address is provided by other means.
      • The newly added SM8650 GPU node is corrected with a missing memory region.
      • The third DWC3 instance on SC8280XP is added, and enabled on Lenovo Thinkpad X13s to give working fingerprint sensor.
    • Arm64 defconfig updates for Linux 6.1
      • Ext4 security labels are enabled, as the expectation of setcap being functional is widespread.
      • SC7280 display and GPU clock controllers are enabled, to make available related functionality. The driver for the Novatek display panel found in QCM6490 IDP is enabled. The X1E80100 sound card and reset-gpio drivers are enabled to provide the necessary drivers for this. The regulator driver providing VBUS power on a few different platforms is enabled. ath12k is present on several recent platforms, so this is enabled as well.
      • Enables the SM6115 interconnect provider, to make it possible to boot boards on this SoC.
    • New devices
      • Sony Xperia 1V (SM8550)
      • Sony Xperia Z3
      • Samsung Galaxy S5 China (MSM8974)
      • Motorola Moto G 2013 (MSM8226)
  • MediaTek
    • MediaTek MT7621 PCIe controller driver
      • Add DT binding missing ‘reg’ property for child Root Ports
      • Fix theoretical string truncation in PHY name
    • ASoC – Cleanup MediaTek soundcard machine drivers
    • PHY – Add driver for MediaTek XFI T-PHY found in MT7988 SoC (Filogic 880)
    • Driver updates for Linux 6.10
      • Adds a much needed cleanup for the MediaTek CMDQ helper driver and also some more helper functions which will be used in drivers using the MediaTek Global Command Engine (GCE) HW.
      • Adds support for MT8188’s VPPSYS mutex for MDP3 support, a new SoC in the mtk-socinfo driver and changes the marketing name for the pre existing MT8188 SoC.
    • MediaTek (mt76) WiFi:
      • mt7921 LED control
      • mt7925 EHT radiotap support
      • mt7920e PCI support
    • Bluetooth
      • Add support MediaTek MT7921S SDIO
      • Add support for MediaTek MT7922 device
    • Defconfig updates – N/A
    • Arm Devicetree updates – N/A
    • New devices – N/A
  • Other new Arm hardware platforms and SoCs
    • Broadcom – ASUS RT-AC5300 and RT-AC3200 WiFi 5 routers based on Broadcom BCM4709C0 dual-core @ 1.4 GHz
    • NXP – Various industrial and embedded boards based on NXP i.MX6, i.MX8, Layerscape and s32g3 SoCs including
      • Emcraft Systems i.MX8M Plus NavQ+ Kit (NXP i.MX 8M Plus)
      • Toradex Colibri iMX8DX
      • Seeed Studio NPi baseboard
      • NXP S32G-VNP-RDB3 reference design board (S32G3 octa-core Cortex-A53)
  • Raspberry Pi-related changes
    • pinctrl – Make pin-freeing behavior configurable:
      Until now after a bcm2835 pin was freed its pinmux was set to GPIO_IN. So in case it was configured as GPIO_OUT before the configured output level also get lost. As long as GPIO sysfs was used this wasn’t actually a problem because the pins and their possible output level were kept by sysfs.Since more and more Raspberry Pi users start using libgpiod they are confused about this behavior. So make the pin freeing behavior of GPIO_OUT configurable via module parameter. In case pinctrl-bcm2835.persist_gpio_outputs is set to 1, the output level is kept.
    • dt-bindings – serial: brcm,bcm2835-aux-uart: convert to dtschema
    • Device tree changes for Linux 6.10
      • Converted the Raspberry Pi firmware DT binding to YAML, updated the firmware driver to use the proper ‘struct device’ reference for DMA mappings and dropped unneeded properties from the DT node and
        removed the duplicate firmware-clocks property to bcm2835-rpi.dtsi. Added support for the CAM1 camera interface regulator.
      • Added a pinctrl-based multiplexing description to allow the use of I2C0 pins to allow usage between the 40-pin Raspberry Pi header and the CSI and DSI connectors. Described the PCF85063 RTC device available on the CM4 I/O board making use of that pinctrl-based muxing.
      • Added DT nodes for the CSI Unicam camera interfaces on the Raspberry Pi 4 / BCM2711 SoCs
      • Added support for the Ethernet LEDs on Raspberry Pi 4 B and Raspberry Pi CM4 boards.
    • Arm64 defconfig – build snd_bcm2835 as module

การอัปเดตสถาปัตยกรรม RISC-V

การอัปเดตสถาปัตยกรรม RISC-V ใน Linux 6.10 มีการเปลี่ยนแปลงดังนี้:

  • The RISC-V architecture has gained support for the Rust language. (Note: Arm was added in Linux 6.9)
  • Add byte/half-word compare-and-exchange, emulated via LR/SC loops
  •  Support for Zihintpause in hwprobe
  • Add PR_RISCV_SET_ICACHE_FLUSH_CTX prctl()
  • Support lockless lockrefs
  • Allwinner – Add Allwinner D1 LDOs driver
  • Microchip – Simple addition of a power-monitor on the Icicle dev board, as the binding for it is now in mainline.
  • SOPHGO:
    • Added sdhci support for cv18xx/duo.
    • Added clock support for cv18xx.
    • Added clock for uart/sdhci.
    • Added spi support for cv18xx.
    • Added i2c support for cv18xx.
    • Added reserved memory node for cv1800b/duo.
  • StarFive
    • Support for the Milk-V Mars. This board is incredibly similar to the VisionFive v2 that is already supported, with only the Ethernet configuration being slightly different. Emil requested that a common dtsi file, so my fixes branch is pulled into for-next to avoid an annoying conflict between moved content and some erroneously added nodes that were removed as fixes this cycle.
    • JH8100
      • Add RISCV support to Cadence I2C Kconfig which is used in platforms such as the StarFive JH8100.
      • Add support for  DMA, dwmac
      • Add compatible string and additional interrupt for StarFive JH8100 crypto engine
  • Alibaba T-Head – Re-ordering of some nodes to match the DTS coding style on the th1520.

MIPS ใน Linux 6.10

การอัปเดตสำหรับ MIPS ในลินุกซ์ 6.10 สามารถสรุปได้ในประโยคเดียว: “แค่การทำความสะอาดและแก้ไขบั๊ก”

บันทึกการ commit ที่แสดงให้เห็นว่ามีการใช้งานตัวประมวลผล MT7621 MIPS ในเราเตอร์และเกตเวย์ และยังมีการทำงานกับชิป MIPS อื่น ๆ:

  • MIPS: Take in account load hazards for HI/LO restoring
  • MIPS: SGI-IP27: use WARN_ON() output
  • MIPS: SGI-IP27: fix -Wunused-variable in arch_init_irq()
  • MIPS: SGI-IP27: micro-optimize arch_init_irq()
  • mips: dts: ralink: mt7621: reorder the attributes of the root node
  • mips: dts: ralink: mt7621: reorder pci?_phy attributes
  • mips: dts: ralink: mt7621: reorder pcie node attributes and children
  • mips: dts: ralink: mt7621: reorder ethernet node attributes and kids
  • mips: dts: ralink: mt7621: reorder gic node attributes
  • mips: dts: ralink: mt7621: reorder mmc node attributes
  • mips: dts: ralink: mt7621: move pinctrl and sort its children
  • mips: dts: ralink: mt7621: reorder spi0 node attributes
  • mips: dts: ralink: mt7621: reorder i2c node attributes
  • mips: dts: ralink: mt7621: reorder gpio node attributes
  • mips: dts: ralink: mt7621: reorder sysc node attributes
  • mips: dts: ralink: mt7621: reorder mmc regulator attributes
  • mips: dts: ralink: mt7621: reorder cpuintc node attributes
  • mips: dts: ralink: mt7621: reorder cpu node attributes
  • MIPS: Add prototypes for plat_post_relocation() and relocate_kernel()
  • MIPS: Octeon: Add PCIe link status check

สามารถดูรายละเอียดที่ Linux 6.10 changelog ที่มี commit messages เพิ่มเติมได้จากการใช้คำสั่ง git log v6.9..v6.10-rc7 --stat สามารถอ่านบันทึกการเปลี่ยนแปลงได้บน Kernelnewbies

แปลจากบทความภาษาอังกฤษ : Linux 6.10 Release – Notable changes, Arm, RISC-V, and MIPS architectures

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
โฆษณา