Linux 6.1 LTS – กับการเปลี่ยนแปลงสถาปัตยกรรม Arm, RISC-V และ MIPS

Linus Torvalds ประกาศเปิดตัว Linux 6.1 kernel, อาจจะเป็นรุ่น LTS (Long Term Support) รุ่นล่าสุดสำหรับ Linux เมื่อวันอาทิตย์ที่ผ่านมา:

Linux 6.0 ที่ออกก่อนหน้านี้มีปรับปรุงการใช้พลังงาน มีการเพิ่มเติมบางอย่างกับสถาปัตยกรรม OpenRISC และ LoongArch เช่น รองรับ PCI buses, ใช้โปรโตคอล “send” เวอร์ชัน 2 ของ Btrfs และอินเทอร์เฟซ HEVC/H.265 ได้รับการเลื่อนระดับให้เสถียรแล้ว


การเปลี่ยนแปลงที่น่าสนใจใน Linux 6.1 LTS ดังนี้

  • กำลังเริ่มรองรับภาษา Rust ดูรายละเอียดเพิ่มเติมที่บทความที่
  • KMSAN (kernel memory sanitizer) เป็นเครื่องตรวจจับข้อผิดพลาดแบบไดนามิกที่ออกแบบมาเพื่อค้นหาตัวแปรที่ไม่ได้กำหนด (uninitialized values) และคล้ายกับเครื่องมือ MemorySanitizer ที่ใช้ใน userspace ควรเปิดใช้งานสำหรับการดีบักเท่านั้น เนื่องจากจะเพิ่ม footprint หน่วยความจำเคอร์เนลอย่างมาก และทำให้ทั้งระบบทำงานช้าลง รายละเอียดเพิ่มเติมในเอกสาร และใน
  • Multi-gen LRU (MG-LRU) ปรับปรุงกระบวนการย้ายโปรแกรมไปไฟล์/partition swap, multi-gen LRU เป็นการนำ LRU ทางเลือกมาใช้ซึ่งเพิ่มประสิทธิภาพการเรียกคืนเพจ (page) และปรับปรุงประสิทธิภาพภายใต้ Memory Pressure. โดย “Page reclaim” จะกำหนด caching policy และความสามารถในการ overcommit memory สามารถดูรายละเอียดเพิ่มเติมได้ในคู่มือผู้ดูแลระบบและในบทความ LWN อื่นที่เกี่ยวข้อง

การเปลี่ยนแปลง Arm ใน Linux 6.1

  • Allwinner
    • A100 – DMA
    • H6 – DMIC and GPU Devfreq
    • New boards and devices – None this time around
  • Rockchip
    • Power domain – Added Rockchip RK3588 and RV1126 drivers
    • Pin control – Add driver for Rockchip RV1126
    • MFD
      • Add support for Rockchip RV1126 and RK3588 to Syscon
      • Add support for Rockchip RK817 Battery Charger to RK808
    • PHY – Rockchip rk3568 inno dsidphy, Rockchip rk356x csi-dphya
    • SPI – Added support for Rockchip RK3128 and RK3588
    • Networking – Rockchip RV1126 Gigabit Ethernet support
    • New devices and boards
      • Anberic RG353P and RG503 (Rockchip RK3566) portable game consoles
      • Pine64 Pinephone Pro (Rockchip RK3399S)
      • Open AI Lab EAIDK-610 development kit
      • Radxa ROCK 4C+ SBC (Rockchip RK3399-T)
  • Amlogic
    • ARM64 DT changes for Linux 6.1:
      • Add Bindings & DT for Beelink GT1 Ultimate (Amlogic S912) TV box
      • Remove invalid ‘enable-active-low’ on SM1 & G12A boards
      • Add Bindings & DT for the new JetHub D1p (Amlogic A113X) home automation controller
  • Samsung
    • SoC drivers – Convert Samsung Exynos G-Scaler bindings to DT schema.
    • Pinctrl
      • Minor fix in order of initializing pinctrl driver – GPIOs should be configured before registering gpiolib.
      • Final steps to deprecated bindings headers with register constants.
    • Clock driver
      • Exynos7885: add FSYS, TREX and MFC clock controllers.
      • Exynos850: add IS and AUD (audio) clock controllers with bindings.
      • ExynosAutov9: correct clock IDs in bindings of Peric 0 and 1 clock controllers, due to duplicated entries; add few missing Peric 0/1 gates; correct register offsets of few Peric 0/1 clocks.
      • Minor code improvements
    • DTS ARM changes
      • Fix polarity of pins:
        • enable GPIO of NFC chip in Exynos5433 TM2 boards,
        • vbus GPIO of EHCI in Exynos4412 Origen board.
      • Correct name of pin configuration nodes – redundant “pins” in the name (no functional impact).
    • DTS ARM64 changes for Linux 6.1:
      • Add binding headers for several Exynos850 and ExynosAutov9 clocks.
      • ExynosAutov9: Add FSYS clock controller nodes, Document serial compatible (used in DTS).
      • Exynos850: Add Audio, IS, MFC clock controllers. Add IOMMU nodes.
      • Fix polarity of pins:
        • enable GPIO of NFC chip in Exynos5433 TM2 boards,
        • vbus GPIO of EHCI in Exynos4412 Origen board.
      • Correct name of pin configuration nodes – redundant “pins” in the name (no functional impact).
  • Qualcomm
    • A new driver for Qualcomm LLCC/DDR bandwidth measurement
    • Pinctrl
      • Qualcomm SM8450 and SC8280XP LPASS (low power audio subsystem) pin control support
      • Massive Qualcomm device tree binding cleanup, with more to come
    • PHY – Qualcomm SC8280XP eDP & DP and USB3 UNI phy, Qualcomm SM6375 usb snps-femto-v2 bindings
    • PCIe controller driver
      • Add support for SC8280XP and SA8540P host controllers and SM8450 endpoint controller.
      • Disable Master AXI clock on endpoint controllers to save power when link is idle or in L1.x.
      • Expose link state transition counts via debugfs to help debug issues with low-power states.
      • Add auto-loading module support.
    • Clock driver
      • Added Display clks for Qualcomm SM6115, SM8450
      • Added GPU clks for Qualcomm SC8280XP
      • Added Qualcomm MSM8909 and SM6375 global and SMD RPM clk drivers
      • Qualcomm SM6115 and QCM2260 are moved to reuse PLL configuration
      • Qualcomm SDM660 SDCC1 moved to floor clk ops
      • Support for the APCS PLLs for Qualcomm IPQ8064, IPQ8074 and IPQ6018 was added/fixed
      • The Qualcomm MSM8996 CPU clocks are updated with support for ACD
      • Support for Qualcomm SDM670 GCC and RPMh clks was added
    • Soundwire – Qualcomm driver updates to handle device0 status
    • DMA engine – Added Qualcomm SM6350 GPI dma controller
    • Power supply – Added Qualcomm PMK8350 PON support
    • Added support for Qualcomm IPQ8064-v2.0, IPQ8062 and IPQ8065 are all variants of the IPQ8064 chip, with minimally different features.
    • Arm DTS update:
      • Extends IPQ8064 support with the two variants IPQ8062 and IPQ8065.
      • MSM8974 and APQ8084 gained RPM stats support.
      • The Audio DSP remoteproc was added to MSM8226 and enabled for ASUS ZenWatch 2 and LG G Watch R.
      • MSM8660 gained one I2C and one SPI bus
      • APQ8060 Dragonboard got the TMA340 Touchscreen described.
      • A wide range of improvements is done throughout the DTS files to align with bindings, fix issues, and improve the structure of things.
    • Arm64 DTS updates for Linux 6.1:
      • Samsung Galaxy S4 Mini Value Edition gains magnetometer support.
      • MSM8996-based Xiaomi devices gains descriptions of the LPG-based LEDs.
      • SA8295P – ADP problems arising from regulators being switched into low-power mode is worked around by removing this ability, for now.
      • SC7180 Trogdor – The onboard USB Hub on SC7180  is finally described and a few ADC- related updates are introduced.
      • SC7280 – Support for the CPU and LLC bwmon instances are introduced. Soundwire, audio codecs and sound introduced for a variety of boards. The onboard USB Hub Herobrine is described.
      • SC8280XP – The USB controllers are marked as wakeup-sources, to keep them powered during suspend. The CRD has HID devices marked as wakeup sources to enable resuming the system. The alternative touchpad is introduced on the Lenovo ThinkPad X13s.
      • SDM845 – Gains RPMh stats support and the LLCC BWMON is added.
      • SM6350 – Interconnect providers and GPI DMA is introduced.
      • A description of the PM7280b PMIC is added to Fairphone FP4 on SM7225.
      • Multi-MSI support added in the PCIe controller, meaning SM8250 gets all its MSI interrupts added.
      • UFS ICE and the second SDHCI controller are introduced on SM8450.
      • TCSR mutex syscon is replaced with the MMIO-based binding. TCSR nodes gained proper compatibles and halt syscon nodes are split out from the mutex ranges.
      • Added a range of fixes to align with DT bindings
    • Arm defconfig updates
      • Enables command-db, ocmem, rpmh and rpmhpd drivers in the multi_v7_defconfig, used on SDX55, SDX65 and MSM8974.
      • For qcom_defconfig, rmtfs-mem, rpmpd, socinfo and qcom-stats are enables as they are used across MSM8974, MSM8226, MSM8916 and APQ8084.
    • Arm64 defconfig updates
      • Core providers needed to boot SC8180X
      • Sound drivers for SC7180 and SC7280
      • Qualcomm EDP PHY, last-level cache controller driver, on-chip memory driver and the SPM driver.
    • New devices and boards
      • Sony Xperia 1 IV (Qualcomm Snapdragon 8 Gen 1)
      • 3x Samsung phones based on Snapdragon 410: Galaxy E5, E7, and Grand Max.
      • Google Evoker (SC7280), another revision of Herobrine Villager.
  • MediaTek
    • Clock driver
      • New clock drivers for MediaTek Helio X10 (MT6795)
      • Add resets for MediaTek MT8195 PCIe and USB
      • Changes to support GPU DVFS on MT8183, MT8192, MT8195
      • Shrink MT8192 clock driver by deduplicating clock parent lists
    • MFD – Add support for MediaTek MT6370 subPMIC
    • Add support for MediaTek MT6370 backlight and flashlight
    • Memory controller – Add support for the mt8188 SMI memory controller
    • Mediatek MT8188 SoC pin control support
    • Added Mediatek MT8186 Chromebook/Tablet type SoC with two Cortex-A76 and six Cortex-A55 cores.
    • New devices – None this time.
  • Other new Arm hardware platforms and SoCs
    • Aspeed – Two new servers using AST2600 BMCs: AMD DaytonaX and Ampere Mt. Mitchell
    • Microchip – Two development boards in the Microchip AT91 family: SAMA5D3-EDS and lan966x-pcb8290.
    • NXP
      • NXP i.MX8DXL dual-core Cortex-A35 processor
      • NXP i.MX6/i.MX8 based boards: Kontron SL/BL OSM-S (i.MX8MM), Gateworks GW7904 (i.MX8MM), MSC SM2S-IMX8PLUS SoM and carrier board
    • Renesas – R-Car H3Ne-1.7G (R8A779MB) and R-Car V3H2 (R8A77980A) are minor updates of R8A77951 and R8A77980, respectively.
    • Texas Instruments – Added AM62A Cortex-A53 processor part of the K3 family for Video/Vision processing for industrial and automotive applications, as well as the AM62A StarterKit (SK) board

การอัปเดต RISC-V สำหรับ Linux 6.1

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

  • Improvements to the CPU topology subsystem, which fix some issues where RISC-V would report bad topology information.
  • The default NR_CPUS has increased to XLEN, and the maximum configurable value is 512.
  • The CD-ROM filesystems have been enabled in the defconfig.
  • Support for THP_SWAP has been added for rv64 systems.
  • A fix to correct the handling of write-only mappings
  • m{vetndor,arcd,imp}id is now in /proc/cpuinfo
  • Handful of cleanups and fixes throughout the tree
  • Allwinner – Added SRAM support to the D1 processor
  • Microchip – DT updates for the PolarFire SOC
  • SiFive
    • A fix to add the missing PWM LEDs into the SiFive HiFive Unleashed device tree
    • L2 cache controller support has been refactored to also support L3 caches
  • StarFive – Pinctrl – Create a subdirectory for StarFive drivers, rename “pinctrl-starfive” to “pinctrl-starfive-jh7100”

การเปลี่ยนแปลง MIPS

มีกิจกรรมที่จำกัดสำหรับสถาปัตยกรรม MIPS บน Linux 6.1 ดังนี้:

  • Mainly cleanups
  • Fix enabling interrupts on second VPE for Lantiq platform
  • Switch to use gpiod API
  • Allow firmware passing RND seed

บันทึกการเปลี่ยนแปลง Linux 6.1 ที่สมบูรณ์ พร้อมข้อความยืนยันเท่านั้น ซึ่งสร้างด้วยคำสั่ง git log v6.0..v6.1 --stat สามารถดูบันทึกการเปลี่ยนแปลงอย่างละเอียดได้ที่ เว็บไซต์ KernelNewbies

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

Notify of
Inline Feedbacks
View all comments