Выпуск Linux 6.15 – Основные изменения, архитектуры Arm, RISC-V и MIPS

Linus Torvalds только что объявил о выпуске Linux 6.15:

Выпуск задержался на пару часов из-за последнего сообщения об ошибке, что привело к отключению одной новой функции в последний момент, но теперь версия 6.15 доступна.

За исключением этой последней суматохи, на прошлой неделе всё выглядело довольно обычно. Различные случайные мелкие исправления по всему коду, причём, как обычно, большинство из них касаются драйверов. Также были исправления для bcachefs, базовой сети и подсистемы управления памятью. Ничего особенно тревожного.

Это означает, что окно слияния откроется завтра, как обычно, и некоторые уже проявили инициативу, отправив свои pull-запросы. Завтра в США День памяти, но, как и USPS, «ни снег, ни дождь, ни жара, ни мрак ночи» — ни День памяти — не остановят окно слияния.

[ Вообще, вспоминая ледяной шторм прошлой зимы, иногда снег *всё-таки* останавливает окно слияния. Но только временно. ]

В любом случае, продолжайте тестировать,

Linus

Linux 6.14 был выпущен около двух месяцев назад с улучшенной производительностью Wine благодаря драйверу примитивов синхронизации NT (NTSYNC), поддержкой FUSE для обмена данными через io_uring, драйвером amdxdna для AMD NPU, некэшированными буферизированными операциями ввода-вывода и множеством других изменений. Теперь рассмотрим, что предлагает свежевыпущенный Linux 6.15: список значимых изменений и более детальный обзор архитектур Arm, RISC-V и MIPS, часто используемых во встраиваемых устройствах.

Linux 6.15 release

Значимые изменения в Linux 6.15

Среди потенциально интересных изменений в Linux 6.15:

  • Поддержка 32-битных x86-систем с более чем восемью CPU или более чем 4 ГБ ОЗУ была удалена, так как такое оборудование давно не выпускается, а задачи, требующие больше ядер и памяти, перешли на 64-битные системы.
  • Несколько изменений, связанных с монтированием файловых систем
    • Новый API для получения информации о событиях монтирования и размонтирования файловых систем на основе механизма fanotify . Пока документация отсутствует, но соответствующий коммит содержит дополнительные детали.
    • Системный вызов statmount() теперь может получать информацию о маппинге ID, применённом к точке монтирования файловой системы. Подробности в коммите
    • Теперь можно создать ID-маппированную точку монтирования для уже ID-маппированной точки, изменяя маппинг. Сообщение коммита объясняет, зачем и как это было реализовано.
    • Несколько изменений в mount-API для упрощения сборки сложных иерархий файловых систем без раскрытия промежуточных результатов или скрытых частей.
  • Подсистема FUSE теперь может применять таймауты к запросам , что позволяет восстановить работу при зависании пользовательского сервера. Также FUSE теперь поддерживает имена файлов длиннее 1024 символов.
  • Подсистема «fwctl» была добавлена. Она предназначена для передачи командных данных напрямую в сложные системы firmware. В Linux 6.15 добавлены три драйвера: для устройств CXL, адаптеров mlx5 и карт распределённых сервисов AMD/Pensando. Дополнительные детали можно найти в   документации .

Обновления архитектуры Arm в Linux 6.15

