เปิดตัว Linux 6.5: การเปลี่ยนแปลงสถาปัตยกรรม Arm, RISC-V และ MIPS

Linus Torvalds ได้ประกาศเปิดตัว Linux 6.5 บน Linux Kernel Mailing List (LKML).

เมื่อประมาณ 2 เดือนที่ผ่านมาได้เปิดตัว Linux 6.4 โดยสามารถรองรับคุณสมบัติ linear address masking สำหรับ x86, การรองรับ Apple M2 Arm SoC, การดำเนินการใหม่ของระบบ ptrace(), กระบวนการ Unprivileged สามารถทำการสำรวจข้อมูล Pressure-stall Information, มีรายละเอียด Tutorial ที่อธิบายวิธีสร้าง Trimmed Kernel พร้อมการเปลี่ยนแปลงอื่นๆ อีกมากมาย

Linux 6.5 release

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

การเปลี่ยนแปลงและการอัปเดตที่น่าสนใจใน Linux 6.5 kernel ได้แก่:

  • การรองรับเบื้องต้นสำหรับ USB4 v2 พร้อมการรองรับ symmetric link 80Gbps, การแจ้งเตือนใหม่, เคสแบบขยาย PCIe, โหมด TMU แบบ uni-directiona ที่ปรับปรุง, สถานะพลังงานต่ำของลิงก์ CL2, การรองรับ DisplayPort 2.x tunneling ดูข้อมูลเพิ่มเติมใน git pull request
  • การพัฒนาการรองรับ Rust ยังคงดำเนินต่อไป ด้วยการอัพเกรดเป็น Rust 1.68.2 ซึ่งเป็นการอัพเกรดครั้งแรกหลังจากที่มีการรองรับ Rust ใน Linux 6.1
  • สถาปัตยกรรม Loongarch ได้รับการรองรับสำหรับ simultaneous multi-threading (SMT) และการสร้างด้วย Clang compiler
  • ระบบย่อย io_uring สามารถจัดเก็บ rings และ submission queue ใน user-space memory แทนที่จะให้ kernel จัดสรรหน่วยความจำ ซึ่งเป็นหน่วยความจำขนาดใหญ่ การใช้ huge pages สามารถเพิ่มประสิทธิภาพในการเข้าถึงหน่วยความจำได้ สามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับการปรับปรุงนี้ในการ commit ที่เกี่ยวข้อง

บันทึกการเปลี่ยนแปลงของ Arm ใน Linux 6.5

