Linux 6.16 主要亮点
Linux 6.16 中一些值得注意的变化包括:
-
USB 音频卸载支持 – 该特性为嵌入式设备带来了显著的省电效果,它允许 USB 音频流在系统其余部分处于睡眠状态时持续传输。该功能的开发耗时约两年。Android 系统下已有不同实现,但现在提供了一个统一的实现供所有人使用。
-
英特尔可信域扩展 (TDX) 的初步支持 – Linux 6.16 增加了对英特尔可信域扩展 (Trust Domain Extensions, TDX) 的初步支持,通过对客户机虚拟机 (Guest VM) 内存进行加密,保护其中的机密数据免受宿主机 (Host) 和物理攻击。这与之前已支持的 AMD SEV-SNP 类似。更多细节请参阅 内核 和 英特尔 文档。
-
允许从 DMABUF 内存零拷贝发送 TCP 负载 – 设备内存 TCP(在 [Linux 6.12](Linux 6.12) 中合并)提供了将 TCP 负载接收到 DMABUF 内存区域时实现零拷贝的能力,同时数据包头部分则单独进入常规内核缓冲区。这个新的 Linux 版本增加了对发送 TCP 负载的支持。这意味着设备内存数据(例如来自 GPU 或 AI 加速器)可以无需宿主机 CPU 参与数据传输,就能直接通过网络接收和发送。更多信息请阅读 [相关文档]。
-
英特尔 CPU 性能改进
-
支持英特尔高级性能扩展 (APX) – APX 将通用寄存器的数量从 16 个扩展到 32 个,使得代码中可以减少加载和存储操作,从而带来更好的性能和更低的功耗。详情参见 [英特尔文档]。
-
针对本地 x86 CPU 的构建优化 – Linux 6.16 增加了
CONFIG_X86_NATIVE_CPU
选项,该选项使内核构建时使用-march=native
参数。这会让编译器针对构建机器的 CPU 优化编译过程,如果你在相同(或类似)的机器上运行该 Linux 内核,则可以获得性能提升。
-
Arm architecture in Linux 6.16
As usual, the Arm architecture had plenty of changes. Here’s a breakdown for processors from Allwinner, Amlogic, Rockchip, Samsung, Qualcomm, and MediaTek, plus new SoC/boards for others, and Raspberry Pi-related changes.
- Arm64 lazy-preemption support and scalable-matrix-extension support have both been merged.
- Allwinner
- Added support for Allwinner A523 (similar to A527 and T527)
- Clock driver
- Add support for DE (display engine) 3.3 clocks on H616
- Add missing LVDS reset control on H616
- Do not enable by default during compile testing
- pmdomain – Add support for Allwinner H6/H616 PRCM PPU
- DTS changes
- Also enable EMAC0 Ethernet MAC on A523 family for Cubie A5E & Avaota-A1. Note: the SoC has two different Ethernet controllers.
- Enable GPU on H616 with all boards enabled
- Set maximum MMC frequency for the A100
- Add WiFi/BT header on PINE64 A64 boards
- Add hp-det-gpios for Anbernic RG35XX
- Add support for PHY LEDs on Bananapi (the original one)
- Various cleanups
- Rockchip
- Added support for Rockchip RK3562 Cortex-A53 SoC
- PHY
- Added Rockchip usb2 support for RK3562, RK3036 usb2 phy support
- Rockchip color depth configuration and management support
- Yaml binding conversion for RK3399 Type-C and PCIe Phy
- Rockchip PCIe controller driver
- Reorder rockchip_pci_core_rsts because reset_control_bulk_deassert() deasserts in reverse order, to fix a link training regression
- Mark RK3399 as being capable of raising INTx interrupts
- Rockchip DesignWare PCIe controller driver
- Check only PCIE_LINKUP, not LTSSM status, to determine whether the link is up
- Increase N_FTS (used in L0s->L0 transitions) and enable ASPM L0s for Root Complex and Endpoint modes
- Hide the broken ATS Capability in rockchip_pcie_ep_init() instead of rockchip_pcie_ep_pre_init() so it stays hidden after PERST# resets non-sticky registers
- Call phy_power_off() before phy_exit() in rockchip_pcie_phy_deinit()
- ATA – Add Rockchip RK3576 SoC compatible to the Designware AHCI DT bindings
- I2C & SPI – Added RK3528 support
- ASoC – Added support for Rockchip SAI controllers
- Clock
- Ability to handle different “General Register Files” syscons, not just a single system-one, plus ability to model individual gates found there.
- For whatever reason, Rockchip also moved the mmc-phase-clocks from the clock-unit for the GRF on some newer socs like the rk3528 (before moving them fully to the mmc controller itself on the rk3576), so add a new clock-variant for the phases, reusing the new GRF handling.
- The old rk3036 got real handling of the usb480m mux and some PLL rates were added.
- Device Tree updates for Linux 6.16:
- GMAC + SDMMC/SDIO on rk3528
- SAI + HDMI-audio on rk3576
- Move rk3528 i2c + uart aliases as requested
- RK3568 PCIe3 MSI to use GIC ITS
- Update deprecated dwmac reset properties on some PX30 boards
- Updates for cypress usb hubs on some Theobroma boards
- Amlogic
- Added support for Amlogic S6/S7/S7D
- Added support for S805Y, but similar to S805X
- Media – Amlogic C3 ISP
- SPI – DMA support for Amlogic SPI controllers
- Clock driver
- Fix Amlogic G12 SPICC clock sources
- Compile test Amlogic clocks only if ARCH_MESON is set
- Device tree for Linux 6.16:
- Amlogic A4 Pinctrl support
- UART RX/TX pull-up pinconf properties for all SoCs
- SARADC support for the S905L SoC variant
- Drop clock latency in CPU node
- Amlogic clk measure support for S4 & C3 Socs
- I2C default pull-up bias pinconf property on Amlogic GXL-based boards
- Amlogic A4 & A5 Reset Controller support
- Samsung
- Added support for Samsung Exynos7870, an older chip similar to Exynos7885, with support for pin controllers, clock controllers, I2C, MMC, serial and USB.
- PHY – Samsung exynos2200 eusb2 phy support and driver refactoring for this support, exynos7870 USBDRD support
- MFD
- Various changes for Samsung Exynos ACPM (Access Control and Power Management), LPASS, adn SEC
- Add support for the S2MPG10 PMIC, which communicates via the Samsung ACPM firmware instead of I2C
- Pinctrl
- Per-SoC suspend/resume callbacks in the Samsung drivers
- Refactor the driver suspend and resume to handle Google GS101 EINT GPIO pin banks and add the alive pin bank for that SoC.
- SPI – Added support for Samsung Exynos Autov920
- SoC Drivers
- Handle communication timeouts better.
- Avoid sleeping, so users (PMIC) can still transfer during system shutdown.
- Fix reading longer messages from their firmware.
- Deferred probe improvements.
- Model the user of ACPM – PMIC – as child device and export devm_acpm_get_by_node() for such use case.
- Add CPU hotplug support on Google GS101 by toggling respective bits in secondary PMU intr block (Power Management Unit (PMU) Interrupt Generation) from the main PMU driver.
- DTS ARM changes – N/A
- Samsung DTS ARM64 changes
- Tesla FSD: Add Ethernet.
- ExynosAutov920: Add more serial nodes, clock controllers for CPU cluster CL0, CL1 and CL2.
- Google GS101 – Add pmu-intr-gen syscon node for proper CPU hotplug.
- Switch USI (serial engines) nodes to new samsung,mode constant coming with DT bindings v6.15-rc1.
- Defconfig changes – N/A
- Qualcomm
- Added support for Qualcomm MSM8926, a variant of MSM8226
- Added support for Qualcomm Snapdragon X1P42100 (Snapdragon X Plus), related to R1E80100
- PHY – Add Qualcomm IPQ5424 qusb2 support, IPQ5018 uniphy-pcie driver
- Qualcomm PCIe controller driver
- Add OF support for parsing DT ‘eq-presets-<N>gts’ property for lane equalization presets
- Read Maximum Link Width from the Link Capabilities register if DT lacks ‘num-lanes’ property
- Add Physical Layer 64 GT/s Capability ID and register offsets for 8, 32, and 64 GT/s lane equalization registers
- Add generic dwc support for configuring lane equalization presets
- Add DT and driver support for PCIe on IPQ5018 SoC
- Pinctrl
- EGPIO support in the Qualcomm QCM2290 driver
- Fix up the number of available GPIO lines in Qualcomm QCS8300 and QCS615
- Clock drivers
- Camera clock controller driver for Qualcomm QCS8300
- Correct wait_val values for a variety of Qualcomm GDSCs
- Fix Qualcomm X Elite UFS clock settings
- Allow clkaN to be optional in the Qualcomm RPMh clock controller driver if command db doesn’t define it
- WiFi
- Qualcomm (ath12k):
- Enable AHB support for IPQ5332
- Add monitor interface support to QCN9274
- Add multi-link operation support to WCN7850
- Add 802.11d scan offload support to WCN7850
- Monitor mode for WCN7850, better 6 GHz regulatory
- Qualcomm (ath11k) – restore hibernation support
- Qualcomm (ath12k):
- SPI – Add support for Qualcomm IPQ5018
- Driver updates
- Allow list QSEECOM for EFI variable services on the Asus Zenbook A14, and block list TZMEM on the SM7150 platform to avoid issues with rmtfs.
- Extend the last-level cache (llcc) driver to support version 6 of the hardware and enable SM8750 support.
- Also, add socinfo for the SM8750 platform.
- Re-enable UCSI support on SC8280XP, now that the reported crash has been dealt with, and filter the altmode notifications to avoid spurious hotplug events being propagated to user space.
- Add SM7150 support to pd-mapper.
- Allow HP EliteBook Ultra G1q to use QSSECOM for UEFI variable access. Add missing compatible for IPQ5018 TCSR block. Fix a kernel-doc warning in SCM driver.
- Arm64 device tree updates
- Tsens and thermal zones are added for IPQ5332 and IPQ5424. IPQ6018 gains 1.2GHz and 1.5GHz CPU frequencies. The IPQ5424 gains MMC, LEDs and
buttons, while the IPQ9574 gains NSS clock controller and SPI NAND support. - IPQ6018 SMEM is transitioned to be described directly in the reserved-memory node.
- QCS6490
- Rb3Gen2: ADC channels for thermal profiling are added, Bluetooth enabled, USB Type-C orientation GPIO activated, and the vision mezzanine is described.
IDP board gains a required listed of protected clocks.
- Rb3Gen2: ADC channels for thermal profiling are added, Bluetooth enabled, USB Type-C orientation GPIO activated, and the vision mezzanine is described.
- SC7280 – Camera subsystem in SC7280 is described and UFS is transitioned to use operating points.
- On MSM8916, MSM8919 and MSM8939, and devices on these platforms, the UART pinctrl state is cleaned up.
- MSM8953 – Gains another UART and interconnects.
- SA8775P – CTCU and ETR nodes are added, and the CPUfreq throttling interrupts are added.
- Samsung Galaxy S9 SM-G9600 gains a description of the MAX77705 used for charging, fuel gauge, haptic, and LED, as well as the PMIC used for
display and touchscreen, which then is used to enable the touchscreen. The LPG/PWM node is added to PM8937 and Xiaomi Redmi 5A gains display backlight control. - QCS615 – Gains command DB definition.
- QCS8300 – Gains description of more QUP instances, CPUfreq, PCIe SMMU and the SPMI controller.
- SAR2130P – PCIe EP device nodes are added.
- SDM630 – Missing resets are added for SDCC. Fairphone FP3 modem is enabled, and firmware-path are defined on ADSP and WCNSS.
- SDM845 – RB3/DragonBoard845c and the QRB5165 RB5 has the sensors DSP enabled, and the vision mezzanine on both gets their CMA configuration
cleaned up. Xiaomi Pocophone F1 gains touchscreen support. - SM7325 – Nothing Phone (1): display, GPU, and camera EEPROMs are described.
- SM8450 – PCIe endpoint controller is described.
- SM8550 – OPP tables are described for PCIe and QUP.
- SM8750
- Gains RPMh sleep stats.
- Cluster idle states are corrected, then audio and compute DSPs are introduced, together with the crypto and rng blocks.
- Modem support is added and enabled on MTP and QRD devices.
- SM8650 – Gains OSM L3 scaling and variety of OPP tables and missing interconnect definitions. The thermal trip points for CPU cores and GPU are raised in reliance on hardware throttling.
- SM8650 – Transitioned to per-CPU interrupt partitions, in order to properly describe the PMU interrupts. Missing Coresight ETE instances are added.
- SC8280XP – Overlays are introduced for those running Linux at EL2 on these devices. A few more temp-alarm instances are added for the PMICs.
- X Elite
- Support for CPU frequency scaling
- GPU cooling and watchdog are introduced
- Dell XPS13 gains support for USB Type-C display, the QCP gains WiFi/BT power sequence, and a few devices learns about HBR3.
- RTC support is enabled, and regulators that are feeding resources that should always be on are marked as such on a variety of boards.
- Lenovo ThinkPad T14s gains support for the SDX62 modem and audio headset
- ASUS Vivobook S 15 gains Bluetooth support,
- Microsoft Surface Laptop 7 model gets support for DP over USB Type-C,
- HP Omnibook X 14 gains audio support
- The devkit gets the USB multiport controller and the two USB Type-A ports described.
- Support for the QCS6490 RB3gen2 Industrial Mezzanine
- PCIe controllers and PHYs are described and enabled across IPQ5018, IPQ5332, and IPQ5424. On IPQ9474 the missing MHI register range is added. The TCSR block is described and used to enable download mode flags on IPQ5018.
- MS8998 – The Venus video encoder/decoder is enabled on Lenovo Miix 630 laptop.
- The crypto engine is enabled on QCM2290 and QCS615. Bluetooth is enabled on the QCM2210-based RB1 board.
- SAR2130P – Display nodes are added.
- Snapdragon 8cx Gen3 – The sensor remoteproc (SLPI) is introduced and this is enabled on Lenovo Thinkpad X13s and the CRD.
- SDM845 – Samsung Galaxy S9 gains graphics, modem, and initial sound support.
- SDX75 – The QPIC BAM and NAND support is added, and these are enabled on the IDP board.
- LLCC is added for SM8750. SM8550 gains Iris video decoder support.
- Missing properties for the crypto BAM is introduced on a variety of platforms, taking care of a long standing error message in the kernel log during boot.
- DSI phy clock ids are transitioned to use identifiers from the PHY header file and VBIF region size is corrected, across a large number of platforms.
- A couple of DWC3 quirks are added across a lot of platforms.
- Various Devicetree fixes are introduced, primarily identified through binding validation.
- Tsens and thermal zones are added for IPQ5332 and IPQ5424. IPQ6018 gains 1.2GHz and 1.5GHz CPU frequencies. The IPQ5424 gains MMC, LEDs and
- Arm32 device tree updates
- Introduce support for the AP8064-based LG Nexus 4. MSM8226 is extended with modem-related features, the LTE-capable variant MSM8926 is introduced, and modem support is enabled on Samsung Galaxy Tab 4.
- Display-related clocks and power-domains are defined for the simple framebuffer of Motorola Moto G, to allow booting without clk_ignore_unused and pd_ignore_unused.
- On MSM8960 SDCC BAM and thermal sensor (tsens) are introduced.
- Arm64 defconfig updates for Linux 6.16 – Enable global clock controller and TLMM pinctrl drivers for IPQ5424 to make this boot.
- MediaTek
- I2C – Added driver for MediaTek Dimensity 1200 (MT6893)
- WiFi – MediaTek (mt76)
- WiFi-7 improvements
- Implement support for MT7990
- Driver updates for Linux 6.16
- Some cleanups to the MediaTek DVFSRC driver, commonizing the bandwidth constraints platform data
- Adds support for the DVFSRC hardware found in the MediaTek Dimensity 1200 MT6893 SoC
- ARM64 DTS updates
- MT6359 PMIC – Renamed PMIC RTC node to fix dtbs_check warning
MT7988(A)- Support for SPI controllers was added to SoC and BPI-R4
- Support for XSPHY, USB and PCIe2 was added as well
- Fan and cooling maps were added to BPI-R4 machine
- MT8365 – Added touchscreen support to MT8365 Genio EVK
- MT8188 – Addressed dtbs_check warnings for MDP3 nodes
- MT8390 (Genio) – Reverted SCP firmware-name addition
- MT6359 PMIC – Renamed PMIC RTC node to fix dtbs_check warning
- Arm64 defconfig
- PHYs for PCIe, HDMI, DSI and DisplayPort for all boards
- MediaTek UART DMA Controller, also for all boards
- MDP3 driver for MT8186/88/95 (Chromebooks and Genio variants)
- Auxiliary ADC for the MT6357/58/59 PMICs found on both Genio EVK and Chromebooks based on designs with MT8183/86/88/92/95 SoCs
- iTE IT5205 Type-C USB Alternate Mode Passive MUX, found on both Chromebooks and Genio EVKs with MT8188/95
- Richtek RT1715 Type-C PD Controller, found on all Genio boards
- Himax HX8279 DSI panel DriverIC and KD070FHFID015 panel, found on various revisions of the Genio Evaluation Kit boards.
- Other new Arm hardware platforms and SoCs
- NXP
- i.MX94 Cortex-A55/M33/M7 SoC for Edge AI industrial and automotive applications
- 10 NXP i.MX8/i.MX9 boards, mostly for embedded/industrial uses
- Renesas – RZ/V2N (R9A09G056)
- Texas Instruments – 12 boards based on TI K3 series chips, most of them from Toradex
- WonderMedia – Added support for WM8950, a minor variation of the WM8850 chip; note: The company was merged into VIA in 2016, and I don’t think the chips are still manufactured.
- 9x 32-bit machines, each based on a different SoC family
- NXP
- Raspberry Pi-specific changes
- Device tree
- Documents and adds support for the Raspberry Pi 2 2nd revision
- Adds and enables the PCIe root complex Device Tree nodes present on the Raspberry Pi 5
- Updates the BCM2712 L2 cache node names to use a more conforming name
- drm/v3d: Use V3D_SMS registers for power on/off and reset on V3D 7.x – This fixes GPU reset issues on the Raspberry Pi 5 (BCM2712).
- Pi Camera V2 on i.MX 8M Plus – A couple of imx8mp-tqma8mpql-mba8mp-ras314 board updates that support Raspberry Pi Camera V2 and LVDS using device tree overlay
- Device tree
Linux 6.16 RISC-V changelog
RISC-V Linux support progressed further with the following changes:
- Support for the FWFT SBI extension, which is part of SBI 3.0 and a dependency for many new SBI and ISA extensions
- Support for getrandom() in the VDSO
- Support for mseal
- Optimized routines for raid6 syndrome and recovery calculations
- kexec_file() supports loading Image-formatted kernel binaries
- Improvements to the instruction patching framework to allow for atomic instruction patching, along with rules as to how systems need to behave in order to function correctly
- Support for a handful of new ISA extensions: Svinval, Zicbop, Zabha, some SiFive vendor extensions (“xsfvqmaccdod”, “xsfvqmaccqoq”, “xsfvfnrclipxfqf”, and “xsfvfwmaccqqq”)
- Various fixes and cleanups, including: misaligned access handling, perf symbol mangling, module loading, PUD THPs, and improved uaccess routines
- Alibaba T-Head – TH1520
- Add reset controller driver
- Video Output (VO) subsystem clk controller VO clk drivers
- Microchip – PolarFire – PCI – Fix DMA coherency property
- SiFive
- Cache – Add support for the Eswin EIC7700 SoC, which needs to make sure of the non-standard cache-ops provided by the ccache driver.
- New hwprobe key, RISCV_HWPROBE_KEY_VENDOR_EXT_SIFIVE_0, has been added to query which SiFive vendor extensions are supported on
the current platform.
- SOPHGO
- SoC
- Add support for SG2044 TOP syscon device. The SG2044 TOP device provides PLL clock function in its area.
- Add RTC support for CV1800 series SoC. The device is called RTC, but contains control registers of other HW blocks in its address space, most notably of Power-on-Reset (PoR) module, DW8051 IP (MCU core), and accompanying SRAM, hence putting it in SoC subsystem.
- Clock driver
- Replace compatible for Sophgo CV1800 series SoC
- Add clock support for Sophgo SG2044
- Device tree
- Add Pinctrl & SPI support for SG2042 SoC, and refactor the dts of cv18xx to facilitate adding support for arm core later (SG200X has two cores, one is RISC-V and another is ARM64).
- Initial support for Sophgo SG2044 and SRD3-10 board SRD3-10 board (UART only for now)
- SoC
- SpacemIT – K1
- Add clock driver
- Fix for pinctrl/uart
- Add GPIO driver, enable LED heartbeat
- StarFive – Add EEPROM node to device tree. StarFive VisionFive2 and similar JH7110 boards have an EEPROM compatible with Atmel 24c04.
MIPS architecture
The summary for the MIPS updates is only three lines long:
- Added support for EcoNet platform
- Added support for parallel CPU bring up on EyeQ
- Other cleanups and fixes
Here’s the full list from the log:
- MIPS: loongson2ef: lemote-2f: add missing function prototypes
- MIPS: loongson2ef: cs5536: add missing function prototypes
- MIPS: SMP: Move the AP sync point before the calibration delay
- mips: econet: Fix incorrect Kconfig dependencies
- MAINTAINERS: Add entry for newly added EcoNet platform.
- mips: dts: Add EcoNet DTS with EN751221 and SmartFiber XP8421-B board
- dt-bindings: vendor-prefixes: Add SmartFiber
- mips: Add EcoNet MIPS platform support
- dt-bindings: mips: Add EcoNet platform binding
- MIPS: bcm63xx: nvram: avoid inefficient use of crc32_le_combine()
- mips: dts: pic32: pic32mzda: Rename the sdhci nodename to match with common mmc-controller binding
- MIPS: SMP: Move the AP sync point before the non-parallel aware functions
- MIPS: Replace strcpy() with strscpy() in vpe_elfload()
- MIPS: BCM63XX: Replace strcpy() with strscpy() in board_prom_init()
- mips: ptrace: Improve code formatting and indentation
- MIPS: SMP: Implement parallel CPU bring up for EyeQ
- mips: Add -std= flag specified in KBUILD_CFLAGS to vdso CFLAGS
- MIPS: Loongson64: Add missing ‘#interrupt-cells’ for loongson64c_ls7a
- mips: dts: realtek: Add MDIO controller
- MIPS: txx9: gpio: use new line value setter callbacks
更多详细资讯请查阅Kernelnewbies。