Как обычно, для архитектуры Arm это был насыщенный релиз:

  • Allwinner
    • Allwinner H616 – Расширение драйвера тактовых сигналов для поддержки TCON clock и reset, включение переключения родительского тактового сигнала GPU при изменении частоты.
    • Allwinner A523 / T527 – Добавлена поддержка watchdog, драйвер тактовых сигналов, драйвер управления выводами, контроллер NMI.
    • Изменения в DTS
      • Добавлена поддержка Allwinner H616 (с GPU Mali-G31 MP2) в драйвер Arm Mali Bifrost GPU.
      • Включены USB и LED на Anbernic RG35XX.
      • Исправлена логика определения GPIO перезагрузки на Anbernic RG35XX.
      • Отключён (отсутствующий) терморезистор батареи на Anbernic RG35XX.
      • Добавлена таблица OPP для CPU A100.
    • Новое устройство – плата NetCube Systems Kumquat на базе SoC Allwinner V3s.
  • Rockchip
    • Rockchip RK3588J – Частота CPU теперь ограничена, как в вендорном ядре, для обеспечения работы в промышленном температурном диапазоне.
    • Драйвер PHY – Поддержка Rockchip RK3576 hdptx, RK3562 naneng-combo.
    • Драйвер тактовых сигналов – Добавлена поддержка Rockchip RK3528 и RK3562.
    • Управление выводами – Добавлена поддержка поддрайвера RK3528.
    • Драйвер I2C – Добавлена поддержка RK3562.
    • Драйвер контроллера PCIe
      • Rockchip – BAR RK3568 и RK3588 теперь описываются как Resizable, а не Fixed.
      • Synopsys – Добавлена поддержка функций debugfs DWC для Rockchip.
    • iommu – Настройки драйвера для последних изменений в DT probing.
    • Драйвер SPI – Добавлена поддержка Rockchip RK3562.
    • ASoC – Добавлена поддержка S/PDIF для Rockchip RK3588.
    • Драйвер IRQ – Обходное решение для errata 3568002 в драйвере GIC-V3, ограничивающее адресацию младшими 32 битами физического адресного пространства.
    • Сеть – Добавлена начальная поддержка Ethernet-контроллеров в RK3528 и управление питанием встроенного PHY.
    • arm64 defconfig
      • Включён драйвер UFS-хоста Rockchip.
      • Включён HDMI-приёмник Synopsys (HDMI-вход).
    • Новые устройства
  • Amlogic
    • Управление выводами (Pinctrl)
      • Добавлен поддрайвер Amlogic A4
      • Установлено значение подтягивающего резистора 60 кОм
    • Драйвер тактирования
      • Исправлено определение тактового гейта mmc A в SoC Amlogic G12
      • Корректная настройка CPU cluster A в Amlogic G12B
      • Исправлено определение 32k тактов в Amlogic GXBB
      • Исправлена опечатка в документации Amlogic A1
    • Изменения в Device Tree для ARM – переход на новые привязки PWM-контроллера
    • Изменения в Device Tree для ARM64 в Linux 6.15
      • Переход на новые привязки PWM-контроллера
      • Добавлен узел gpio_intc для SoC Amlogic A4 и A5
    • Новые устройства – отсутствуют
  • Samsung
    • Драйвер PHY
      • Добавлены драйверы Samsung MIPI D-/C-PHY и Exynos Auto v920 UFS PHY
      • Обнаружение и конфигурация ориентации линий USB3 Type-C для Google GS101
    • Драйвер тактирования
      • Samsung Exynos 2200 – Alive, CMGP, HSI, PERIC/PERIS, TOP, UFS и VFS
      • Samsung Exynos 7870 – Alive, MIF, DISP AUD, FSYS, G3D, ISP, MFC и PERI
    • Драйвер I2C – добавлена поддержка Samsung Exynos 7870
    • Драйвер управления выводами (Pinctrl)
      • Добавлены драйверы контроллера выводов для новых версий Samsung Exynos 2200 и Exynos 7870
      • Исправлено смещение конфигурации фильтра для некоторых банков выводов Google GS101 SoC, которое используется при приостановке/возобновлении работы системы
    • Драйверы SoC
      • Добавлена поддержка последовательных движков Exynos USI v1. Драйверы уже поддерживают более новые блоки USI v2, присутствующие в Exynos 850 и новее. Более старые ARM64-дизайны, такие как Exynos 8895, используют старый блок USI v1.
      • Добавлен драйвер протокола Exynos ACPM (Alive Clock and Power Manager) для SoC Google GS101. Протокол ACPM обеспечивает связь между прошивкой управления питанием и другими встроенными процессорами.
      • Exynos2200: добавлены привязки Devicetree для PMU, ChipID и SYSREG.
      • Exynos7870: добавлены привязки Devicetree для PMU и ChipID.
      • Различные улучшения кода.
    • Изменения в DTS для ARM – отсутствуют
    • Изменения в DTS для ARM64 Samsung
      • Samsung Exynos 7870 добавлен в драйвер GPU Arm Mali Midgard
      • Google GS101
        • Отключен pinctrl ядра GSA, так как его регистры недоступны в нормальном режиме.
        • Добавлены узлы APM (Active Power Management) mailbox и прошивки ACPM.
        • Добавлены новые платы: Google Pixel 6 Pro (Raven).
        • Активированы framebuffer и reboot-mode.
      • Exynos 990 – добавлены контроллер тактов PERIS, таймер MCT
      • Exynos 8895:
        • Определены все оставшиеся узлы последовательного движка (USI) и syscon, добавлен MMC.
        • Активированы microSD и сенсорный экран в Samsung Galaxy S8 (dreamlte).
      • Exynos Auto v920 – добавлены UFS и информация о кэше CPU.
      • Различные улучшения кода.
    • Изменения в конфигурации – отсутствуют
    • Новое устройство – Google Pixel 6 Pro
  • Qualcomm
    • Драйверы PHY
      • Добавлены Qualcomm X1P42100 PCIe Gen4x4, QCS615 qmp usbc, драйвер PCIe UNIPHY 28LP и SM8750 QMP UFS PHY
      • Поддержка двухканального PHY в Qualcomm, поддержка SoC QCS8300
    • Драйверы тактирования
      • Поддержка связывания GDSC с несколькими доменами питания
      • Добавлен драйвер тактирования NSS для Qualcomm IPQ9574
      • Добавлены драйверы тактирования GPU и видео для Qualcomm QCS8300
      • Добавлены RPM-тактовые частоты для Qualcomm SDM429
      • Добавлены сбросы LPASS (низкопотребляющего аудио) для Qualcomm QCM6490
      • Исправлена проверка остановки тактовых частот с голосованием
      • Корректная парковка тактовых частот камеры Qualcomm SM8250
      • Добавлены сбросы SDCC для Qualcomm SDM660
      • Исправлен regmap для Qualcomm SM8750, чтобы пропускать защищенные регистры
      • Сохранение состояния USB-аппаратуры Qualcomm SM8650 при отключении питания
      • Удалены тактовые частоты GPU AHB и дисплея XO из драйвера Qualcomm X Elite
      • Обновлена таблица частот UART для Qualcomm IPQ5424 для исправления управления потоком
      • Разрешение компиляции драйвера GCC для Qualcomm IPQ5018 на arm32
    • remoteproc – Добавлена поддержка управления модемным удаленным процессором на платформах Qualcomm MSM8226, MSM8926 и SM8750
    • Драйвер контроллера PCIe от Qualcomm
      • Добавлена привязка qcom,pcie-ipq5332
      • Добавлен необязательный прерывание DMA для Qualcomm i.MX8QM и i.MX8QXP/DXP (Не было известно, что NXP использует реализацию PCIe от Qualcomm?)
      • Добавлено необязательное свойство DT dma-coherent для Qualcomm SA8775P
      • Сделано свойство DT iommu обязательным для SA8775P и запрещенным для SDX55
      • Добавлены свойства DT IOMMU и DMA для Qualcomm SM8450
      • Добавлены свойства DT для конечной точки SAR2130P и включен режим конечной точки в драйвере
      • Описаны BAR0 и BAR2 конечной точки как 64-битные, а BAR1 и BAR3 как RESERVED
    • Мультимедиа – Добавлен драйвер видеодекодера Qualcomm iris
    • IOMMU – Обновления привязок devicetree для MMUv2 в реализациях Qualcomm (QCS8300 GPU и MSM8937)
    • WiFi – ath12k: продолжена работа над MLO
    • Обновления драйверов
      • Улучшен клиентский интерфейс драйвера Qualcomm ICE для предотвращения утечки ссылок, включая исправление клиентских драйверов для вызова новой функции.
      • Использование вспомогательной функции str_on_off() в драйвере AOSS и пометка неглобального массива информации о сервисных элементах QMI в драйвере PDR как статического.
      • Введение привязки Devicetree для указания имени прошивки, специфичного для платы, в блоке последовательного движка GENI.
      • Добавлена поддержка SDM630/636 в pd-mapper.
      • Улучшена обработка ошибок и исправлены ошибки в драйвере шины блока SSC.
      • Добавлено отсутствующее совместимое устройство msm8916-acc для устранения ряда ошибок валидации Devicetree.
    • Обновления конфигурации Arm64 для Linux 6.15
      • Явное включение модуля DRM_DISPLAY_CONNECTOR, так как он используется на различных платах.
      • Включение драйверов ретаймеров и редрайверов, используемых в USB-конфигурации различных устройств на базе Qualcomm X Elite.
      • Включение драйвера контроллера тактовых сигналов NSS для IPQ9574, нового драйвера видеокодера/декодера Iris и его контроллера тактовых сигналов, а также контроллера тактовых сигналов GPU QCM2290.
    • Новые устройства – Huawei Matebook E Go LTE (gaokun2), E Go и E Go 2023 (gaokun3)
  • MediaTek
    • Добавлена поддержка MediaTek MT8370 ( Genio 510 ), незначительной модификации MT8390 (Genio 700) с меньшим количеством ядер CPU и GPU.
    • MFD – MediaTek MT6359 – Добавлена mfd_cell для mt6359-accdet, чтобы позволить его драйверу выполнить probing.
    • Драйвер контроллера PCIe Gen3:
      • Удален оставшийся макрос mac_reset для SoC Airoha EN7581.
      • Добавлено свойство DT ‘mediatek,pbus-csr’ для контроллера PBUS EN7581 и программирование апертуры памяти моста хоста для этого узла syscon.
    • Сеть – Поддержка управляемого EEE через phylink.
    • WiFi – MediaTek (mt76): подготовка к поддержке mt7996 Multi-Link Operation (MLO) .
    • Обновления драйверов для Linux 6.15
      • Добавлены записи для новых и отсутствующих SoC в драйвере MediaTek SoCInfo (MT8370AV/AZA, MT8390AV/AZA), а также дополнительная запись для новой ревизии SoC MT8395AV/ZA.
      • Драйвер MediaTek SoCInfo также получил реструктуризацию информации об атрибутах SoC: теперь поля family, machine и soc_id заполняются корректно.
      • MT8188 получил поддержку вторичного Display Parallel Interface для HDMI и компонента Display Stream Compression, маршрутизируемого через таблицы mmsys и mutex.
      • Все драйверы MMSYS подверглись значительной переработке: обнаружено, что во многих случаях таблицы содержали неверные пары mask/value, что либо не давало эффекта, либо нарушало маршрутизацию. Таблицы mmsys были преобразованы для использования нового макроса, выполняющего проверку на этапе компиляции, гарантируя, что значение каждой записи таблицы соответствует объявленной маске регистра.
      • Благодаря новому макросу, несколько SoC MediaTek получили исправления в таблицах MMSYS, устраняющие проблемы, серьезно влияющие на функциональность конвейеров контроллера дисплея.
    • Обновления ARM64 DTS
      • SoCs
        • Airoha EN7581 получил поддержку контроллера тактовых сигналов SCU, SPI NAND, аппаратного генератора случайных чисел (RNG), pinctrl и контроллеров I2C;
        • SoC MediaTek MT8365 получил поддержку всех компонентов контроллера дисплея;
        • MT8188 добавил поддержку дополнительных компонентов контроллера дисплея (DSC и MERGE), третичного контроллера MSDC (eMMC/SD/SDIO) и контроллеров USB DRD MTU3;
        • MT8195 и MT8188 переведены на новую OF Graph для определения конвейера компонентов контроллера дисплея (ранее это было жестко закодировано в драйвере drm для каждой платы);
      • Платы
        • Google Kukui (MT8183) переведен на драйвер сенсорного экрана Elan вместо hid-over-i2c для устранения ошибок инициализации в некоторых случаях;
        • Chromebookы Google Cherry (MT8195) и Geralt (MT8188) переведены на использование OF Graph для определения специфичной для платы части конвейера дисплея;
        • Оценочная плата MediaTek Genio 350 (mt8365) добавила поддержку вывода HDMI через чип iTE IT66121 и вывода DSI на дисплей Startek KD070FHFID015;
        • Оценочные платы MediaTek Genio 700 (и 510) получили поддержку встроенных двойных цифровых микрофонов, контроллера USB Type-C RichTek RT1715 с поддержкой USB-PD, альтернативного режима iTE IT5205
        • Passive MUX (USB3.1/DP1.4), а также переключения между режимами USB Gadget/Host через контроллер DRD MTU3, помимо общей поддержки USB;
        • Оценочная плата MediaTek Genio 1200 EVK получила поддержку встроенного контроллера Type-C PMIC MediaTek MT6360 и мультиплексора IT5205;
        • Radxa NIO-12L получила предварительно настроенный конвейер DSI-дисплея, а также добавлен оверлей devicetree для официальной DSI-панели Radxa 8HD, обеспечивающий вывод изображения через DSI;
      • Различные исправления и оптимизации;
    • Новое устройство – оценочная плата MediaTek Genio 510 EVK (также известная как MT8370 EVK);
  • Другие новые аппаратные платформы и SoC на базе Arm;
    • AMD – SoC Versal NET с процессорами Cortex-A78 и FPGA-структурой;
    • Apple – контроллер управления базовой платой T2 в ранних Mac на процессорах Intel.
    • Arm – Эталонная платформа Morello с экспериментальной поддержкой CHERI, требующая модифицированного ядра.
    • Google – Смартфон Google Pixel Pro 6 на базе gs101 (Tensor)
    • NXP
      • 11 различных вариантов плат от Toradex и один от Variscite, все на базе i.MX6
      • 3 дополнительных варианта платы «Skov» на базе i.MX8MP
      • Вторая версия платы i.MX95 EVK
    • Renesas – Две платы на базе SoC Renesas
    • STMicro
      • STM32MP25, MP211, MP213, MP215, MP231, MP233 и MP235
      • 3 платы на базе 32-битных STM32MP1
  • Изменения, специфичные для Raspberry Pi
    • IRQ
      • Активация драйвера irqchip/irq-bcm2712-mip при включенном ARCH_BCM2835
      • Исправление зависимостей Kconfig драйвера irqchip BCM2712, необходимых для Raspberry Pi 5
    • spi driver – Восстановление нативного определения CS при отсутствии pinctrl-bcm2835
    • network – phy: microchip: принудительный режим опроса IRQ для lan88xx. Это предотвращает застревание драйвера lan78xx в цикле прерываний при инициализации устройства и переполнение журнала ядра сообщениями вида:

      [Format Time: 0.0007 seconds]

