Linux 6.4 был только что выпущен Линусом Торвальдсом в списке рассылки Linux Kernel Mailing List (LKML):
Хм. Финальная неделя работы над 6.4 завершена, и в основном были исправления для netfilter, откаты некоторых изменений в подсистеме mm и обновления трассировки.
Также есть ряд мелких изменений в других областях: обычные обновления для архитектур, множество обновлений тестов, исправления в файловых системах (btrfs, ksmb) и т.д.
Большинство писем в моем почтовом ящике на прошлой неделе касались предстоящих изменений для 6.5, и у меня уже есть 15 ожидающих запросов на включение. Благодарю всех proactive людей.
Но это уже завтра. Сегодня мы все заняты тестированием сборки нового релиза ядра и проверкой, что всё в порядке. Верно?
Выпущенный около двух месяцев назад, Linux 6.3 принес механизм защиты от Spectre «automatic IBRS» от AMD, дополнительный прогресс в интеграции Rust с поддержкой User-mode Linux (пока только для x86-64), поддержку шифрования на основе AES-SHA2 в файловой системе NFS (как на стороне клиента, так и сервера), встроенный бенчмарк Dhrystone для тестирования производительности при запуске SoC, добавление новых WiFi-устройств, включая RealTek RTL8188EU (rtl8xxxu) и Qualcomm Wi-Fi 7 (ath12k), среди множества других изменений.
Основные изменения в Linux 6.4
Некоторые значимые изменения в Linux 6.4 включают:
- Ядро теперь поддерживает функцию маскирования линейных адресов x86. На данный момент поддерживается только режим LAM_U57 (который позволяет хранить шесть бит метаданных в значении адреса), а режим LAM_U48 требует дополнительного рассмотрения. Подробности см. в статье LWN .
- Две новые операции ptrace() – PTRACE_GET_SYSCALL_USER_DISPATCH и PTRACE_SET_SYSCALL_USER_DISPATCH – позволяют одному процессу управлять настройками диспетчеризации системных вызовов другого процесса. Новые операции могут использоваться для механизма checkpoint/restore в пользовательском пространстве.
- Подсистема io_uring теперь может выполнять несколько операций прямой записи (direct-I/O) в файл параллельно, если это поддерживается базовой файловой системой. В настоящее время поддерживаются только файловые системы EXT4 и XFS.
- Непривилегированные процессы теперь могут запрашивать информацию о pressure-stall, впервые представленную в Linux 4.20 , с периодом опроса, кратным двум секундам.
- Ядро Linux теперь включает подробное руководство по сборке урезанной версии ядра.
Изменения для Arm в Linux 6.4
Вот некоторые из множества изменений для архитектуры Arm:
- Allwinner
- Добавлена поддержка процессора Allwinner T113-S Cortex-A7
- F1C100s – включена поддержка USB для LicheePi Nano
- Новые платы и устройства
- F1C200s – Popcorn Computer PopStick и Lctech Pi F1C200s
- T113-S3 – MangoPi MQ-R-T113
- Rockchip
- Rockchip RK3588 – Добавлен Watchdog, ASoC
- Regulator – Добавлена поддержка Rockchip RK860x
- irqchip – Обходное решение для чипа Rockchip 3588, который некорректно обрабатывает атрибуты shareability
- Clock driver – Исправление reparenting для тактового сигнала, питающего модули камер на rk3399 и более критичных (bus-)clocks на rk3588.
- Новые устройства и платы
- Khadas Edge 2 SBC (RK3588S)
- FriendlyElec NanoPi R5C , NanoPi R5S (оба на RK3568)
- Amlogic
- SPI драйвер – Поддержка SPI контроллера Amlogic A1 ( A113L )
- PCIe – Конвертация привязок PCIe SoC контроллера Amlogic Meson AXG DWC в dt-schema
- Другие изменения драйверов:
- конвертация clk-measure.txt в dt-schema
- meson-pwrc: Использование dev_err_probe()
- meson_sm: создание платформенных устройств из данных device tree SM
- dt-bindings: Удаление избыточных кавычек
- Изменения в ARM DT:
- Корректировка порядка некоторых совместимых устройств
- meson8: добавление вывода xtal_32k_out
- meson8: добавление выводов SDXC_A
- mxiii-plus: Включение поддержки Bluetooth и WiFi
- Изменения в ARM64 DT для Linux 6.4:
- Набор исправлений проверки привязок DT
- Корректировка порядка совместимых устройств в соответствии с миграцией на dt-schema
- Добавление поддержки вариантов BananaPi M2S
- gxbb-kii-pro: добавление поддержки аудио и bluetooth
- meson-a1: добавление узла gpio_intc
- gxl: использование мультиплексора mdio gxl
- Добавление начальной поддержки модуля BPI-CM4 с базовой платой BPI-CM4IO
- Новые устройства и платы – Платы Banana Pi на базе SoC Amlogic g12b ( Amlogic A311D/S922X ), включая одноплатник Banana Pi BPI-M2S и модуль Banana Pi BPI-CM4 .
- Samsung
- MFD – Удаление поддержки PMIC-устройств Samsung 5M8751 и S5M8763
- Изменения в DTS для ARM в Linux 6.4:
- несколько улучшений и исправлений по результатам dtbs_checks: выравнивание имен узлов с привязками, удаление некорректных свойств, исправление clock-names, добавление отсутствующего узла «ports».
- перемещение DP и MIPI phy в узел PMU (DTS с изменением привязки).
- удаление старых псевдонимов MSHC (с добавлением правильного mmc-ddr-1_8v, который выбирался драйвером на основе псевдонима MSHC) и добавление общих псевдонимов MMC на каждой плате. Псевдонимы соответствуют известной нумерации в схемах.
- Изменения в DTS для ARM64 Samsung:
- Exynos850: добавление заголовков с идентификаторами тактовых сигналов контроллеров AUD, G3D и HSI. Добавление узла контроллера тактовых сигналов G3D (GPU).
- Exynos5433: исправления для dtbs_check: перемещение MIPI phy в узел PMU.
- удаление старых псевдонимов MSHC (с добавлением правильного mmc-ddr-1_8v, который выбирался драйвером на основе псевдонима MSHC) и добавление общих псевдонимов MMC на каждой плате. Псевдонимы соответствуют известной нумерации в схемах.
- Новые устройства – отсутствуют
- Qualcomm
- Добавлены Wi-Fi 7 SoC Qualcomm IPQ5332 Cortex-A53 и IPQ9574 Cortex-A73
- Добавлен автомобильный SoC Qualcomm sa8775p, основанный на семействе Snapdragon.
- UFS – Добавлена поддержка Qualcomm SA8775p, SM7150
- Pinctrl – Поддрайверы для SoC Qualcomm SM7150 и IPQ9574
- Clock – Драйверы глобального контроллера тактовых сигналов для SoC Qualcomm SM7150, IPQ9574, MSM8917 и IPQ5332
- Контроллер PCIe
- Добавление привязок DT и поддержки драйвера для SM8550 и SDX5
- Использование bulk API для тактовых сигналов IP 1.0.0, 2.3.2, 2.3.3
- Использование bulk API для сброса IP 2.1.0, 2.3.3, 2.4.0
- Добавление региона регистров «mhi» в DT для поддерживаемых SoC
- Предоставление счетчиков переходов состояния связи через debugfs для помощи в отладке проблем с низким энергопотреблением
- Поддержка системного приостановления и возобновления; уменьшение пропускной способности межсоединения и отключение тактовых сигналов и PHY при отсутствии активных устройств
- Включение асинхронного probe по умолчанию для сокращения времени загрузки
- Сетевые функции
- Добавлен Ethernet Qualcomm EMAC3 DWMAC
- WiFi Qualcomm 802.11ax (ath11k) – поддержка параметров MU-MIMO, поддержка сигналов подтверждения для управляющих пакетов
- Регуляторы – Поддержка Qualcomm PMC8180 и PMM8654au
- Обновления для ARM64:
- Диапазоны PCI I/O и MEM исправлены для всех целей с включенным PCIe. Аналогично, тактовые сигналы CPU определены как предоставляемые CPUfreq для широкого спектра платформ, чтобы удовлетворить определения OPP, а информация о банках LLCC исправлена для всех соответствующих платформ.
- IPQ5332 получает SMEM, CPUfreq и поддержку перехода в режим загрузки. Представлена плата MI01.2.
- Тактовый сигнал XO определен и подается на RPMCC для MSM8953 и MSM8976, чтобы гарантировать правильное построение дерева тактовых сигналов. Тактовые сигналы DSI, подаваемые на gcc, описаны для MSM8953.
- Для MSM8996 внешние аудиокомпоненты перемещены из SoC dtsi. Добавлено несколько особенностей DWC3.
- Для MSM8998 введены названия GPIO для Sony Xperia XZ Premium, XZ1 и XZ1 Compact. На ряде плат кнопки GPIO правильно помечены как wakeup-source.
- Платформа SA8775P расширена поддержкой CPUfreq, UART, контроллеров I2C, контроллеров SPI, SPMI и PMIC, поддержкой PDC. Связанные PMIC получают поддержку сброса и кнопки питания, а также определены тепловые зоны. Узлы отсортированы. В дополнение к этому представлена плата/платформа SA8775P Ride.
- Для SC7180 и SC7280 введен ряд исправлений, полученных в результате проверки DeviceTree: некоторые устраняют неиспользуемые свойства, другие исправляют ошибки. Ряд плат Google rev0 на SC7180 удалены, так как они больше не используются.
- Для SC8280XP добавлена поддержка RTC и включена для CRD и Lenovo Thinkpad X13s. Добавлен еще один UART, через который включен Bluetooth на Lenovo ThinkPad X13s. Определение тачпада изменено для попытки обнаружения обоих устройств, встречающихся в реальных условиях. Также введен ряд исправлений ошибок, а определения регуляторов на X13s исправлены.
- Для SDM845 улучшены коэффициенты динамической мощности. Исправлена совместимость BWMON. Xiaomi Pocophone F1 получает светодиод уведомлений. Sony Xperia XZ2, XZ2 Compact и XZ3 получают поддержку дисплея, тачскрина, GPU и remoteproc. OnePlus 6 и 6T получают датчик Холла.
- Добавлены узлы контроллера тактовых сигналов GPU и remoteproc для SM6115. Тактовые сигналы CPU определены как поступающие от CPUfreq. Специфичные для платы свойства USB перемещены из SoC dtsi.
- Для SM6375 добавлены узлы масштабирования L3, IMEM, RMTFS, статистики сна RPM, Tsens, remoteproc модема и Wi-Fi. Определены тепловые зоны Tsens и дополнительные состояния низкого энергопотребления. Sony Xperia 10 IV получает поддержку кнопки уменьшения громкости.
- Для SM8150 добавлен еще один UART для использования GNSS на SA8155 ADP. Добавлена поддержка блока Flash LED в PM8150L.
- Для SM8250 определены TPDM MM и PRNG, добавлен регион MHI в узел PCIe. Введен ряд исправлений ошибок после проверки DeviceTree.
- Контроллер DisplayPort для SM8350 и SM8450 определен, а связанный экземпляр QMP переведен на комбинированный вариант USB3/DP. Введены IMEM и информация PIL для посмертной отладки remoteproc. На HDK включены PMIC GLINK и переключение ролей. Некоторые аудиоресурсы исправлены.
- Исправлена опечатка в свойстве роли USB для Microsoft Surface, благодаря проверке DeviceTree.
- Исправлены описания контроллеров PCIe и PHY, а определения состояний pinctrl перемещены из SoC в определение платы. Исправлена совместимость BWMON. PM8550B получает определение повторителя eUSB2, который включен на MTP. PMIC GLINK также определен для MTP и подключен к DWC3 для поддержки переключения ролей.
- В дополнение к этому введен ряд улучшений на основе проверки DeviceTree.
- Введены несколько привязок тактовых сигналов из тематических веток, общих с деревом тактовых сигналов, для помощи в добавлении ссылок на них.
- Обновления DTS для ARM32:
- Добавлено определение IPA для платформы sdx65, а также несколько стилистических изменений для sdx55 и sdx65.
- Определены совместимые устройства для двух новых платформ Qualcomm Robotics Platform, RB1 и RB2, а также Xiaomi Mi A3 и платы разработки MI01.6 на IPQ5332. Все это платы ARM64, несмотря на то, что они представлены через запрос на включение для ARM32…
- Определен stdout-path для ALFA Network AP120C-AC, чтобы избежать необходимости передавать эту информацию в командной строке ядра. Ath10k настроен на чтение калибровочных данных из раздела «ART».
- Исправлены диапазоны портов ввода-вывода PCI для IPQ4019 и IPQ8064.
- Определены тактовые сигналы для контроллеров тактовых сигналов KPSS L2CC и ACC.
- Тактовые сигналы для глобального контроллера тактовых сигналов указаны для IPQ4019, MSM8974 и MSM8226.
- Включена поддержка PCIe RC на плате разработки SDX55 T55, определен IPA для SDX55 и введен ряд исправлений.
- Обновления DTS для ARM64 в Linux 6.4
- Представлен DeviceTree для QCM2210/QCM2290.
- Добавлена поддержка флага output-enable/disable в драйвере pinctrl-msm, а нестандартный «input-enable» удален с ряда платформ.
- Введен широкий спектр небольших исправлений на основе проверки DeviceTree.
- MSM8953 получает поддержку подсистем LPASS, MPSS и Wireless.
- Свойство iommus удалено из узлов PCIe на всех платформах, так как только дочерние устройства должны быть связаны с группами iommu через существующее свойство iommu-map.
- Обновлена карта зарезервированной памяти на Huawei Nexus 6P с добавлением памяти кадрового буфера заставки и корректировкой региона зарезервированной памяти, перекрывающего регион smem.
- Добавлены регуляторы для платформы SA8775P Ride.
- Регулятор помечен как always-on для корректности на Trogdor. Введены исправления pinconf для устройств sc7180 и sc7280. Добавлен отдельный список рецензентов для плат, относящихся к инженерам Chromebook.
- Введен набор исправлений pinconf для sc8280xp, добавлены метки для узлов Soundwire.
- Представлены remoteproc ядра сенсора и FastRPC на нем для SDM845 и включены для OnePlus 6/6T и Shift Shift6mq.
- Для планшета Lenovo Tab P11 добавлена поддержка RMTFS, remoteprocs, ath10k и ramoops.
- Добавлена поддержка UFS для SM6125.
- Для SM8150 по умолчанию отключен headless-режим GPU, добавлены speedbins для GPU.
- Speedbins для GPU также добавлены для SM8250, как и поддержка дисплея для Xiaomi Mi Pad 5 Pro с двумя различными панелями.
- Для платформы SM8550 добавлены контроллеры Soundwire, макросы аудиокодека ADSP и поддержка Inline Crypto Engine.
- Обновления конфигурации Arm – N/A
- Обновления конфигурации Arm64
- Активирован ряд драйверов TLMM pinctrl, необходимых для загрузки связанных платформ. Включены драйверы мультимедийных тактовых генераторов для MSM8994 и MSM8998, а MSM8996 помечен как модуль вместо встроенного.
- Включены драйверы PMIC_GLINK, обеспечивающие поддержку USB Type-C и батареи на различных платформах, а также драйверы eUSB2 для SM8550.
- Активированы базовые драйверы для IPQ5332 и IPQ9574.
- Новые устройства и платы
- Платы WiFi 7 – плата AL02 на базе IPQ9574, плата MI01.6 на IPQ5332
- WiFi/LTE-адаптер на базе Qualcomm MSM8916 (Yiming UZ801 4G modem stick)
- Две робототехнические платы на чипах Qualcomm QRB: плата RB1 с QRB2210, RB2 с QRB4210
- Три смартфона Xiaomi на Snapdragon, включая Xiaomi Mi A3 (SM6125)
- MediaTek
- Драйвер LED – Добавлена поддержка LED-индикатора и фонарика MediaTek MT6370
- Тактирование
- Добавлена поддержка Frequency Hopping (FHCTL) для SoC MediaTek MT6795, MT8173, MT8192 и MT8195
- Добавлены драйверы тактирования для SoC MediaTek MT8188
- Сетевые технологии
- Добавлен Ethernet для SoC MediaTek MT7981 и MT7988
- WiFi от MediaTek (mt76):
- Поддержка P2P
- Поддержка mesh A-MSDU
- Поддержка EHT (Wi-Fi 7)
- Поддержка coredump
- DRM – Добавлена поддержка DRM (vdosys1) для SoC MediaTek mt8195
- Новые устройства – Нет данных
- Другие новые аппаратные платформы и SoC на Arm
- Apple – Добавлена поддержка M2, используемого в текущих Macbook Air/Pro и Mac Mini, с уровнем поддержки, сопоставимым с предшественником M1.
- Marvell – Роутер GL.iNet MV1000 на базе Marvell Armada 3720
- NXP – 19 промышленных встраиваемых плат на базе семейств NXP i.MX6 (32-бит) и i.MX8 (64-бит).
- UNISOC – Среднебюджетный SoC для смартфонов UMS512 (Tiger T610)
- Texas Instruments – На базе AM625 Промышленная одноплатная система BeaglePlay
Обновления архитектуры RISC-V
RISC-V продолжает уверенно развиваться:
- Архитектура RISC-V получила поддержку расширения Svnapot , где «napot» означает «естественно выровненные степени двойки». Оно позволяет объединять группы базовых страниц по 4K для создания более крупных («огромных») страниц.
- Ядро RISC-V теперь можно собирать как перемещаемый бинарный файл PIE.
- RISC-V также добавил новый системный вызов – riscv_hwprobe() - для получения информации о доступном оборудовании в работающей системе. Подробности см. в этом коммите .
- RISC-V добавил поддержку гибернации.
- Поддержка Zicboz при очистке страниц
- Поддержка !MMU на системах rv32
- Линейная область теперь отображается через огромные страницы
- Переход на GENERIC_ENTRY
- Различные исправления и оптимизации по всему дереву
- StarFive
- Добавлен StarFive JH7110, SoC на RISC-V, основанный на ядре Sifive U74, как и его предшественник JH7100, но с дополнительными CPU-ядрами и GPU.
- Новые драйверы для JH7110 – Watchdog (также добавлен для JH7100), контроллер DMA, QuadSPI, Ethernet, датчик температуры, сброс, тактирование
- Деревья устройств RISC-V в Linux 6.4
- Microchip – «Исправление» для регистров системного контроллера на PolarFire SoC, добавлено отсутствующее свойство reg.
- StarFive – Базовая поддержка JH7110 и связанной с ним платы разработчика VisionFive v2 (в двух вариантах).
MIPS в Linux 6.4
Архитектура MIPS получила больше изменений по сравнению с прошлым релизом:
- Добавлена поддержка Huawei B593u-12
- Добавлена поддержка виртуальной платы, соответствующей QEMU MIPS virt board
- Добавлена поддержка когерентности DMA для отдельных устройств
- Переработана обработка SoC RALINK
- Оптимизация барьеров для Loongon64
- Удалена устаревшая поддержка метода SMP MIPS_CMP
- Удалена поддержка плат Sibyte CARMEL и CHRINE
- Оптимизации и исправления
Более подробный журнал изменений Linux 6.4 с сообщениями коммитов можно сгенерировать командой git log v6.3..v6.4-rc7 --stat
. Также можно ознакомиться с журналом изменений Linux 6.4 на KernelNewbies .
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.