เรามาดูรายละเอียดเกี่ยวกับการเปลี่ยนแปลงบางประการที่ได้ทำในสถาปัตยกรรม Arm:

  • The arm64 permission-indirection extension (PIE) is now supported. There is no new functionality resulting from this support now, but it is needed for some upcoming features such as the Guarded Control Stack Extension (GCS).
  • Allwinner
    • Allwinner R329/R528/T113s – Driver for the two SPI controllers in those SoCs
    • New board – ICnova ADB4006 board based on Allwinner A20
  • Rockchip
    • MFD – Add support for SPI to Rockchip RK808 (and friends), for RK806 to Rockchip RK8XX
    • PCIe controller driver:
      • Remove writes to unused registers
      • Write endpoint Device ID using correct register
      • Assert PCI Configuration Enable bit after probe so endpoint responds instead of generating Request Retry Status messages
      • Poll waiting for PHY PLLs to lock
      • Update RK3399 example DT binding to be valid
      • Use RK3399 PCIE_CLIENT_LEGACY_INT_CTRL to generate INTx instead of manually generating PCIe message
      • Use multiple windows to avoid address translation conflicts
      • Use u32 (not u16) when accessing 32-bit registers
      • Hide MSI-X Capability, since RK3399 can’t generate MSI-X
      • Set endpoint controller required alignment to 256
    • RK3588  – Added support for GIC ITS, timers, OTP memory, SARADC, and SDIO.
    • RK356x – Support for RGA block
    • Improvements
      • Rock 5B – Support for PMIC, SD card and SARADC, as well as a clock-rate fix for its ES8316 codec.
      • rk3588-evb1  – Support for PMIC.
      • Anbernic RGxx3 got a better Bluetooth compatibility, and updates to its LEDs to make them use the PWM blocks they’re connected to.
    • New devices and boards
  • Amlogic
    • Added Amlogic C3 Cortex-A35 smart IP camera chip
    • Clock drivers for Amlogic A1 – Add Peripherals clock controller driver, PLL clock controller driver, introduce new PLL power-on sequence
    • GPIO – Amlogic Meson GPIO interrupt controller binding to YAML conversion
    • DRM – Add support for MIPI-DSI transceiver found on Amlogic G12A/G12B/SM1
    • USB – Support OTG switch for all IP versions; add support for Amlogic A1 SoC USB peripheral
    • Tag some powers domains as always-on for secure-pwrc
    • ARM DT changes – correct uart_B and uart_C clock references for meson8 & meson8b
    • ARM64 DT changes for Linux 6.5:
      • Introduce initial DT for Amlogic C3 SoC-based AW409
      • add missing cache properties
    • New boards – AW409 board (Amlogic C3)
  • Samsung
    • Re-added Samsung Exynos 4212 after it was removed from the kernel in 2017
    • Convert S5P/Exynos Multi Format Codec bindings to DT schema
    • DTS ARM changes for Linux 6.5:
      • Final cleanups and improvements as a result of dtbs_checks (impacts Exynos4 and S5PV210)
      • Re-introduce Exynos4212 which was removed because of lack of upstream users. Artur Weber adds now Samsung Galaxy Tab3 with Exynos4212.
    • Samsung DTS ARM64 changes – N/A
    • New Devices – Samsung Galaxy Express phone and Samsung Galaxy Tab3 with Exynos 4212 SoC
  • Qualcomm
    • Added support for Qualcomm MSM8939 (Snapdragon 615), a more powerful variant of the MSM8916 (Snapdragon 410) phone chip
    • Added support for Qualcomm SC8180x (Snapdragon 8cx) laptop chips
    • Added support for Qualcomm SDX75 5G modem chip with Cortex-A55 cores
    • PHY drivers – Added Qualcomm SGMII SerDes PHY driver, SM6115 & QCM2290 QMP-USB support, SA8775P USB PHY & USB3 UNI support, QUSB2 support for IPQ9574, IPQ9574 USB3 PHY
    • Soundwire – Qualcomm Soundwire v2.0.0 controller support
    • ASoC driver – Compressed audio support for Qualcomm, added support for Qualcomm WSA884x
    • Clk drivers – Support for more clk controllers in Qualcomm SoCs such as SM8350, SM8450, SDX75, SC8280XP, and IPQ9574
    • Pinctrl – Qualcomm IPQ5018 support, Qualcomm SDX75 subdriver, Qualcomm SPMI-based PM8953 support
    • WiFi – Qualcomm 802.11ax (ath11k): Multiple Basic Service Set Identifier (MBSSID) and Enhanced MBSSID Advertisement (EMA) support in AP mode, support factory test mode
    • ARM32 DTS updates:
      • IPQ4019 – NAND support on boards is restored after a faulty node rename.
      • MSM8974 – The LGE Nexus 5 gains vibrator support. The APQ8074 Dragonboard marks BLSP2 BAM controlled remotely, DSI panel, audio, and modem DSPs are enabled.
      • SDX65 – PCIe controller and PHY are introduced, to provide endpoint functionality. This is enabled on the related MTP.
      • MSM8960 – Spport for USB is added and the Samsung Galaxy Express is added.
      • GPIO keys and on-board LEDs are described for the APQ8074 Dragonboard.
      • MSM8226
        • QFPROM, tsens and thermal zones are defined, and the description of the clock hierarchy is improved.
        • IMEM, PMU and RPM stats are introduced. The Huawei Watch gains vibrator support.
      • The PCIe endpoint controller on SDX55 gains an interconnect path to DDR defined.
      • Sony Xperia X2 Tablet and Samsung Galaxy Tab 4 are updated following changes in the LP855X DeviceTree binding.
    • Arm64 DTS updates for Linux 6.5:
      • MSM8939 – The Square T2 board and the Sony Xperia M4 Aqua are added.
      • SC8180X  – The Lenovo Flex 5G and the Primus reference device have been added.
      • IPQ6018 – QFPROM support, download mode support and various reserved-memory regions are also introduced
      • IPQ9574 – CPU frequency scaling, low speed busses, RNG, Watchdog, qfprom, SMEM and RPM are introduced
      • MSM8916 – Range of structural improvements, to better suite the various boards supported. Regulator constraints are corrected and their states are adjusted to match reality (e.g. always-on regulators marked as always-on). BQ Aquaris X5 gains support for front flash LED.
      • MSM8953 – Gains DMA support in I2C masters.
      • MSM8996-based Sony Xperia boards gain description of their RGB notification LED.
      • SA8775P – Support for UFS, USB, GPU clock and iommu controllers, PMU, AOSS, watchdog and missing low-speed controllers are added. On the Ride platform UFS, USB and an i2c bus are enabled.
      • iommu properties are added to QSPI on both SC7180 and SC7280. LPASS clocks are adjusted and MDP node cleaned up slightly, on SC7180.
      • SC8280XP – Ethernet is added and enabled on the automotive ride platform. An SDC controller is introduced and enabled on the SC8280XP CRD.
      • Fairphone 3 gains support for its notification LED.
      • SDM845 – The iommu stream for QSPI is defined, SHIFT SHIFT6mq gains support for flash LED and the RB3 (DB845c) board gains support for bonded/dual DSI-mode, to allow 4K output.
      • SM6115 – CPU idle-states, crypto engine support and SuperSpeed USB PHY are introduced.
      • QRB4210 Robotics Platform RB2 – USB, Audio and Compute DSPs, display, CAN-bus and GPIO LEDs are introduced, fixed regulators are described and the SD-card description is corrected.
      • Support for the Qualcomm SDX75 platform, with the IDP reference board.
      • IPQ5332
        • Added RDP442 and RDP433 reference devices
        • The RDP474 board is added, and the MI01.2 board is renamed RDP441.
        • Additional reserved-memory regions to improve post-mortem debugging. UART1 is added.
        • QFPROM support
      • IPQ9574
        • Added RDP418, RDP433, RDP449 and RDP453 reference devices
        • The RDP454  board is introduced.
        • Additional reserved-memory regions are used to improve post-mortem debugging. Thermal sensors (tsens) are added and zones defined. The crypto engine is added
      • SC8280XP
        • GPU support added, as well as on the Lenovo ThinkPad X13s
        • resets for the soundwire controllers are added
      • The OUI is specified for ethernet phys on SA8540P Ride platform, to avoid reset issues.
      • QDU1000, SDM845, SM670, SC8180X, SM6350 and SM8550  – The RSC is added to the CPU cluster power domain to flush sleep & wake votes as the cluster goes down.
      • IPQ8074  – Gains another SPI controller, critical thermal trip points are defined.
      • MSM8916 and MSM8939  – Pinctrl state definitions are cleaned up and the purpose of msm8939-pm8916 is documented. MSM8939 has regulator definitions cleaned up, following to the previous effort on MSM8916.
      • CPU Bus Fabric scaling support is added to MSM8996 Pro.
      • QCM2290 – CPU idle states are added.
      • QDU1000 – SDHCI is introduced and enabled on the IDP to gain eMMC support. IMEM and PIL information regions are defined for improved post mortem debugging.
      • The Qualcomm Robotics RB2 kit gets its on-board buttons described.
      • A few fixes are introduced for the newly merged SC8180X, in particluar the DisplayPort blocks are moved to the MMCX power domain to avoid power being reduced prematurely during boot.
      • Charger description is added to the PMI8998 PMIC and enabled across OnePlus 6/6T, SHIFT SHIFT6mq and Xiaomi Pocophone F1.
      • SM6350 – CPU idle states and UART1 are added.
      • SM6375 – Gains GPU clock controller and IOMMU definitions.
      • The Fairphone FP4 gains Bluetooth support.
      • SM8150
        • Added support for crypto engine
        • Transitioned to use 2 interconnect-cells, and the USB interconnect path is described to ensure buses are adequately voted for.
        • Sony Xperia 1 and 5 gain SD-card support, camera regulators, and GPIO line names sorted out.
      • SM8250
        • Added support for crypto engine
        • Transitioned to use 2 interconnect-cells, and the USB interconnect path is described to ensure buses are adequately voted for.
        • The resolution of the static framebuffer on Sony Xperia 1 II and 5 II is corrected.
        • Sony Xperia 1 II and 5 II gain support for hardware video accelerator.
      • SM8350
        • Crypto engine support
        • The HDK gets the USB Type-C graph described for Superspeed orientation switching and DisplayPort output.
      • SM8450 – Video clock controller and crypto engine are added, missing opp levels are introduced and the USB Type-C graph is defined for orientation switching and altmode.
      • SM8350, SM8450, and SM8550 – The USB bus paths are also added.
      • SM8550
        • Gains GPU and video clock controllers and missing opp levels are added
        • DisplayPort nodes are added, as is the PWM controller for driving the notification LED and the RTC is enabled. For the MTP and QRD boards, the soundcard and audio codecs are defined.
        • The WCD9385 audio codec is added for the SM8550 MTP and on the QRD PCIe, USB, audio display and flash LED are added.
    • Arm defconfig updates – N/A
    • Arm64 defconfig updates
      • Enable the FSA4480 driver to enable USB Type-C altmode on devices such as SM8350 and SM8450 HDK
      • Enable the IPQ6018 APSS clock and PLL controller for CPU scaling, and enable GPU clock river for SA8775P.
      • Enables various clock drivers for QCM2290, SM6115 and SC8280XP.
      • The interconnect and the MSM power manager (MPM) drivers are enabled to allow QCM2290 to boot.
    • New devices and boards
      • Snapdragon 8cx – Lenovo Flex 5G and Qualcomm reference board
      • IPQ networkings SoCs – 6x reference boards
      • Sony Xperia M4 Aqua phone, Acer Aspire 1 laptop (Snapdragon 7c), and Fxtec Pro1 X phone (SM6115)
  • MediaTek
    • MediaTek MT7981/MT7988 – Added built-in 1GE PHY driver
    • ASoC – MediaTek MT8195/86 Cleanups
    • DTS – Add compatible for MediaTek MT6795 (Helio X10) display support
    • New device – N/A
  • Other new Arm hardware platforms and SoCs
    • Marvell – Endian 4i Edge 200, based on the armv5 Marvell Kirkwood chip
    • NVIDIA – NVIDIA IGX Orin and Jetson Orin Nano boards, both based on tegra234
    • NXP
      • i.MX 6 – Marantec Maveo board based on dhcor imx6ull module
      • NXP i.MX8 – Emtop SoM & Baseboard, NXP i.MX8MM EVKB board and i.MX8MP-based Gateworks Venice GW7905-2x device
    • STMicro – PHYTEC STM32MP1-3 Dev board based on STM32MP15 PHYTEC SoM
    • Texas Instruments
      • Epson Moverio BT-200 AR glasses based on TI OMAP4
      • TI K3/AM625 based PHYTEC phyBOARD-Lyra-AM625 board and Toradex Verdin family with AM62 COM, carrier and dev boards

การเปลี่ยนแปลง RISC-V

ได้มีการทำงานบางอย่างในสถาปัตยกรรม RISC-V:

  • Support for ACPI
  • Various cleanups to the ISA string parsing, including making them case-insensitive
  • Support for the vector extension
  • Support for independent irq/softirq stacks
  • CPU DT binding now has “unevaluatedProperties: false”
  • Alibaba T-Head TH1520
    • Added support for the quad-core RISC-V chip based on the Xuantie C910 core
    • Added Sipeed Lichee Pi 4A RISC-V board support – Supports basic UART/GPIO/DMAC drivers, so supports booting to a basic shell.
  • Allwinner D1 – Driver for the two SPI controllers
  • Device trees for Linux 6.5
    • StarFive – Watchdog nodes for both the JH7110 & its forerunner, the JH7100. PMU support for the JH7110. PMIC and frequency scaling support
      for the JH7110 equipped VisionFive 2.
    • Misc –  Cleanups

การอัปเดต MIPS ใน Linux 6.5

ยังมีการยืนยันบางส่วนสำหรับสถาปัตยกรรม MIPS ใน Linux 6.5:

  • Add support for TP-Link HC220 G5 v1
  • Add support for Wifi/Bluetooth on CI20
  • Rework Ralink clock and reset handling
  • Cleanups and fixes

นอกจากนี้ยังสามารถดู  Linux 6.5 changelog ที่มี commit messages เพิ่มเติมได้จากการใช้คำสั่ง git log v6.4..v6.5 --stat หรือสามารถอ่านบันทึกการเปลี่ยนแปลง Linux 6.4 changelog ได้บนเว็บไซต์ KernelNewbies

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

Notify of
Inline Feedbacks
View all comments