Изменения в Linux 6.15 для RISC-V

Архитектура RISC-V также получила ряд изменений:

  • Добавлена поддержка расширений BFloat16 для чисел с плавающей запятой, расширений Zaamo и Zalrsc, а также Zicbom, Zicntr и Zihpm
  • Улучшена система выбора подархитектур в Kconfig, обновлена документация и исправлены различные механизмы обнаружения
  •  Теперь проверяются зависимости векторных расширений при парсинге из device tree и в DT bindings
  • Проверку невыровненного доступа можно отключить через параметр командной строки ядра, также исправлена обработка невыровненного доступа
  • Добавлена поддержка сборки перемещаемых !MMU ядер
  • Добавлена поддержка hpge pfnmaps для улучшения использования TLB
  • Добавлена поддержка runtime constants для повышения производительности d_hash()
  • Поддержка bfloat16, Zicbom, Zaamo, Zalrsc, Zicntr,
    Различные исправления

    • Был пропущен вызов вторичного mmu notifier при очистке TLB, что требуется для IOMMU
    • Исправлены паники ftrace за счет сохранения регистров в соответствии с ожиданиями ftrace
    • Исправлены несколько проблем использования stimecmp, связанных с горячей заменой CPU
    • purgatory_start теперь выровнен в соответствии с требованиями STVEC
    • Исправление для hugetlb при расчете размера отсутствующих PTE
  • Alibaba T-Head
    • pmdomain – Добавлен драйвер power-domain для TH1520
    • firmware – Добавлен драйвер протокола AON firmware. Примечание: SoC T-Head TH1520 использует сопроцессор E902 с Always-On (AON) firmware для управления питанием, тактовыми сигналами и другими системными ресурсами.
  • Microchip – DTS – обновлены свойства pcie reg в новом формате
  • SiFive
    • Serial – блокировка порта в callbacks startup()/shutdown()
    • Timer – Добавлен SiFive CLINT2
    • perf
      • Переименование U74 в «Bullet»
      • Добавлены события для SiFive P550, P650 и «Bullet»
  • Sophgo
    • Добавлен драйвер контроллера SPI NOR от Sophgo
    • SG2042
      • Активация контроллера SPI в дереве устройств
      • IRQ – новый драйвер для контроллера прерываний MSI
      • Добавлена поддержка PWM
    • Pinctrl – поддрайверы для Sophgo RISC-V SG2042 и SG2044
  • SpacemIT
  • StarFive – JH7110 – DTS: регистры конфигурации pciephy0 USB 3.0

Обновления MIPS

Остались некоторые обновления MIPS, но список короткий:

  • Добавлена поддержка конфигурации с несколькими кластерами
  • Добавлены quirks для включения многокластерного режима на EyeQ6
  • Добавлены DTS clocks для ralink (в частности, платы omega2+ и vocore2 )
  • Очистка DTS для Realtek
  • Другие исправления и улучшения

Для получения дополнительной информации Лог изменений Linux 6.15 был сгенерирован с использованием только сообщений коммитов командой git log v6.14..v6.15-rc7 --stat. Также можно ознакомиться с Kernelnewbies для альтернативного взгляда на изменения в Linux 6.15.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments